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

So use new U-Boot macro PCI_CONF1_ADDRESS().

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

index 06d711a..7533286 100644 (file)
@@ -34,9 +34,9 @@
 int pci_sh4_read_config_dword(struct pci_controller *hose,
                                    pci_dev_t dev, int offset, u32 *value)
 {
-       u32 par_data = 0x80000000 | dev;
+       u32 par_data = PCI_CONF1_ADDRESS(PCI_BUS(dev), PCI_DEV(dev), PCI_FUNC(dev), offset);
 
-       p4_out(par_data | (offset & 0xfc), SH7780_PCIPAR);
+       p4_out(par_data, SH7780_PCIPAR);
        *value = p4_in(SH7780_PCIPDR);
 
        return 0;
@@ -45,9 +45,9 @@ int pci_sh4_read_config_dword(struct pci_controller *hose,
 int pci_sh4_write_config_dword(struct pci_controller *hose,
                                     pci_dev_t dev, int offset, u32 value)
 {
-       u32 par_data = 0x80000000 | dev;
+       u32 par_data = PCI_CONF1_ADDRESS(PCI_BUS(dev), PCI_DEV(dev), PCI_FUNC(dev), offset);
 
-       p4_out(par_data | (offset & 0xfc), SH7780_PCIPAR);
+       p4_out(par_data, SH7780_PCIPAR);
        p4_out(value, SH7780_PCIPDR);
        return 0;
 }