diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-03-27 02:44:58 +0100 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-03-26 20:33:40 +0100 |
commit | 27eedbf557f511efbe5651fa2fbfa0e4e8315ab7 (patch) | |
tree | f6052a79d7c8a5bb329685426148cab8641b6388 /arch/arm/plat-iop | |
parent | iop: Make IOP ATU window debug readable (diff) | |
download | linux-27eedbf557f511efbe5651fa2fbfa0e4e8315ab7.tar.xz linux-27eedbf557f511efbe5651fa2fbfa0e4e8315ab7.zip |
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')
-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 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) 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]; |