aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/pci
diff options
context:
space:
mode:
authorDavid Shaohua Li <shaohua.li@intel.com>2005-04-01 00:07:31 -0500
committerLen Brown <len.brown@intel.com>2005-07-12 00:03:30 -0400
commitc9c3e457de24cca2ca688fa397d93a241f472048 (patch)
tree570b7a07f9c6f570341481500a2bff21c1328d8d /arch/i386/pci
parentacf05f4b7f558051ea0028e8e617144123650272 (diff)
[ACPI] PNPACPI vs sound IRQ
http://bugme.osdl.org/show_bug.cgi?id=4016 Written-by: David Shaohua Li <shaohua.li@intel.com> Acked-by: Adam Belay <abelay@novell.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/i386/pci')
-rw-r--r--arch/i386/pci/irq.c16
-rw-r--r--arch/i386/pci/visws.c2
2 files changed, 11 insertions, 7 deletions
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c
index da21b1d07c15..d21b3a2dc978 100644
--- a/arch/i386/pci/irq.c
+++ b/arch/i386/pci/irq.c
@@ -1006,24 +1006,28 @@ static int __init pcibios_irq_init(void)
1006subsys_initcall(pcibios_irq_init); 1006subsys_initcall(pcibios_irq_init);
1007 1007
1008 1008
1009static void pirq_penalize_isa_irq(int irq) 1009static void pirq_penalize_isa_irq(int irq, int active)
1010{ 1010{
1011 /* 1011 /*
1012 * If any ISAPnP device reports an IRQ in its list of possible 1012 * If any ISAPnP device reports an IRQ in its list of possible
1013 * IRQ's, we try to avoid assigning it to PCI devices. 1013 * IRQ's, we try to avoid assigning it to PCI devices.
1014 */ 1014 */
1015 if (irq < 16) 1015 if (irq < 16) {
1016 pirq_penalty[irq] += 100; 1016 if (active)
1017 pirq_penalty[irq] += 1000;
1018 else
1019 pirq_penalty[irq] += 100;
1020 }
1017} 1021}
1018 1022
1019void pcibios_penalize_isa_irq(int irq) 1023void pcibios_penalize_isa_irq(int irq, int active)
1020{ 1024{
1021#ifdef CONFIG_ACPI_PCI 1025#ifdef CONFIG_ACPI_PCI
1022 if (!acpi_noirq) 1026 if (!acpi_noirq)
1023 acpi_penalize_isa_irq(irq); 1027 acpi_penalize_isa_irq(irq, active);
1024 else 1028 else
1025#endif 1029#endif
1026 pirq_penalize_isa_irq(irq); 1030 pirq_penalize_isa_irq(irq, active);
1027} 1031}
1028 1032
1029static int pirq_enable_irq(struct pci_dev *dev) 1033static int pirq_enable_irq(struct pci_dev *dev)
diff --git a/arch/i386/pci/visws.c b/arch/i386/pci/visws.c
index 6a9248784439..314c933b6b8e 100644
--- a/arch/i386/pci/visws.c
+++ b/arch/i386/pci/visws.c
@@ -21,7 +21,7 @@ static int pci_visws_enable_irq(struct pci_dev *dev) { return 0; }
21 21
22int (*pcibios_enable_irq)(struct pci_dev *dev) = &pci_visws_enable_irq; 22int (*pcibios_enable_irq)(struct pci_dev *dev) = &pci_visws_enable_irq;
23 23
24void __init pcibios_penalize_isa_irq(int irq) {} 24void __init pcibios_penalize_isa_irq(int irq, int active) {}
25 25
26 26
27unsigned int pci_bus0, pci_bus1; 27unsigned int pci_bus0, pci_bus1;