|
@@ -139,25 +139,22 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82439TX, quir
|
|
static void quirk_vialatency(struct pci_dev *dev)
|
|
static void quirk_vialatency(struct pci_dev *dev)
|
|
{
|
|
{
|
|
struct pci_dev *p;
|
|
struct pci_dev *p;
|
|
- u8 rev;
|
|
|
|
u8 busarb;
|
|
u8 busarb;
|
|
/* Ok we have a potential problem chipset here. Now see if we have
|
|
/* Ok we have a potential problem chipset here. Now see if we have
|
|
a buggy southbridge */
|
|
a buggy southbridge */
|
|
|
|
|
|
p = pci_get_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, NULL);
|
|
p = pci_get_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, NULL);
|
|
if (p!=NULL) {
|
|
if (p!=NULL) {
|
|
- pci_read_config_byte(p, PCI_CLASS_REVISION, &rev);
|
|
|
|
/* 0x40 - 0x4f == 686B, 0x10 - 0x2f == 686A; thanks Dan Hollis */
|
|
/* 0x40 - 0x4f == 686B, 0x10 - 0x2f == 686A; thanks Dan Hollis */
|
|
/* Check for buggy part revisions */
|
|
/* Check for buggy part revisions */
|
|
- if (rev < 0x40 || rev > 0x42)
|
|
|
|
|
|
+ if (p->revision < 0x40 || p->revision > 0x42)
|
|
goto exit;
|
|
goto exit;
|
|
} else {
|
|
} else {
|
|
p = pci_get_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231, NULL);
|
|
p = pci_get_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231, NULL);
|
|
if (p==NULL) /* No problem parts */
|
|
if (p==NULL) /* No problem parts */
|
|
goto exit;
|
|
goto exit;
|
|
- pci_read_config_byte(p, PCI_CLASS_REVISION, &rev);
|
|
|
|
/* Check for buggy part revisions */
|
|
/* Check for buggy part revisions */
|
|
- if (rev < 0x10 || rev > 0x12)
|
|
|
|
|
|
+ if (p->revision < 0x10 || p->revision > 0x12)
|
|
goto exit;
|
|
goto exit;
|
|
}
|
|
}
|
|
|
|
|