aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/pci_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/pci_32.c')
-rw-r--r--arch/powerpc/kernel/pci_32.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index 88db4ffaf11c..131b1dfa68c6 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -53,12 +53,19 @@ LIST_HEAD(hose_list);
53 53
54static int pci_bus_count; 54static int pci_bus_count;
55 55
56/* This will remain NULL for now, until isa-bridge.c is made common
57 * to both 32-bit and 64-bit.
58 */
59struct pci_dev *isa_bridge_pcidev;
60EXPORT_SYMBOL_GPL(isa_bridge_pcidev);
61
56static void 62static void
57fixup_hide_host_resource_fsl(struct pci_dev* dev) 63fixup_hide_host_resource_fsl(struct pci_dev *dev)
58{ 64{
59 int i, class = dev->class >> 8; 65 int i, class = dev->class >> 8;
60 66
61 if ((class == PCI_CLASS_PROCESSOR_POWERPC) && 67 if ((class == PCI_CLASS_PROCESSOR_POWERPC ||
68 class == PCI_CLASS_BRIDGE_OTHER) &&
62 (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) && 69 (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) &&
63 (dev->bus->parent == NULL)) { 70 (dev->bus->parent == NULL)) {
64 for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { 71 for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
@@ -424,6 +431,7 @@ void __devinit pcibios_do_bus_setup(struct pci_bus *bus)
424 unsigned long io_offset; 431 unsigned long io_offset;
425 struct resource *res; 432 struct resource *res;
426 int i; 433 int i;
434 struct pci_dev *dev;
427 435
428 /* Hookup PHB resources */ 436 /* Hookup PHB resources */
429 io_offset = (unsigned long)hose->io_base_virt - isa_io_base; 437 io_offset = (unsigned long)hose->io_base_virt - isa_io_base;
@@ -457,6 +465,12 @@ void __devinit pcibios_do_bus_setup(struct pci_bus *bus)
457 bus->resource[i+1] = res; 465 bus->resource[i+1] = res;
458 } 466 }
459 } 467 }
468
469 if (ppc_md.pci_dma_bus_setup)
470 ppc_md.pci_dma_bus_setup(bus);
471
472 list_for_each_entry(dev, &bus->devices, bus_list)
473 pcibios_setup_new_device(dev);
460} 474}
461 475
462/* the next one is stolen from the alpha port... */ 476/* the next one is stolen from the alpha port... */