aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/pci/irq.c
diff options
context:
space:
mode:
authorGiancarlo Formicuccia <giancarlo.formicuccia@gmail.com>2005-07-28 04:07:33 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-28 11:39:01 -0400
commitac12259f2984d96454affc147f9d63f2ac2ac1f8 (patch)
tree7c020f7c6efbfd57b85043d7af615fe473ea4a42 /arch/i386/pci/irq.c
parentad2b93123d2b3cb4ba9a98dd5f62acb6d6b50391 (diff)
[PATCH] Fix incorrect Asus k7m irq router detection
This patch: http://marc.theaimsgroup.com/?l=bk-commits-head&m=111955644929114&w=2 uncovered a k7m bios bug, where the VT82C686A router is reported as being "586-compatible". The two chips have different pirq mapping, so this leads to "irq routing conflict" on many pci devices. The suggested fix was discussed with Aleksey Gorelov, who helped me to identify the problem as a probable bios bug. Signed-off-by: Giancarlo Formicuccia <giancarlo.formicuccia@gmail.com> Cc: Dave Jones <davej@codemonkey.org.uk> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/pci/irq.c')
-rw-r--r--arch/i386/pci/irq.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c
index 766b104ac1a1..d291fb7f1357 100644
--- a/arch/i386/pci/irq.c
+++ b/arch/i386/pci/irq.c
@@ -550,6 +550,13 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
550static __init int via_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) 550static __init int via_router_probe(struct irq_router *r, struct pci_dev *router, u16 device)
551{ 551{
552 /* FIXME: We should move some of the quirk fixup stuff here */ 552 /* FIXME: We should move some of the quirk fixup stuff here */
553
554 if (router->device == PCI_DEVICE_ID_VIA_82C686 &&
555 device == PCI_DEVICE_ID_VIA_82C586_0) {
556 /* Asus k7m bios wrongly reports 82C686A as 586-compatible */
557 device = PCI_DEVICE_ID_VIA_82C686;
558 }
559
553 switch(device) 560 switch(device)
554 { 561 {
555 case PCI_DEVICE_ID_VIA_82C586_0: 562 case PCI_DEVICE_ID_VIA_82C586_0: