* [PATCH] 2.4.21 - IDE driver VIA support (obscure bug)
@ 2003-07-20 21:42 jiho
0 siblings, 0 replies; only message in thread
From: jiho @ 2003-07-20 21:42 UTC (permalink / raw)
To: linux-kernel; +Cc: marcelo, alan, B.Zolnierkiewicz, vojtech
(Apoligies if line-wrapping is nuts, I've been confined to Mozilla....)
This patch fixes a *very* obscure bug, which only applies to VIA chipsets that
support UDMA-133 mode, and which is only known to be tickled by one UDMA-66 hard
drive (Maxtor 91360U4) that happens to report 80-wire cable detection opposite to
the ATA standard.
The bug appears in a test to see how the BIOS set up UDMA timing. This test is
only reached when the drive says 80-wire *and* the chipset says 40-wire (which is
only known to happen with this drive).
The timing bits that are checked represent clocks T minus 2, i.e., ((N - 2) * T).
But Vojtech forgot to subtract 2, and applied N = 8 rather than N = 6 in the
test. Since the test masks the bits at 7, they are always less than 8, and the
test always succeeds, even though the BIOS set UDMA-33.
--- drivers/ide/pci/via82cxxx.c-orig Fri Jun 13 07:51:33 2003
+++ drivers/ide/pci/via82cxxx.c Sun Jul 20 11:38:42 2003
@@ -484,7 +484,7 @@
for (i = 24; i >= 0; i -= 8)
if (((u >> i) & 0x10) ||
(((u >> i) & 0x20) &&
- (((u >> i) & 7) < 8))) {
+ (((u >> i) & 7) < 6))) {
/* BIOS 80-wire bit or
* UDMA w/ < 60ns/cycle
*/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-07-20 21:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-20 21:42 [PATCH] 2.4.21 - IDE driver VIA support (obscure bug) jiho
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.