diff options
Diffstat (limited to 'arch/ppc64/kernel/pmac_setup.c')
-rw-r--r-- | arch/ppc64/kernel/pmac_setup.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/pmac_setup.c b/arch/ppc64/kernel/pmac_setup.c index e7f695dcd8c8..325426c7bed0 100644 --- a/arch/ppc64/kernel/pmac_setup.c +++ b/arch/ppc64/kernel/pmac_setup.c | |||
@@ -477,6 +477,18 @@ static int __init pmac_probe(int platform) | |||
477 | return 1; | 477 | return 1; |
478 | } | 478 | } |
479 | 479 | ||
480 | static int pmac_probe_mode(struct pci_bus *bus) | ||
481 | { | ||
482 | struct device_node *node = bus->sysdata; | ||
483 | |||
484 | /* We need to use normal PCI probing for the AGP bus, | ||
485 | since the device for the AGP bridge isn't in the tree. */ | ||
486 | if (bus->self == NULL && device_is_compatible(node, "u3-agp")) | ||
487 | return PCI_PROBE_NORMAL; | ||
488 | |||
489 | return PCI_PROBE_DEVTREE; | ||
490 | } | ||
491 | |||
480 | struct machdep_calls __initdata pmac_md = { | 492 | struct machdep_calls __initdata pmac_md = { |
481 | #ifdef CONFIG_HOTPLUG_CPU | 493 | #ifdef CONFIG_HOTPLUG_CPU |
482 | .cpu_die = generic_mach_cpu_die, | 494 | .cpu_die = generic_mach_cpu_die, |
@@ -488,6 +500,7 @@ struct machdep_calls __initdata pmac_md = { | |||
488 | .init_IRQ = pmac_init_IRQ, | 500 | .init_IRQ = pmac_init_IRQ, |
489 | .get_irq = mpic_get_irq, | 501 | .get_irq = mpic_get_irq, |
490 | .pcibios_fixup = pmac_pcibios_fixup, | 502 | .pcibios_fixup = pmac_pcibios_fixup, |
503 | .pci_probe_mode = pmac_probe_mode, | ||
491 | .restart = pmac_restart, | 504 | .restart = pmac_restart, |
492 | .power_off = pmac_power_off, | 505 | .power_off = pmac_power_off, |
493 | .halt = pmac_halt, | 506 | .halt = pmac_halt, |