diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-05-15 16:19:36 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-05-17 21:11:14 +1000 |
commit | de821204dbd0a967f77213daf7b89070a65e7523 (patch) | |
tree | 08113c00d59352db02d0487ddba614ffe9627f3c /arch/powerpc/kernel/of_platform.c | |
parent | 017e3c53f116d6a0741a21624924528dc9f98418 (diff) |
[POWERPC] Fix IO space on PCI buses created from of_platform
This changes the way of_platform_pci creates PCI host bridges such
that it uses request_phb_iospace() for mapping the IO ports, instead
of using the dynamic hotplug stuff. That guarantees the IO space
stays within the 2GB limit and thus doesn't break half of the legacy
drivers around.
Fixes a couple of warnings due to missing IO space while at it.
This patch is a temporary workaround for 2.6.22 before a more complete
rewrite of IO mappings is merged in 2.6.23
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/of_platform.c')
-rw-r--r-- | arch/powerpc/kernel/of_platform.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index 84c34d979a8..d501c23e515 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c @@ -427,11 +427,13 @@ static int __devinit of_pci_phb_probe(struct of_device *dev, /* Process "ranges" property */ pci_process_bridge_OF_ranges(phb, dev->node, 0); - /* Setup IO space. - * This will not work properly for ISA IOs, something needs to be done - * about it if we ever generalize that way of probing PCI brigdes + /* Setup IO space. We use the non-dynamic version of that code here, + * which doesn't quite support unplugging. Next kernel release will + * have a better fix for this. + * Note also that we don't do ISA, this will also be fixed with a + * more massive rework. */ - pci_setup_phb_io_dynamic(phb, 0); + pci_setup_phb_io(phb, 0); /* Init pci_dn data structures */ pci_devs_phb_init_dynamic(phb); |