aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/pci
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/pci')
-rw-r--r--arch/x86/pci/acpi.c1
-rw-r--r--arch/x86/pci/irq.c12
-rw-r--r--arch/x86/pci/legacy.c2
3 files changed, 6 insertions, 9 deletions
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 73b3fe9aa716..b53f0487e2d3 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -289,6 +289,7 @@ int __init pci_acpi_init(void)
289 acpi_irq_penalty_init(); 289 acpi_irq_penalty_init();
290 pcibios_enable_irq = acpi_pci_irq_enable; 290 pcibios_enable_irq = acpi_pci_irq_enable;
291 pcibios_disable_irq = acpi_pci_irq_disable; 291 pcibios_disable_irq = acpi_pci_irq_disable;
292 x86_init.pci.init_irq = x86_init_noop;
292 293
293 if (pci_routeirq) { 294 if (pci_routeirq) {
294 /* 295 /*
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
index 0696d506c4ad..0f40ff20dd67 100644
--- a/arch/x86/pci/irq.c
+++ b/arch/x86/pci/irq.c
@@ -53,7 +53,7 @@ struct irq_router_handler {
53 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device); 53 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
54}; 54};
55 55
56int (*pcibios_enable_irq)(struct pci_dev *dev) = NULL; 56int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq;
57void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL; 57void (*pcibios_disable_irq)(struct pci_dev *dev) = NULL;
58 58
59/* 59/*
@@ -1110,12 +1110,12 @@ static struct dmi_system_id __initdata pciirq_dmi_table[] = {
1110 { } 1110 { }
1111}; 1111};
1112 1112
1113int __init pcibios_irq_init(void) 1113void __init pcibios_irq_init(void)
1114{ 1114{
1115 DBG(KERN_DEBUG "PCI: IRQ init\n"); 1115 DBG(KERN_DEBUG "PCI: IRQ init\n");
1116 1116
1117 if (pcibios_enable_irq || raw_pci_ops == NULL) 1117 if (raw_pci_ops == NULL)
1118 return 0; 1118 return;
1119 1119
1120 dmi_check_system(pciirq_dmi_table); 1120 dmi_check_system(pciirq_dmi_table);
1121 1121
@@ -1142,8 +1142,6 @@ int __init pcibios_irq_init(void)
1142 pirq_table = NULL; 1142 pirq_table = NULL;
1143 } 1143 }
1144 1144
1145 pcibios_enable_irq = pirq_enable_irq;
1146
1147 pcibios_fixup_irqs(); 1145 pcibios_fixup_irqs();
1148 1146
1149 if (io_apic_assign_pci_irqs && pci_routeirq) { 1147 if (io_apic_assign_pci_irqs && pci_routeirq) {
@@ -1157,8 +1155,6 @@ int __init pcibios_irq_init(void)
1157 for_each_pci_dev(dev) 1155 for_each_pci_dev(dev)
1158 pirq_enable_irq(dev); 1156 pirq_enable_irq(dev);
1159 } 1157 }
1160
1161 return 0;
1162} 1158}
1163 1159
1164static void pirq_penalize_isa_irq(int irq, int active) 1160static void pirq_penalize_isa_irq(int irq, int active)
diff --git a/arch/x86/pci/legacy.c b/arch/x86/pci/legacy.c
index 0daf264ddb6c..0db5eaf54560 100644
--- a/arch/x86/pci/legacy.c
+++ b/arch/x86/pci/legacy.c
@@ -60,7 +60,7 @@ int __init pci_subsys_init(void)
60 pci_legacy_init(); 60 pci_legacy_init();
61 61
62 pcibios_fixup_peer_bridges(); 62 pcibios_fixup_peer_bridges();
63 pcibios_irq_init(); 63 x86_init.pci.init_irq();
64 pcibios_init(); 64 pcibios_init();
65 65
66 return 0; 66 return 0;