[PATCH] ide: Fix ata_id_has_dword_io to return DWORD I/O support properly

Mario Schwalbe
2008-12-18T14:18:54Z

This patch fixes ata_id_has_dword_io to return 1 (supported) if
the drive is compliant to ATA2 or newer and evaluates the config
word for older drives.

Signed-off-by: Mario Schwalbe <schwalbe@inf.tu-dresden.de>
---
include/linux/ata.h | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/linux/ata.h b/include/linux/ata.h
index a53318b..d0d6a9c 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -700,12 +700,12 @@ static inline int ata_id_has_tpm(const u16 *id)

static inline int ata_id_has_dword_io(const u16 *id)
{
- /* ATA 8 reuses this flag for "trusted" computing */
- if (ata_id_major_version(id) > 7)
- return 0;
- if (id[ATA_ID_DWORD_IO] & (1 << 0))
- return 1;
- return 0;
+ /* This flag is defined up to ATA1 and deprecated since then
+ (ATA 8 reuses this flag for "trusted" computing). */
+ if (ata_id_major_version(id) <= 1)
+ return (id[ATA_ID_DWORD_IO] & (1 << 0)) != 0;
+ /* later revision drives support DWORD I/O just fine */
+ return 1;
}

static inline int ata_id_has_unload(const u16 *id)
--
1.5.6.3