Re: + via-rhine-on-epia-pd-needs.patch added to -mm tree

From: Jeff Garzik
Date: Sat Jun 24 2006 - 18:38:50 EST


akpm@xxxxxxxx wrote:
The patch titled

via-rhine on epia-pd needs irq-quirk

has been added to the -mm tree. Its filename is

via-rhine-on-epia-pd-needs.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: via-rhine on epia-pd needs irq-quirk
From: <enrico.scholz@xxxxxxxxxxxxxxxxxxxxxxxxx>


See http://bugzilla.kernel.org/show_bug.cgi?id=6744

VT6102 [Rhine-II] needs a routing of IRQ 9 to IRQ 11.

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

Cc: Greg KH <greg@xxxxxxxxx>
Cc: Roger Luethi <rl@xxxxxxxxxxx>
Cc: Jeff Garzik <jeff@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

drivers/pci/quirks.c | 1 +
1 file changed, 1 insertion(+)

diff -puN drivers/pci/quirks.c~via-rhine-on-epia-pd-needs drivers/pci/quirks.c
--- a/drivers/pci/quirks.c~via-rhine-on-epia-pd-needs
+++ a/drivers/pci/quirks.c
@@ -662,6 +662,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);

It strikes me as very unwise to do this. I know that some VIA Rhine exist on a PCI card, which is a valid case where this quirk should -not- be executed.

The VIA quirk is only for on-motherboard devices, which have special PCI interrupt line behavior (makes some internal PIC connections).

How can we solve this conditionally? I agree this is needed... for on-mobo devices. But 0x3065 is not always glued in, AFAIK.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/