aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/pci_32.c10
-rw-r--r--arch/powerpc/kernel/pci_64.c8
2 files changed, 16 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index 0d9ff72e2852..853ecef81780 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -12,6 +12,7 @@
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/bootmem.h> 13#include <linux/bootmem.h>
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <linux/list.h>
15 16
16#include <asm/processor.h> 17#include <asm/processor.h>
17#include <asm/io.h> 18#include <asm/io.h>
@@ -1338,6 +1339,7 @@ void __init pcibios_fixup_bus(struct pci_bus *bus)
1338 struct pci_controller *hose = (struct pci_controller *) bus->sysdata; 1339 struct pci_controller *hose = (struct pci_controller *) bus->sysdata;
1339 unsigned long io_offset; 1340 unsigned long io_offset;
1340 struct resource *res; 1341 struct resource *res;
1342 struct pci_dev *dev;
1341 int i; 1343 int i;
1342 1344
1343 io_offset = (unsigned long)hose->io_base_virt - isa_io_base; 1345 io_offset = (unsigned long)hose->io_base_virt - isa_io_base;
@@ -1390,8 +1392,16 @@ void __init pcibios_fixup_bus(struct pci_bus *bus)
1390 } 1392 }
1391 } 1393 }
1392 1394
1395 /* Platform specific bus fixups */
1393 if (ppc_md.pcibios_fixup_bus) 1396 if (ppc_md.pcibios_fixup_bus)
1394 ppc_md.pcibios_fixup_bus(bus); 1397 ppc_md.pcibios_fixup_bus(bus);
1398
1399 /* Read default IRQs and fixup if necessary */
1400 list_for_each_entry(dev, &bus->devices, bus_list) {
1401 pci_read_irq_line(dev);
1402 if (ppc_md.pci_irq_fixup)
1403 ppc_md.pci_irq_fixup(dev);
1404 }
1395} 1405}
1396 1406
1397char __init *pcibios_setup(char *str) 1407char __init *pcibios_setup(char *str)
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 80ae9ea15cdc..9a6bb80a8cd4 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -1215,8 +1215,12 @@ static void __devinit do_bus_setup(struct pci_bus *bus)
1215 list_for_each_entry(dev, &bus->devices, bus_list) 1215 list_for_each_entry(dev, &bus->devices, bus_list)
1216 ppc_md.iommu_dev_setup(dev); 1216 ppc_md.iommu_dev_setup(dev);
1217 1217
1218 if (ppc_md.irq_bus_setup) 1218 /* Read default IRQs and fixup if necessary */
1219 ppc_md.irq_bus_setup(bus); 1219 list_for_each_entry(dev, &bus->devices, bus_list) {
1220 pci_read_irq_line(dev);
1221 if (ppc_md.pci_irq_fixup)
1222 ppc_md.pci_irq_fixup(dev);
1223 }
1220} 1224}
1221 1225
1222void __devinit pcibios_fixup_bus(struct pci_bus *bus) 1226void __devinit pcibios_fixup_bus(struct pci_bus *bus)