diff options
Diffstat (limited to 'arch/powerpc/platforms/powermac/pci.c')
-rw-r--r-- | arch/powerpc/platforms/powermac/pci.c | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c index 257dc9068468..f42475b27c15 100644 --- a/arch/powerpc/platforms/powermac/pci.c +++ b/arch/powerpc/platforms/powermac/pci.c | |||
@@ -984,30 +984,23 @@ static int __init add_bridge(struct device_node *dev) | |||
984 | return 0; | 984 | return 0; |
985 | } | 985 | } |
986 | 986 | ||
987 | void __init pmac_pcibios_fixup(void) | 987 | void __devinit pmac_pci_irq_fixup(struct pci_dev *dev) |
988 | { | 988 | { |
989 | struct pci_dev* dev = NULL; | ||
990 | |||
991 | for_each_pci_dev(dev) { | ||
992 | /* Read interrupt from the device-tree */ | ||
993 | pci_read_irq_line(dev); | ||
994 | |||
995 | #ifdef CONFIG_PPC32 | 989 | #ifdef CONFIG_PPC32 |
996 | /* Fixup interrupt for the modem/ethernet combo controller. | 990 | /* Fixup interrupt for the modem/ethernet combo controller. |
997 | * on machines with a second ohare chip. | 991 | * on machines with a second ohare chip. |
998 | * The number in the device tree (27) is bogus (correct for | 992 | * The number in the device tree (27) is bogus (correct for |
999 | * the ethernet-only board but not the combo ethernet/modem | 993 | * the ethernet-only board but not the combo ethernet/modem |
1000 | * board). The real interrupt is 28 on the second controller | 994 | * board). The real interrupt is 28 on the second controller |
1001 | * -> 28+32 = 60. | 995 | * -> 28+32 = 60. |
1002 | */ | 996 | */ |
1003 | if (has_second_ohare && | 997 | if (has_second_ohare && |
1004 | dev->vendor == PCI_VENDOR_ID_DEC && | 998 | dev->vendor == PCI_VENDOR_ID_DEC && |
1005 | dev->device == PCI_DEVICE_ID_DEC_TULIP_PLUS) { | 999 | dev->device == PCI_DEVICE_ID_DEC_TULIP_PLUS) { |
1006 | dev->irq = irq_create_mapping(NULL, 60); | 1000 | dev->irq = irq_create_mapping(NULL, 60); |
1007 | set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW); | 1001 | set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW); |
1008 | } | ||
1009 | #endif /* CONFIG_PPC32 */ | ||
1010 | } | 1002 | } |
1003 | #endif /* CONFIG_PPC32 */ | ||
1011 | } | 1004 | } |
1012 | 1005 | ||
1013 | #ifdef CONFIG_PPC64 | 1006 | #ifdef CONFIG_PPC64 |