PCI: designware: Move calculation of bus addresses to DRA7xx
[firefly-linux-kernel-4.4.55.git] / drivers / pci / host / pci-dra7xx.c
index 199e29a044cdf26c8194a2475e06034640859265..0b4847a9fbfd5cfefb0952e9de0ebb2e62eb2e72 100644 (file)
@@ -62,6 +62,7 @@
 
 #define        PCIECTRL_DRA7XX_CONF_PHY_CS                     0x010C
 #define        LINK_UP                                         BIT(16)
+#define        DRA7XX_CPU_TO_BUS_ADDR                          0x0FFFFFFF
 
 struct dra7xx_pcie {
        void __iomem            *base;
@@ -151,6 +152,12 @@ static void dra7xx_pcie_enable_interrupts(struct pcie_port *pp)
 static void dra7xx_pcie_host_init(struct pcie_port *pp)
 {
        dw_pcie_setup_rc(pp);
+
+       pp->io_mod_base &= DRA7XX_CPU_TO_BUS_ADDR;
+       pp->mem_mod_base &= DRA7XX_CPU_TO_BUS_ADDR;
+       pp->cfg0_mod_base &= DRA7XX_CPU_TO_BUS_ADDR;
+       pp->cfg1_mod_base &= DRA7XX_CPU_TO_BUS_ADDR;
+
        dra7xx_pcie_establish_link(pp);
        if (IS_ENABLED(CONFIG_PCI_MSI))
                dw_pcie_msi_init(pp);