Hardware Environment: some centrino laptop Problem Description: I'm trying to use Intel Wireless 2100 adapter on my centrino based notebook. I use ipw2100 drivers from ipw2100.sf.net. The thing is that hardware says that the device should generate irq11, but it really generates irq5. I tryed both 2.4.26 and 2.6.5. I also tryed to compile kernel with and without ACPI. I tryed to compile kernel with and without APIC support. I also tryed to pass some parameters to kernel (acpi=off, acpi=force, pci=biosirq). But anyway kernel says irq 11 and device generates irq5. Of course it is possible to be hardware problem, but it works under windows.
Created attachment 2644 [details] dmesg -s64000
Created attachment 2645 [details] /proc/interrupts
Created attachment 2646 [details] lspci -vv
Created attachment 2647 [details] output from acpidmp
Created attachment 2648 [details] output from dmidecode
What suggests that the ipw2100 drives IRQ5 and not IRQ11? What are the IRQ assignments under Windows? Was ipw2100 given a different IRQ under versions of linux < 2.6.5? Are you running the system in the docking station, or standalone? Why is acpi=force on the cmdline, does acpi disable itself it this is not used? I don't see ipw2100 in the dmesg or /proc/interrupts, can you attach the dmesg and /proc/interrupts that includes ipw2100? ipw2100 is device 02:09.0, apparently on the other side of a cardbus bridge. DSDT says it uses LNKC: Package (0x04) { 0x0009FFFF, 0x00, \_SB.PCI0.LPCB.LNKC, 0x00 }, LNKC is curious, it appears to start life with no active entry and only IRQ10 possible: ACPI: PCI Interrupt Link [LNKC] (IRQs 10) but then we enable it on IRQ11: ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
>What suggests that the ipw2100 drives IRQ5 and not IRQ11? After loading module linux-2.6.5 says: "irq5: nobody cared", and then disables it. With the following patch applied to ipw2100 everything works fine: --- ipw2100-0.41/ipw2100_main.c.old 2004-04-16 04:54:22.000000000 +0400 +++ ipw2100-0.41/ipw2100_main.c 2004-04-19 12:53:00.024015616 +0400 @@ -5819,6 +5819,9 @@ } ipw2100_queues_initialize(priv); + if(pdev->irq == 11) + pdev->irq = 5; + err = request_irq(pdev->irq, ipw2100_interrupt, SA_SHIRQ, dev->name, dev); > What are the IRQ assignments under Windows? 10 > Was ipw2100 given a different IRQ under versions of linux < 2.6.5? I haven't seen any difference with 2.4.
Maybe it is worth saying that the adapter is built in into the laptop.
please apply the 2.6.5 debug patch in bug 1581 and attach the resulting dmesg.
Created attachment 2685 [details] dmesg with the "debug patch" applied
Created attachment 2686 [details] dmesg with higher debug level
Created attachment 2687 [details] IRQs under windows
Created attachment 2689 [details] The patch which helps! Yes. :) It really fixes the problem in my case.
ACPI: PCI Interrupt Link [LNKA] (IRQs 5) <*10> ACPI: PCI Interrupt Link [LNKB] (IRQs 10) <*5> ACPI: PCI Interrupt Link [LNKC] (IRQs 10) <*11> ACPI: PCI Interrupt Link [LNKD] (IRQs 11) <*3> ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) <*0>, disabled. ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) <*0>, disabled. ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) <*0>, disabled. ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 *7 11 12 14 15) ACPI: Embedded Controller [EC] (gpe 28) ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10 ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5 ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11 ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 3 ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 7 Yep, link A, B, C, D are active at IRQs that do not exist in the possible list... I just updated the patch at bug 1581 for this very case, but under APIC mode. In PIC mode we've taken what we thought was the more conservative route of not re-programming the links what are set to active. Clear this policy is incorrect when the links are active on IRQs not in the possible list. I'll update the patch to apply to both cases...
please test the latest patch at bug 1581 and attach the resulting full dmesg and /proc/interrupts.
Created attachment 2711 [details] dmesg with last patch
Created attachment 2712 [details] /proc/interrupts with last patch
with this patch ipw2100 works well too
shipped in 2.6.6, and on top of 2.4.27-pre2 -- closing.