* [PATCH] 2.6.0-test4 Don't change BIOS allocated IRQs
@ 2003-09-16 23:11 Andrew de Quincey
[not found] ` <200309170011.03630.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Andrew de Quincey @ 2003-09-16 23:11 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Cc: linux-acpi-ral2JQCrhuEAvxtiuMwx3w, Chris Wright
With the help of Chris Wright testing several failed patches, I've tracked
down another ACPI IRQ problem. On many systems, the BIOS
pre-allocates IRQs for certain PCI devices, providing a list of alternate
possibilities as well.
On some systems, changing the IRQ to one of those alternate possibilities
works fine. On others however, it really isn't a good idea. As theres no
way to tell which systems are good and bad in advance, this patch simply
ensures that ACPI does not change an IRQ if the BIOS has pre-allocated it.
--- linux-2.6.0-test4.es7000fix/drivers/acpi/pci_link.c 2003-09-06 00:35:16.000000000 +0100
+++ linux-2.6.0-test4.nochangeirq/drivers/acpi/pci_link.c 2003-09-17 00:00:40.740553544 +0100
@@ -510,15 +510,15 @@
irq = link->irq.active;
} else {
irq = link->irq.possible[0];
- }
- /*
- * Select the best IRQ. This is done in reverse to promote
- * the use of IRQs 9, 10, 11, and >15.
- */
- for (i=(link->irq.possible_count-1); i>0; i--) {
- if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]])
- irq = link->irq.possible[i];
+ /*
+ * Select the best IRQ. This is done in reverse to promote
+ * the use of IRQs 9, 10, 11, and >15.
+ */
+ for (i=(link->irq.possible_count-1); i>0; i--) {
+ if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]])
+ irq = link->irq.possible[i];
+ }
}
/* Attempt to enable the link device at this IRQ. */
^ permalink raw reply [flat|nested] 4+ messages in thread[parent not found: <200309170011.03630.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>]
* Re: [PATCH] 2.6.0-test4 Don't change BIOS allocated IRQs [not found] ` <200309170011.03630.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> @ 2003-09-17 0:29 ` Chris Wright 2003-09-17 1:02 ` [ACPI] " Greg KH 1 sibling, 0 replies; 4+ messages in thread From: Chris Wright @ 2003-09-17 0:29 UTC (permalink / raw) To: Andrew de Quincey Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-acpi-ral2JQCrhuEAvxtiuMwx3w, Chris Wright * Andrew de Quincey (adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org) wrote: > With the help of Chris Wright testing several failed patches, I've tracked > down another ACPI IRQ problem. On many systems, the BIOS > pre-allocates IRQs for certain PCI devices, providing a list of alternate > possibilities as well. As Andrew showed me, this manifested itself like: ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *6 7 10 11 12) ... ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10 whereas the patch does: ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *6 7 10 11 12) ... ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 6 > On some systems, changing the IRQ to one of those alternate possibilities > works fine. On others however, it really isn't a good idea. As theres no > way to tell which systems are good and bad in advance, this patch simply > ensures that ACPI does not change an IRQ if the BIOS has pre-allocated it. Thanks for the patch Andrew ;-) I tested this patch (or applicable variation) on test3-bk3 (where the original breakage ocurred) up through test5-mm2, all worked fine. This patch doesn't actually apply to current test5-bk (inline patch and url below) or test5-mm2 (inline patch and url below) for those who'd like to test. thanks, -chris -- Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net 2.6.0-test5-bk_current acpi pci irq fix: http://developer.osdl.org/chrisw/acpi/2.6.0-test5/test5-bk-acpi_pci_irq_fix.diff ===== drivers/acpi/pci_link.c 1.17 vs edited ===== --- 1.17/drivers/acpi/pci_link.c Sun Aug 31 16:14:25 2003 +++ edited/drivers/acpi/pci_link.c Tue Sep 16 16:59:46 2003 @@ -456,7 +456,6 @@ irq = link->irq.active; } else { irq = link->irq.possible[0]; - } /* * Select the best IRQ. This is done in reverse to promote @@ -466,6 +465,7 @@ if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) irq = link->irq.possible[i]; } + } /* Attempt to enable the link device at this IRQ. */ if (acpi_pci_link_set(link, irq)) { 2.6.0-test5-mm2 acpi pci irq fix: http://developer.osdl.org/chrisw/acpi/2.6.0-test5-mm2/mm2-acpi_pci_irq_fix.diff --- 2.6.0-test5-mm2-clean/drivers/acpi/pci_link.c 2003-09-16 14:17:27.000000000 -0700 +++ 2.6.0-test5-mm2/drivers/acpi/pci_link.c 2003-09-16 15:01:31.000000000 -0700 @@ -509,15 +509,15 @@ irq = link->irq.active; } else { irq = link->irq.possible[0]; - } - /* - * Select the best IRQ. This is done in reverse to promote - * the use of IRQs 9, 10, 11, and >15. - */ - for (i=(link->irq.possible_count-1); i>0; i--) { - if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) - irq = link->irq.possible[i]; + /* + * Select the best IRQ. This is done in reverse to promote + * the use of IRQs 9, 10, 11, and >15. + */ + for (i=(link->irq.possible_count-1); i>0; i--) { + if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) + irq = link->irq.possible[i]; + } } /* Attempt to enable the link device at this IRQ. */ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ACPI] [PATCH] 2.6.0-test4 Don't change BIOS allocated IRQs [not found] ` <200309170011.03630.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> 2003-09-17 0:29 ` Chris Wright @ 2003-09-17 1:02 ` Greg KH [not found] ` <20030917010254.GA1640-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 1 sibling, 1 reply; 4+ messages in thread From: Greg KH @ 2003-09-17 1:02 UTC (permalink / raw) To: Andrew de Quincey Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-acpi-ral2JQCrhuEAvxtiuMwx3w, Chris Wright On Wed, Sep 17, 2003 at 12:11:03AM +0100, Andrew de Quincey wrote: > With the help of Chris Wright testing several failed patches, I've tracked > down another ACPI IRQ problem. On many systems, the BIOS > pre-allocates IRQs for certain PCI devices, providing a list of alternate > possibilities as well. > > On some systems, changing the IRQ to one of those alternate possibilities > works fine. On others however, it really isn't a good idea. As theres no > way to tell which systems are good and bad in advance, this patch simply > ensures that ACPI does not change an IRQ if the BIOS has pre-allocated it. Nice, the patch below, which Chris told me is from you, fixed my problems too. It is against 2.6.0-test5-bk3 and fixes bug number 1186 in the bugzilla.kernel.org database. Many thanks for this work, I really appreciate it. thanks, greg k-h test5-bk_current ===== drivers/acpi/pci_link.c 1.13 vs edited ===== --- 1.13/drivers/acpi/pci_link.c Mon Sep 8 05:51:03 2003 +++ edited/drivers/acpi/pci_link.c Tue Sep 16 16:16:31 2003 @@ -456,7 +456,6 @@ irq = link->irq.active; } else { irq = link->irq.possible[0]; - } /* * Select the best IRQ. This is done in reverse to promote @@ -466,6 +465,7 @@ if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) irq = link->irq.possible[i]; } + } /* Attempt to enable the link device at this IRQ. */ if (acpi_pci_link_set(link, irq)) { ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20030917010254.GA1640-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] 2.6.0-test4 Don't change BIOS allocated IRQs [not found] ` <20030917010254.GA1640-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> @ 2003-09-17 8:08 ` Andrew de Quincey 0 siblings, 0 replies; 4+ messages in thread From: Andrew de Quincey @ 2003-09-17 8:08 UTC (permalink / raw) To: Greg KH Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, linux-acpi-ral2JQCrhuEAvxtiuMwx3w, Chris Wright On Wednesday 17 September 2003 02:02, Greg KH wrote: > On Wed, Sep 17, 2003 at 12:11:03AM +0100, Andrew de Quincey wrote: > > With the help of Chris Wright testing several failed patches, I've > > tracked down another ACPI IRQ problem. On many systems, the BIOS > > pre-allocates IRQs for certain PCI devices, providing a list of alternate > > possibilities as well. > > > > On some systems, changing the IRQ to one of those alternate possibilities > > works fine. On others however, it really isn't a good idea. As theres no > > way to tell which systems are good and bad in advance, this patch simply > > ensures that ACPI does not change an IRQ if the BIOS has pre-allocated > > it. > > Nice, the patch below, which Chris told me is from you, fixed my > problems too. It is against 2.6.0-test5-bk3 and fixes bug number 1186 > in the bugzilla.kernel.org database. > > Many thanks for this work, I really appreciate it. Great! thanks for letting me know. ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-09-17 8:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-16 23:11 [PATCH] 2.6.0-test4 Don't change BIOS allocated IRQs Andrew de Quincey
[not found] ` <200309170011.03630.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-09-17 0:29 ` Chris Wright
2003-09-17 1:02 ` [ACPI] " Greg KH
[not found] ` <20030917010254.GA1640-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2003-09-17 8:08 ` Andrew de Quincey
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox