Re: [PATCH 2/3] WIN_* -> ATA_CMD_* conversion: update WIN_* users to use ATA_CMD_*

From: Ross Biro
Date: Fri Nov 05 2004 - 22:46:59 EST


On Fri, 5 Nov 2004 19:23:14 -0800, Chris Wedgwood <cw@xxxxxxxx> wrote:
> @@ -434,7 +434,7 @@
> try_to_flush_leftover_data(drive);
> if (hwif->INB(IDE_STATUS_REG) & (BUSY_STAT|DRQ_STAT)) {
> /* force an abort */
> - hwif->OUTB(WIN_IDLEIMMEDIATE,IDE_COMMAND_REG);
> + hwif->OUTB(ATA_CMD_IDLEIMMEDIATE,IDE_COMMAND_REG);
> }
> if (rq->errors >= ERROR_MAX || blk_noretry_request(rq))
> DRIVER(drive)->end_request(drive, 0, 0);

Just a reminder, this error recovery doesn't work on many modern hard
drives, and is a violation of all ATA specs after ATA-2*. In
particular, most Maxtor and Western Digital Drives will not recover
from errors with this command sequence. The preferred error recovery
is to do a reset followed by a set features, because that is what
Windows does (as told to me by a drive vendor). I've tested the
reset/set features method of error recovery and it works on all the
drives I've tried. I have not tried it on any older drives, or any
other types of ATAPI devices.

Ross

*Most drives set the ATA-2 support flag, so technically they are in
violation of the ATA spec if they don't support this error recovery,
but the drive vendors don't care, they just make sure it works with
windows.
-
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/