diff options
Diffstat (limited to 'arch/x86/pci/irq.c')
| -rw-r--r-- | arch/x86/pci/irq.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index 0696d506c4ad..5d362b5ba06f 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c | |||
| @@ -8,7 +8,6 @@ | |||
| 8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
| 9 | #include <linux/pci.h> | 9 | #include <linux/pci.h> |
| 10 | #include <linux/init.h> | 10 | #include <linux/init.h> |
| 11 | #include <linux/slab.h> | ||
| 12 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
| 13 | #include <linux/dmi.h> | 12 | #include <linux/dmi.h> |
| 14 | #include <linux/io.h> | 13 | #include <linux/io.h> |
| @@ -53,7 +52,7 @@ struct irq_router_handler { | |||
| 53 | int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device); | 52 | int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device); |
| 54 | }; | 53 | }; |
| 55 | 54 | ||
| 56 | int (*pcibios_enable_irq)(struct pci_dev *dev) = NULL; | 55 | int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq; |
| 57 | void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL; | 56 | void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL; |
| 58 | 57 | ||
| 59 | /* | 58 | /* |
| @@ -590,6 +589,8 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route | |||
| 590 | case PCI_DEVICE_ID_INTEL_ICH10_1: | 589 | case PCI_DEVICE_ID_INTEL_ICH10_1: |
| 591 | case PCI_DEVICE_ID_INTEL_ICH10_2: | 590 | case PCI_DEVICE_ID_INTEL_ICH10_2: |
| 592 | case PCI_DEVICE_ID_INTEL_ICH10_3: | 591 | case PCI_DEVICE_ID_INTEL_ICH10_3: |
| 592 | case PCI_DEVICE_ID_INTEL_CPT_LPC1: | ||
| 593 | case PCI_DEVICE_ID_INTEL_CPT_LPC2: | ||
| 593 | r->name = "PIIX/ICH"; | 594 | r->name = "PIIX/ICH"; |
| 594 | r->get = pirq_piix_get; | 595 | r->get = pirq_piix_get; |
| 595 | r->set = pirq_piix_set; | 596 | r->set = pirq_piix_set; |
| @@ -1016,7 +1017,7 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
| 1016 | return 1; | 1017 | return 1; |
| 1017 | } | 1018 | } |
| 1018 | 1019 | ||
| 1019 | static void __init pcibios_fixup_irqs(void) | 1020 | void __init pcibios_fixup_irqs(void) |
| 1020 | { | 1021 | { |
| 1021 | struct pci_dev *dev = NULL; | 1022 | struct pci_dev *dev = NULL; |
| 1022 | u8 pin; | 1023 | u8 pin; |
| @@ -1110,12 +1111,12 @@ static struct dmi_system_id __initdata pciirq_dmi_table[] = { | |||
| 1110 | { } | 1111 | { } |
| 1111 | }; | 1112 | }; |
| 1112 | 1113 | ||
| 1113 | int __init pcibios_irq_init(void) | 1114 | void __init pcibios_irq_init(void) |
| 1114 | { | 1115 | { |
| 1115 | DBG(KERN_DEBUG "PCI: IRQ init\n"); | 1116 | DBG(KERN_DEBUG "PCI: IRQ init\n"); |
| 1116 | 1117 | ||
| 1117 | if (pcibios_enable_irq || raw_pci_ops == NULL) | 1118 | if (raw_pci_ops == NULL) |
| 1118 | return 0; | 1119 | return; |
| 1119 | 1120 | ||
| 1120 | dmi_check_system(pciirq_dmi_table); | 1121 | dmi_check_system(pciirq_dmi_table); |
| 1121 | 1122 | ||
| @@ -1142,9 +1143,7 @@ int __init pcibios_irq_init(void) | |||
| 1142 | pirq_table = NULL; | 1143 | pirq_table = NULL; |
| 1143 | } | 1144 | } |
| 1144 | 1145 | ||
| 1145 | pcibios_enable_irq = pirq_enable_irq; | 1146 | x86_init.pci.fixup_irqs(); |
| 1146 | |||
| 1147 | pcibios_fixup_irqs(); | ||
| 1148 | 1147 | ||
| 1149 | if (io_apic_assign_pci_irqs && pci_routeirq) { | 1148 | if (io_apic_assign_pci_irqs && pci_routeirq) { |
| 1150 | struct pci_dev *dev = NULL; | 1149 | struct pci_dev *dev = NULL; |
| @@ -1157,8 +1156,6 @@ int __init pcibios_irq_init(void) | |||
| 1157 | for_each_pci_dev(dev) | 1156 | for_each_pci_dev(dev) |
| 1158 | pirq_enable_irq(dev); | 1157 | pirq_enable_irq(dev); |
| 1159 | } | 1158 | } |
| 1160 | |||
| 1161 | return 0; | ||
| 1162 | } | 1159 | } |
| 1163 | 1160 | ||
| 1164 | static void pirq_penalize_isa_irq(int irq, int active) | 1161 | static void pirq_penalize_isa_irq(int irq, int active) |
