diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2007-07-31 09:01:48 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-10-12 14:55:32 -0400 |
commit | 0bc2a79a2002e3cc1b514c100b6c576983da6a90 (patch) | |
tree | 7669cfe54f3cf5125be440c5c9e84d29cec27294 /include/linux/ata.h | |
parent | e3667ebf857ba744b5211c90d46f6a17dd9a2479 (diff) |
libata: Correct IORDY handling
Debugging a report of a problem with an ancient solid state disk showed
up some problems in the IORDY handling
1. We check the wrong bit to see if the device has IORDY
2. Even then some ancient creaking piles of crap don't support
SETXFER at all.
The cases it fixes are obscure and the risk of side effects is slight
but possible. This also moves us slightly closer to supporting original
MFM/RLL disks with libata.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include/linux/ata.h')
-rw-r--r-- | include/linux/ata.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h index c043c1ccf1c5..40c7af05fdb9 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -358,7 +358,7 @@ struct ata_taskfile { | |||
358 | #define ata_id_removeable(id) ((id)[0] & (1 << 7)) | 358 | #define ata_id_removeable(id) ((id)[0] & (1 << 7)) |
359 | #define ata_id_has_dword_io(id) ((id)[50] & (1 << 0)) | 359 | #define ata_id_has_dword_io(id) ((id)[50] & (1 << 0)) |
360 | #define ata_id_iordy_disable(id) ((id)[49] & (1 << 10)) | 360 | #define ata_id_iordy_disable(id) ((id)[49] & (1 << 10)) |
361 | #define ata_id_has_iordy(id) ((id)[49] & (1 << 9)) | 361 | #define ata_id_has_iordy(id) ((id)[49] & (1 << 11)) |
362 | #define ata_id_u32(id,n) \ | 362 | #define ata_id_u32(id,n) \ |
363 | (((u32) (id)[(n) + 1] << 16) | ((u32) (id)[(n)])) | 363 | (((u32) (id)[(n) + 1] << 16) | ((u32) (id)[(n)])) |
364 | #define ata_id_u64(id,n) \ | 364 | #define ata_id_u64(id,n) \ |