diff options
Diffstat (limited to 'arch/powerpc/kernel/pci_32.c')
-rw-r--r-- | arch/powerpc/kernel/pci_32.c | 18 |
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 | ||
54 | static int pci_bus_count; | 54 | static 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 | */ | ||
59 | struct pci_dev *isa_bridge_pcidev; | ||
60 | EXPORT_SYMBOL_GPL(isa_bridge_pcidev); | ||
61 | |||
56 | static void | 62 | static void |
57 | fixup_hide_host_resource_fsl(struct pci_dev* dev) | 63 | fixup_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... */ |