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 | |
parent | acf05f4b7f558051ea0028e8e617144123650272 (diff) | |
download | linux-c9c3e457de24cca2ca688fa397d93a241f472048.tar.gz linux-c9c3e457de24cca2ca688fa397d93a241f472048.tar.bz2 linux-c9c3e457de24cca2ca688fa397d93a241f472048.zip |
[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')
-rw-r--r-- | arch/i386/pci/irq.c | 16 | ||||
-rw-r--r-- | arch/i386/pci/visws.c | 2 |
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) subsys_initcall(pcibios_irq_init); -static void pirq_penalize_isa_irq(int irq) +static void pirq_penalize_isa_irq(int irq, int active) { /* * If any ISAPnP device reports an IRQ in its list of possible * IRQ's, we try to avoid assigning it to PCI devices. */ - if (irq < 16) - pirq_penalty[irq] += 100; + if (irq < 16) { + if (active) + pirq_penalty[irq] += 1000; + else + pirq_penalty[irq] += 100; + } } -void pcibios_penalize_isa_irq(int irq) +void pcibios_penalize_isa_irq(int irq, int active) { #ifdef CONFIG_ACPI_PCI if (!acpi_noirq) - acpi_penalize_isa_irq(irq); + acpi_penalize_isa_irq(irq, active); else #endif - pirq_penalize_isa_irq(irq); + pirq_penalize_isa_irq(irq, active); } static 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; } int (*pcibios_enable_irq)(struct pci_dev *dev) = &pci_visws_enable_irq; -void __init pcibios_penalize_isa_irq(int irq) {} +void __init pcibios_penalize_isa_irq(int irq, int active) {} unsigned int pci_bus0, pci_bus1; |