diff options
author | David Shaohua Li <shaohua.li@intel.com> | 2005-04-01 00:07:31 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-07-12 00:03:30 -0400 |
commit | c9c3e457de24cca2ca688fa397d93a241f472048 (patch) | |
tree | 570b7a07f9c6f570341481500a2bff21c1328d8d /arch/i386/pci/irq.c | |
parent | acf05f4b7f558051ea0028e8e617144123650272 (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/irq.c')
-rw-r--r-- | arch/i386/pci/irq.c | 16 |
1 files changed, 10 insertions, 6 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) | |||
1006 | subsys_initcall(pcibios_irq_init); | 1006 | subsys_initcall(pcibios_irq_init); |
1007 | 1007 | ||
1008 | 1008 | ||
1009 | static void pirq_penalize_isa_irq(int irq) | 1009 | static 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 | ||
1019 | void pcibios_penalize_isa_irq(int irq) | 1023 | void 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 | ||
1029 | static int pirq_enable_irq(struct pci_dev *dev) | 1033 | static int pirq_enable_irq(struct pci_dev *dev) |