Re: [2.6.13-rc3-git4] VIA686A polymorphs into VIA586!

From: Giancarlo Formicuccia
Date: Mon Jul 25 2005 - 14:54:33 EST


Aleksey Gorelov wrote:
> Be irq routing table definition, rtr_vendor:rtr_device should contain
> COMPATIBLE pci Interrupt Router, and rtr_bus & rtr_devfn - location of
> the actual device (pirq_router_dev). So,
> 1. Apparently, there is a bug in the BIOS - 586 & 686 are not compatible
> (different mapping)

Most likely. Unfortunately, this is the last released BIOS for this old board AFAIK.

> 2. Does anybody know why compatible device is probed first, and actual
> one afterwards ? In other words, is swapping probes in the code above
> would give more correct behavior ?
>

This of course would fix my issue too...

> >This patch brings my board back to the correct behaviour
> >[Aleksey Gorelov CC'd for review/comments/suggestions]:
> >
> >--- linux-2.6.13-git4/arch/i386/pci/irq.c.org 2005-07-23
> >11:15:12.000000000 +0200
> >+++ linux-2.6.13-git4/arch/i386/pci/irq.c 2005-07-23
> >11:55:50.000000000 +0200
> >@@ -553,10 +553,12 @@
> > switch(device)
> > {
> > case PCI_DEVICE_ID_VIA_82C586_0:
> >- r->name = "VIA";
> >- r->get = pirq_via586_get;
> >- r->set = pirq_via586_set;
> >- return 1;
> >+ if (router->device==PCI_DEVICE_ID_VIA_82C586_0) {
> >+ r->name = "VIA";
> >+ r->get = pirq_via586_get;
> >+ r->set = pirq_via586_set;
> >+ return 1;
> >+ }
> > case PCI_DEVICE_ID_VIA_82C596:
> > case PCI_DEVICE_ID_VIA_82C686:
> > case PCI_DEVICE_ID_VIA_8231:
>
> Probably, comments on buggy BIOS would be nice here..
>
> Aleks.
>

Thanks,

Giancarlo
-
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/