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

So use new U-Boot macro PCI_CONF1_EXT_ADDRESS().

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

index 574cb78..1e180ee 100644 (file)
@@ -23,7 +23,7 @@ static int mpc85xx_pci_dm_read_config(const struct udevice *dev, pci_dev_t bdf,
        struct mpc85xx_pci_priv *priv = dev_get_priv(dev);
        u32 addr;
 
-       addr = bdf | (offset & 0xfc) | ((offset & 0xf00) << 16) | 0x80000000;
+       addr = PCI_CONF1_EXT_ADDRESS(PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), offset);
        out_be32(priv->cfg_addr, addr);
        sync();
        *value = pci_conv_32_to_size(in_le32(priv->cfg_data), offset, size);
@@ -38,7 +38,7 @@ static int mpc85xx_pci_dm_write_config(struct udevice *dev, pci_dev_t bdf,
        struct mpc85xx_pci_priv *priv = dev_get_priv(dev);
        u32 addr;
 
-       addr = bdf | (offset & 0xfc) | ((offset & 0xf00) << 16) | 0x80000000;
+       addr = PCI_CONF1_EXT_ADDRESS(PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), offset);
        out_be32(priv->cfg_addr, addr);
        sync();
        out_le32(priv->cfg_data, pci_conv_size_to_32(0, value, offset, size));