Distribution: SuSE 9.1 Hardware Environment: HP Omibook xe4100 (a very detailed table, but german: http://members.telering.at/willhoschek/dataSheet.html) Software Environment: Problem Description: The laptop has a Rhine II network chip which is accessible under IRQ 11. However, from the kernel version 2.6.5-bk2 on it is detected on other IRQ numbers which makes the network card dead. Situations: 1) Used SuSE 9.1 with its 2.6.4 kernel: network ok 2) Updated to SuSE-2.6.7: network fails 3) Gone back to SuSE-2.6.4: network ok 4) "acpi=no" with "noapic" on SuSE-2.6.7 kernel: network fails 5) "pci=noacpi" on vanilla-2.6.8-cvs (24 Aug 2004): network fails 6) Compiled a vanilla-2.6.8.1 kernel with via-rhine.c from SuSE-2.6.4: network fails 7) Then tracked down the exact kernel and the bk version where it starts to fail. It appears to be a IRQ assignment problem since the working kernel assigns IRQ 11 to the rhine chip and 2.6.7 uses 9. Then a message for IRQ 11 appears in the logs which says that nobody cared about it. SuSE-2.6.4 --> IRQ 11 --> eth0 works vanilla-2.6.5 --> IRQ 11 --> eth0 works vanilla-2.6.5-bk2 --> IRQ 11 --> eth0 works vanilla-2.6.6 --> IRQ 12 --> eth0 failure SuSE-2.6.7 --> IRQ 9 --> eth0 failure vanilla-2.6.8.1 (with old via-rhine.c) --> IRQ 9 -> eth0 failure vanilla-2.6.8.1 (with standard via-rhine.c) --> IRQ 9 -> eth0 failure If I manage to build the -rc versions I will test them, too. An additional observation: At least at SuSE-2.6.4 USB works, with SuSE-2.6.7 no USB stick is being detected. Maybe an interference with the other problem? Steps to reproduce: Use any later kernel, e.g. 2.6.6 on the HP Omnibook xe4100.
Created attachment 3599 [details] Output of the dmidecode command
Created attachment 3600 [details] Output of the lspci -vvv command
Created attachment 3601 [details] Extract of contents: /var/log/messages from 2.6.4 and 2.6.7 (both SuSE)
Created attachment 3616 [details] USB messages (kernel 2.6.6-rc3-bk9) / search for last working kernel version The attached file contains all messages which refer to the USB driver in kernel 2.6.6-rc3-bk9. Just in case it matters. Somewhere between 2.6.5bk2 and 2.6.6rc2 the touchpad starts to fail (but works in recent kernel versions again). Further kernel versions on this notebook: 2.6.6-rc3: eth0 works, touchpad fails, USB works 2.6.6-rc3-bk6: eth0 works, touchpad fails, USB not tested 2.6.6-rc3-bk7: eth0 works, touchpad fails, USB not tested 2.6.6-rc3-bk8: eth0 fails, touchpad fails, USB unknown (same messages as bk9) 2.6.6-rc3-bk9: eth0 fails, touchpad fails, USB unknown (has IRQ problems, see attachment text) 2.6.6: eth0 fails, touchpad and USB not tested The touchpad works in more recent kernel versions (known for SuSE-2.6.7). So the critical change is introduced in 2.6.6-rc3-bk6.
Ooops, its in since bk8... typo
Created attachment 3621 [details] Report on tests using kernel parameters and kernels without ACPI support
Created attachment 3628 [details] Report on futher tests using kernel parameters
Does this workaround help? (comment one line 'link->irq.active = 0;' in drivers/acpi/pci_link.c) /* * forget active IRQ that is not in possible list */ if (i == link->irq.possible_count) { if (acpi_strict) printk(KERN_WARNING PREFIX "_CRS %d not found" " in _PRS\n", link->irq.active); +// link->irq.active = 0; }
Tested the workaround on kernel 2.6.8.1. Yes, network works again, no USB errors anymore.
Could you please test current kernel without your workaround
Created attachment 4195 [details] dmesg output, just ACPI, USB, RhineII, APIC extract from dmesg output, tested with 2.6.10-rc2-bk13: - Touchpad: works good - Console login possible - USB IRQ 11, does not work - eth0 using IRQ 9, does not work - booting with "lapic" does not help (network dead), it says "disabled by BIOS -- reenabling" and "Could ot enable APIC", finally "mapped APIC to ffffd000"
Created attachment 4202 [details] debug patch The intergrated devices in VIA chipset generally need a quirk. Could you please test the debug patch to verify if NIC works? If it works, please send the 'lspci -n' output, so I can make a quirk for the USB. I can't find the USB id in previous lspci. Thanks.
Created attachment 4208 [details] lspci -n eth0 works now! USB untested (i've seen no error messages but this could be my fault). Will report on USB in future.
From the lspci, the USB quirk has been in 2.6 kernel, so I suppose it works.
Thank you gentlemen, i'll close this bug with a resolution of CODE_FIX i presume you'll do the honours of sending things upstream.
applied patch in comment #12 to acpi tree
Created attachment 4241 [details] new test patch Made quirk for every device is really tough. Could you please remove previous patch and try this patch? This patch looks more generic. Thanks.
Created attachment 4245 [details] dmesg output after applying patch from #17 to 2.6.10-rc2-bk13 Unfortunately this did not work, eth0 is dead
Created attachment 4258 [details] Test patch Oh the patch has typo, sorry. Please try this one. Thanks.
eth0 works with patch from #19 Thanks a lot!
Created attachment 4273 [details] general VIA quirk Len would like remove specific VIA quirks and apply generic VIA quirk. Let's see if it's a bad idea in next -mm tree.
applied patch in comment #21, with minor syntax update, to acpi-test tree
Created attachment 4302 [details] some of the backport to kernel 2.4 :) Hi I think this could be good stuuf to apply on kernel-2.4.28, but I don't know how apply this part of the patch ! + if (interrupt_line_quirk) + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq & 15); +
Created attachment 4461 [details] 2.4 version of the patch Please test this 2.4 version of the patch from David Shaohua Li.
It will take some time before I can test that patch, sorry. First, I have to prepare a CD from which I can boot a 2.4-kernel and patch that.
Created attachment 4503 [details] patch for 2.4 with more debug for whose want debug a little more on via motherboard at really is going on. Just add printtk in others via_quirks
2.4 patch in comment #24 shipped in Linux-2.4.30-pre1 closing.
Created attachment 4799 [details] incremental 2.6.11 patch from Bjorn Helgaas applied this incremental patch to 26 acpi-test tree
Created attachment 5039 [details] patch for kernel 2.4.30 (http://bugme.osdl.org/attachment.cgi?id=4799 more new email do VIA IRQ fixup always, not just in PIC mode
Created attachment 5040 [details] just the debug part
btw: debug part is for kernel 2.4.30, and I had this results : #dmesg | grep Appl Applying quirk_via_irq. Applying quirk_via_irq. Applying quirk_via_irq. Applying quirk_via_irq. Applying quirk_via_irq. Applying quirk_vt82c686_acpi. Applying quirk_via_irq. Applying quirk_via_acpi. Applying quirk_via_irq. Applying VIA southbridge workaround. (VIA Apollo KT133 needs PCI latency patch, applying quirk_vialatency).
Created attachment 5050 [details] In the debug printks, you might want to also print out pci_name(dev) cool :) Bjorn, this pacth is for kernel 2.4.30 to debug this via pci irq part
Created attachment 5051 [details] test case
Sergio, in comment #29, i don't understand the bug id reference, did you mean to point to a different bug?
> Sergio, in comment #29, i don't understand the bug id reference, > did you mean to point to a different bug? hi, Len No I dont to point a different bug, I just join 2 patchs. The first patch is alrady in kernels and second patch is "VIA IRQ fixup always, not just in PIC mode"