diff options
Diffstat (limited to 'arch/powerpc/kernel/pci-common.c')
-rw-r--r-- | arch/powerpc/kernel/pci-common.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 6d46bfabdbe4..780db386c1f0 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -1076,18 +1076,24 @@ static void __devinit pcibios_fixup_bridge(struct pci_bus *bus) | |||
1076 | 1076 | ||
1077 | static void __devinit __pcibios_fixup_bus(struct pci_bus *bus) | 1077 | static void __devinit __pcibios_fixup_bus(struct pci_bus *bus) |
1078 | { | 1078 | { |
1079 | struct pci_dev *dev = bus->self; | 1079 | struct pci_dev *dev; |
1080 | 1080 | ||
1081 | pr_debug("PCI: Fixup bus %d (%s)\n", bus->number, dev ? pci_name(dev) : "PHB"); | 1081 | pr_debug("PCI: Fixup bus %d (%s)\n", |
1082 | bus->number, bus->self ? pci_name(bus->self) : "PHB"); | ||
1082 | 1083 | ||
1083 | /* Fixup PCI<->PCI bridges. Host bridges are handled separately, for | 1084 | /* Fixup PCI<->PCI bridges. Host bridges are handled separately, for |
1084 | * now differently between 32 and 64 bits. | 1085 | * now differently between 32 and 64 bits. |
1085 | */ | 1086 | */ |
1086 | if (dev != NULL) | 1087 | if (bus->self != NULL) |
1087 | pcibios_fixup_bridge(bus); | 1088 | pcibios_fixup_bridge(bus); |
1088 | 1089 | ||
1089 | /* Additional setup that is different between 32 and 64 bits for now */ | 1090 | /* Setup bus DMA mappings */ |
1090 | pcibios_do_bus_setup(bus); | 1091 | if (ppc_md.pci_dma_bus_setup) |
1092 | ppc_md.pci_dma_bus_setup(bus); | ||
1093 | |||
1094 | /* Setup DMA for all PCI devices on that bus */ | ||
1095 | list_for_each_entry(dev, &bus->devices, bus_list) | ||
1096 | pcibios_setup_new_device(dev); | ||
1091 | 1097 | ||
1092 | /* Platform specific bus fixups */ | 1098 | /* Platform specific bus fixups */ |
1093 | if (ppc_md.pcibios_fixup_bus) | 1099 | if (ppc_md.pcibios_fixup_bus) |