diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-03-26 18:44:58 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-03-26 12:33:40 -0700 |
commit | 27eedbf557f511efbe5651fa2fbfa0e4e8315ab7 (patch) | |
tree | f6052a79d7c8a5bb329685426148cab8641b6388 /arch/arm/plat-iop/pci.c | |
parent | c3a1c9c75b986e5a2c5d878ef0700a1ca6bb895a (diff) | |
download | op-kernel-dev-27eedbf557f511efbe5651fa2fbfa0e4e8315ab7.zip op-kernel-dev-27eedbf557f511efbe5651fa2fbfa0e4e8315ab7.tar.gz |
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.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index 9e83066..ee6deaa 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) res[1].flags = IORESOURCE_MEM; request_resource(&iomem_resource, &res[1]); - sys->mem_offset = IOP3XX_PCI_LOWER_MEM_PA - IOP3XX_PCI_LOWER_MEM_BA; - sys->io_offset = IOP3XX_PCI_LOWER_IO_PA - IOP3XX_PCI_LOWER_IO_BA; + /* + * Use whatever translation is already setup. + */ + sys->mem_offset = IOP3XX_PCI_LOWER_MEM_PA - *IOP3XX_OMWTVR0; + sys->io_offset = IOP3XX_PCI_LOWER_IO_PA - *IOP3XX_OIOWTVR; sys->resource[0] = &res[0]; sys->resource[1] = &res[1]; |