Bug 6744 - [PCI-QUIRKS] via-rhine on epia-pd needs irq-quirk
Summary: [PCI-QUIRKS] via-rhine on epia-pd needs irq-quirk
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: PCI (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Chris Wedgwood
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-06-24 13:30 UTC by Enrico Scholz
Modified: 2008-03-25 22:01 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.17
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Enrico Scholz 2006-06-24 13:30:04 UTC
Most recent kernel where this bug did not occur: < 2.6.16.17
Hardware Environment: VIA EPIA-PD
Problem Description:

VT6102 [Rhine-II] needs a routing of IRQ 9 to IRQ 11; e.g. with

---------
--- linux-2.6.17/drivers/pci/quirks.c.epia-pd	2006-06-18 03:49:35.000000000 +0200
+++ linux-2.6.17/drivers/pci/quirks.c	2006-06-24 17:02:19.000000000 +0200
@@ -651,6 +651,7 @@ static void quirk_via_irq(struct pci_dev
 		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
 	}
 }
+DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, 0x3065,   quirk_via_irq);
 DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, quirk_via_irq);
 DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, quirk_via_irq);
 DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irq);
---------

Without it, I get

| irq 9: nobody cared (try booting with the "irqpoll" option)
| <c0136636> __report_bad_irq+0x36/0x80  <c01367ee> note_interrupt+0x16e/0x1a0
| <c01c7f12> acpi_ev_sci_xrupt_handler+0x12/0x20  <c01361a3> handle_IRQ_event+0x23/0x50
| <c013623f> __do_IRQ+0x6f/0xa0  <c0105246> do_IRQ+0x36/0x50
| =======================
| <c010362a> common_interrupt+0x1a/0x20  <c0118fec> __do_softirq+0x2c/0x80
| <c0110520> do_page_fault+0x0/0x556  <c0105298> do_softirq+0x38/0x40
| =======================
| <c0105256> do_IRQ+0x46/0x50  <c010362a> common_interrupt+0x1a/0x20
| <c0110520> do_page_fault+0x0/0x556  <c0110651> do_page_fault+0x131/0x556
| <c0110520> do_page_fault+0x0/0x556  <c010374f> error_code+0x4f/0x60
| handlers:
| [<c01c2be0>] (acpi_irq+0x0/0x20)
| Disabling IRQ #9


# lspci 
00:00.0 Host bridge: VIA Technologies, Inc. VT8623 [Apollo CLE266]
00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
00:0f.0 Ethernet controller: VIA Technologies, Inc. VT6105 [Rhine-III] (rev 8b)
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)
00:14.0 Network controller: AVM Audiovisuelles MKTG & Computer System GmbH A1 ISDN [Fritz] (rev 02)
01:00.0 VGA compatible controller: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics (rev 03)

# lspci -n
00:00.0 0600: 1106:3123
00:01.0 0604: 1106:b091
00:0f.0 0200: 1106:3106 (rev 8b)
00:10.0 0c03: 1106:3038 (rev 80)
00:10.1 0c03: 1106:3038 (rev 80)
00:10.2 0c03: 1106:3038 (rev 80)
00:10.3 0c03: 1106:3104 (rev 82)
00:11.0 0601: 1106:3177
00:11.1 0101: 1106:0571 (rev 06)
00:11.5 0401: 1106:3059 (rev 50)
00:12.0 0200: 1106:3065 (rev 74)
00:14.0 0280: 1244:0a00 (rev 02)
01:00.0 0300: 1106:3122 (rev 03)


Kernelmessages without patch:

| kernel: PCI: VIA IRQ fixup for 0000:00:11.1, from 255 to 11
| kernel: PCI: VIA IRQ fixup for 0000:00:10.0, from 9 to 11
| kernel: PCI: VIA IRQ fixup for 0000:00:10.2, from 9 to 11


and with patch (or kernel <2.6.16.17):

| kernel: PCI: VIA IRQ fixup for 0000:00:11.1, from 255 to 11
| kernel: PCI: VIA IRQ fixup for 0000:00:12.0, from 9 to 11
| kernel: PCI: VIA IRQ fixup for 0000:00:10.0, from 9 to 11
| kernel: PCI: VIA IRQ fixup for 0000:00:10.2, from 9 to 11
Comment 1 Chris Wedgwood 2006-06-25 12:28:22 UTC
On Sat, Jun 24, 2006 at 01:31:12PM -0700, bugme-daemon@bugzilla.kernel.org wrote:

>            Summary: [PCI-QUIRKS] via-rhine on epia-pd needs irq-quirk

[...]

> +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, 0x3065,   quirk_via_irq);

Do you have ACPI enabled?
Comment 2 Enrico Scholz 2006-06-25 13:06:36 UTC
> Do you have ACPI enabled?

yes; see http://ensc.de/bugs/kernel-6744/dmesg
Comment 3 Sérgio M Basto 2006-07-14 08:45:40 UTC
cat /proc/interrupts give you XT-PIC or IO-APIC-edge/level ?

is XT-PIC isn't it ?
Comment 4 Enrico Scholz 2006-07-14 09:08:31 UTC
Patched kernel shows
 
  0:   45597281          XT-PIC  timer
  1:       1400          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  7:          1          XT-PIC  parport0
  9:          0          XT-PIC  acpi
 11:   10818739          XT-PIC  VIA8233, uhci_hcd:usb2, uhci_hcd:usb3, eth0, AVM Fritz!PCI
 12:    1882230          XT-PIC  uhci_hcd:usb1, eth2
 14:    5059501          XT-PIC  ide0
 15:    5100856          XT-PIC  ide1
Comment 5 Chris Wedgwood 2006-08-07 08:07:07 UTC
Does:

    http://marc.theaimsgroup.com/?l=linux-mm-commits&m=115380241912704&q=raw

work for you?
Comment 6 Enrico Scholz 2006-09-10 12:30:43 UTC
yes, http://marc.theaimsgroup.com/?l=linux-mm-commits&m=115380241912704&q=raw
works fine with 2.6.17.11
Comment 7 Natalie Protasevich 2008-03-25 21:47:11 UTC
Does this patch need to be submitted?  Or was this problem solved some other way?
Thanks.
Comment 8 Chris Wedgwood 2008-03-25 22:01:05 UTC
Alan Cox submitted a more correct fix some time ago.

commit 1597cacbe39802d86656d1f2e6329895bd2ef531
Author: Alan Cox <alan@lxorguk.ukuu.org.uk>
Date:   Mon Dec 4 15:14:45 2006 -0800

It first appeared in 2.6.20.

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