Bug 2567 - wrong irq rouing on centrino laptop - PIC
Summary: wrong irq rouing on centrino laptop - PIC
Status: CLOSED CODE_FIX
Alias: None
Product: ACPI
Classification: Unclassified
Component: Config-Interrupts (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Len Brown
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-22 09:45 UTC by Andrey Ulanov
Modified: 2004-05-11 23:28 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.4.26, 2.6.5
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
dmesg -s64000 (9.77 KB, text/plain)
2004-04-22 09:46 UTC, Andrey Ulanov
Details
/proc/interrupts (581 bytes, text/plain)
2004-04-22 09:46 UTC, Andrey Ulanov
Details
lspci -vv (10.04 KB, text/plain)
2004-04-22 09:47 UTC, Andrey Ulanov
Details
output from acpidmp (87.53 KB, text/plain)
2004-04-22 09:47 UTC, Andrey Ulanov
Details
output from dmidecode (9.50 KB, text/plain)
2004-04-22 09:48 UTC, Andrey Ulanov
Details
dmesg with the "debug patch" applied (10.55 KB, text/plain)
2004-04-24 03:16 UTC, Andrey Ulanov
Details
dmesg with higher debug level (53.43 KB, text/plain)
2004-04-24 05:37 UTC, Andrey Ulanov
Details
IRQs under windows (1016 bytes, text/plain)
2004-04-24 08:28 UTC, Andrey Ulanov
Details
The patch which helps! (1.18 KB, patch)
2004-04-24 09:30 UTC, Andrey Ulanov
Details | Diff
dmesg with last patch (10.99 KB, text/plain)
2004-04-26 01:44 UTC, Andrey Ulanov
Details
/proc/interrupts with last patch (565 bytes, text/plain)
2004-04-26 01:44 UTC, Andrey Ulanov
Details

Description Andrey Ulanov 2004-04-22 09:45:37 UTC
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.
Comment 1 Andrey Ulanov 2004-04-22 09:46:13 UTC
Created attachment 2644 [details]
dmesg -s64000
Comment 2 Andrey Ulanov 2004-04-22 09:46:41 UTC
Created attachment 2645 [details]
/proc/interrupts
Comment 3 Andrey Ulanov 2004-04-22 09:47:09 UTC
Created attachment 2646 [details]
lspci -vv
Comment 4 Andrey Ulanov 2004-04-22 09:47:35 UTC
Created attachment 2647 [details]
output from acpidmp
Comment 5 Andrey Ulanov 2004-04-22 09:48:01 UTC
Created attachment 2648 [details]
output from dmidecode
Comment 6 Len Brown 2004-04-22 23:14:08 UTC
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 
 
  
Comment 7 Andrey Ulanov 2004-04-23 05:34:59 UTC
>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.
Comment 8 Andrey Ulanov 2004-04-23 05:50:01 UTC
Maybe it is worth saying that the adapter is built in into the laptop.
Comment 9 Len Brown 2004-04-23 20:20:03 UTC
please apply the 2.6.5 debug patch in bug 1581 and attach the resulting dmesg. 
Comment 10 Andrey Ulanov 2004-04-24 03:16:40 UTC
Created attachment 2685 [details]
dmesg with the "debug patch" applied
Comment 11 Andrey Ulanov 2004-04-24 05:37:40 UTC
Created attachment 2686 [details]
dmesg with higher debug level
Comment 12 Andrey Ulanov 2004-04-24 08:28:51 UTC
Created attachment 2687 [details]
IRQs under windows
Comment 13 Andrey Ulanov 2004-04-24 09:30:03 UTC
Created attachment 2689 [details]
The patch which helps!

Yes. :)
It really fixes the problem in my case.
Comment 14 Len Brown 2004-04-25 23:58:33 UTC
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... 
Comment 15 Len Brown 2004-04-26 00:39:09 UTC
please test the latest patch at bug 1581 
and attach the resulting full dmesg and /proc/interrupts. 
Comment 16 Andrey Ulanov 2004-04-26 01:44:06 UTC
Created attachment 2711 [details]
dmesg with last patch
Comment 17 Andrey Ulanov 2004-04-26 01:44:56 UTC
Created attachment 2712 [details]
/proc/interrupts with last patch
Comment 18 Andrey Ulanov 2004-04-26 01:45:44 UTC
with this patch ipw2100 works well too
Comment 19 Len Brown 2004-05-11 23:28:48 UTC
shipped in 2.6.6, and on top of 2.4.27-pre2 -- closing. 

Note You need to log in before you can comment on or make changes to this bug.