pci: msc01: Use PCI_CONF1_ADDRESS() macro
authorPali Rohár <pali@kernel.org>
Fri, 26 Nov 2021 10:42:44 +0000 (11:42 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 12 Jan 2022 19:21:24 +0000 (14:21 -0500)
PCI msc01 driver uses standard format of Config Address for PCI
Configuration Mechanism #1 but with cleared Enable bit.

So use new U-Boot macro PCI_CONF1_ADDRESS() with clearing PCI_CONF1_ENABLE
bit and remove old custom driver address macros.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/pci/pci_msc01.c
include/msc01.h

index 2f1b688..8d363d6 100644 (file)
@@ -34,16 +34,13 @@ static int msc01_config_access(struct msc01_pci_controller *msc01,
        void *cfgdata = msc01->base + MSC01_PCI_CFGDATA_OFS;
        unsigned int bus = PCI_BUS(bdf);
        unsigned int dev = PCI_DEV(bdf);
-       unsigned int devfn = PCI_DEV(bdf) << 3 | PCI_FUNC(bdf);
+       unsigned int func = PCI_FUNC(bdf);
 
        /* clear abort status */
        __raw_writel(aborts, intstat);
 
        /* setup address */
-       __raw_writel((bus << MSC01_PCI_CFGADDR_BNUM_SHF) |
-                    (dev << MSC01_PCI_CFGADDR_DNUM_SHF) |
-                    (devfn << MSC01_PCI_CFGADDR_FNUM_SHF) |
-                    ((where / 4) << MSC01_PCI_CFGADDR_RNUM_SHF),
+       __raw_writel((PCI_CONF1_ADDRESS(bus, dev, func, where) & ~PCI_CONF1_ENABLE),
                     msc01->base + MSC01_PCI_CFGADDR_OFS);
 
        /* perform access */
index ec18a72..2015812 100644 (file)
 #define MSC01_PCI_INTSTAT_MA_SHF       7
 #define MSC01_PCI_INTSTAT_MA_MSK       (0x1 << MSC01_PCI_INTSTAT_MA_SHF)
 
-#define MSC01_PCI_CFGADDR_BNUM_SHF     16
-#define MSC01_PCI_CFGADDR_BNUM_MSK     (0xff << MSC01_PCI_CFGADDR_BNUM_SHF)
-#define MSC01_PCI_CFGADDR_DNUM_SHF     11
-#define MSC01_PCI_CFGADDR_DNUM_MSK     (0x1f << MSC01_PCI_CFGADDR_DNUM_SHF)
-#define MSC01_PCI_CFGADDR_FNUM_SHF     8
-#define MSC01_PCI_CFGADDR_FNUM_MSK     (0x3 << MSC01_PCI_CFGADDR_FNUM_SHF)
-#define MSC01_PCI_CFGADDR_RNUM_SHF     2
-#define MSC01_PCI_CFGADDR_RNUM_MSK     (0x3f << MSC01_PCI_CFGADDR_RNUM_SHF)
-
 #define MSC01_PCI_HEAD0_VENDORID_SHF   0
 #define MSC01_PCI_HEAD0_DEVICEID_SHF   16