diff options
Diffstat (limited to 'arch/i386/pci/fixup.c')
-rw-r--r-- | arch/i386/pci/fixup.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/i386/pci/fixup.c b/arch/i386/pci/fixup.c index b95b42950ed4..e7306dbf6c42 100644 --- a/arch/i386/pci/fixup.c +++ b/arch/i386/pci/fixup.c | |||
@@ -118,12 +118,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, pci | |||
118 | static void pci_fixup_via_northbridge_bug(struct pci_dev *d) | 118 | static void pci_fixup_via_northbridge_bug(struct pci_dev *d) |
119 | { | 119 | { |
120 | u8 v; | 120 | u8 v; |
121 | u8 revision; | ||
122 | int where = 0x55; | 121 | int where = 0x55; |
123 | int mask = 0x1f; /* clear bits 5, 6, 7 by default */ | 122 | int mask = 0x1f; /* clear bits 5, 6, 7 by default */ |
124 | 123 | ||
125 | pci_read_config_byte(d, PCI_REVISION_ID, &revision); | ||
126 | |||
127 | if (d->device == PCI_DEVICE_ID_VIA_8367_0) { | 124 | if (d->device == PCI_DEVICE_ID_VIA_8367_0) { |
128 | /* fix pci bus latency issues resulted by NB bios error | 125 | /* fix pci bus latency issues resulted by NB bios error |
129 | it appears on bug free^Wreduced kt266x's bios forces | 126 | it appears on bug free^Wreduced kt266x's bios forces |
@@ -133,8 +130,8 @@ static void pci_fixup_via_northbridge_bug(struct pci_dev *d) | |||
133 | where = 0x95; /* the memory write queue timer register is | 130 | where = 0x95; /* the memory write queue timer register is |
134 | different for the KT266x's: 0x95 not 0x55 */ | 131 | different for the KT266x's: 0x95 not 0x55 */ |
135 | } else if (d->device == PCI_DEVICE_ID_VIA_8363_0 && | 132 | } else if (d->device == PCI_DEVICE_ID_VIA_8363_0 && |
136 | (revision == VIA_8363_KL133_REVISION_ID || | 133 | (d->revision == VIA_8363_KL133_REVISION_ID || |
137 | revision == VIA_8363_KM133_REVISION_ID)) { | 134 | d->revision == VIA_8363_KM133_REVISION_ID)) { |
138 | mask = 0x3f; /* clear only bits 6 and 7; clearing bit 5 | 135 | mask = 0x3f; /* clear only bits 6 and 7; clearing bit 5 |
139 | causes screen corruption on the KL133/KM133 */ | 136 | causes screen corruption on the KL133/KM133 */ |
140 | } | 137 | } |
@@ -142,7 +139,7 @@ static void pci_fixup_via_northbridge_bug(struct pci_dev *d) | |||
142 | pci_read_config_byte(d, where, &v); | 139 | pci_read_config_byte(d, where, &v); |
143 | if (v & ~mask) { | 140 | if (v & ~mask) { |
144 | printk(KERN_WARNING "Disabling VIA memory write queue (PCI ID %04x, rev %02x): [%02x] %02x & %02x -> %02x\n", \ | 141 | printk(KERN_WARNING "Disabling VIA memory write queue (PCI ID %04x, rev %02x): [%02x] %02x & %02x -> %02x\n", \ |
145 | d->device, revision, where, v, mask, v & mask); | 142 | d->device, d->revision, where, v, mask, v & mask); |
146 | v &= mask; | 143 | v &= mask; |
147 | pci_write_config_byte(d, where, v); | 144 | pci_write_config_byte(d, where, v); |
148 | } | 145 | } |