diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-05-05 23:40:40 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-05-05 23:40:40 -0400 |
commit | 3fd47f063b17692e843128e2abda3e697df42198 (patch) | |
tree | d90a5bdd247b0cc5af7cf78cd18cf6e27a884f00 /arch/powerpc/kernel/pci_64.c | |
parent | 342d6666f7276723e418b91c885b0c03f02eeaaf (diff) |
powerpc/pci: Support per-aperture memory offset
The PCI core supports an offset per aperture nowadays but our arch
code still has a single offset per host bridge representing the
difference betwen CPU memory addresses and PCI MMIO addresses.
This is a problem as new machines and hypervisor versions are
coming out where the 64-bit windows will have a different offset
(basically mapped 1:1) from the 32-bit windows.
This fixes it by using separate offsets. In the long run, we probably
want to get rid of that intermediary struct pci_controller and have
those directly stored into the pci_host_bridge as they are parsed
but this will be a more invasive change.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/pci_64.c')
-rw-r--r-- | arch/powerpc/kernel/pci_64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 51a133a78a09..873050d26840 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -246,7 +246,7 @@ long sys_pciconfig_iobase(long which, unsigned long in_bus, | |||
246 | case IOBASE_BRIDGE_NUMBER: | 246 | case IOBASE_BRIDGE_NUMBER: |
247 | return (long)hose->first_busno; | 247 | return (long)hose->first_busno; |
248 | case IOBASE_MEMORY: | 248 | case IOBASE_MEMORY: |
249 | return (long)hose->pci_mem_offset; | 249 | return (long)hose->mem_offset[0]; |
250 | case IOBASE_IO: | 250 | case IOBASE_IO: |
251 | return (long)hose->io_base_phys; | 251 | return (long)hose->io_base_phys; |
252 | case IOBASE_ISA_IO: | 252 | case IOBASE_ISA_IO: |