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) |