aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-iop/pci.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2008-03-26 21:44:58 -0400
committerDan Williams <dan.j.williams@intel.com>2008-03-26 15:33:40 -0400
commit27eedbf557f511efbe5651fa2fbfa0e4e8315ab7 (patch)
treef6052a79d7c8a5bb329685426148cab8641b6388 /arch/arm/plat-iop/pci.c
parentc3a1c9c75b986e5a2c5d878ef0700a1ca6bb895a (diff)
iop: when scanning PCI bus, translate the PCI addresses according to the outbound window settings
... otherwise we end up trying to access peripherals using wrong PCI addresses. Cc: Lennert Buytenhek <kernel@wantstofly.org> Acked-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/plat-iop/pci.c')
-rw-r--r--arch/arm/plat-iop/pci.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c
index 9e83066cc056..ee6deaabf9b5 100644
--- a/arch/arm/plat-iop/pci.c
+++ b/arch/arm/plat-iop/pci.c
@@ -209,8 +209,11 @@ int iop3xx_pci_setup(int nr, struct pci_sys_data *sys)
209 res[1].flags = IORESOURCE_MEM; 209 res[1].flags = IORESOURCE_MEM;
210 request_resource(&iomem_resource, &res[1]); 210 request_resource(&iomem_resource, &res[1]);
211 211
212 sys->mem_offset = IOP3XX_PCI_LOWER_MEM_PA - IOP3XX_PCI_LOWER_MEM_BA; 212 /*
213 sys->io_offset = IOP3XX_PCI_LOWER_IO_PA - IOP3XX_PCI_LOWER_IO_BA; 213 * Use whatever translation is already setup.
214 */
215 sys->mem_offset = IOP3XX_PCI_LOWER_MEM_PA - *IOP3XX_OMWTVR0;
216 sys->io_offset = IOP3XX_PCI_LOWER_IO_PA - *IOP3XX_OIOWTVR;
214 217
215 sys->resource[0] = &res[0]; 218 sys->resource[0] = &res[0];
216 sys->resource[1] = &res[1]; 219 sys->resource[1] = &res[1];