Bug 2567
Summary: | wrong irq rouing on centrino laptop - PIC | ||
---|---|---|---|
Product: | ACPI | Reporter: | Andrey Ulanov (drey) |
Component: | Config-Interrupts | Assignee: | Len Brown (lenb) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.4.26, 2.6.5 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
dmesg -s64000
/proc/interrupts lspci -vv output from acpidmp output from dmidecode dmesg with the "debug patch" applied dmesg with higher debug level IRQs under windows The patch which helps! dmesg with last patch /proc/interrupts with last patch |
Description
Andrey Ulanov
2004-04-22 09:45:37 UTC
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. |