summaryrefslogtreecommitdiff
path: root/include/linux/ata.h
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-02-05 14:21:19 (GMT)
committerJeff Garzik <jeff@garzik.org>2007-02-15 23:04:01 (GMT)
commit61f216c7196e15e56d97c5a75af01e6684f17fa3 (patch)
tree20a5c677c6ed74d4518a8da399f71d2f3bd5bc8b /include/linux/ata.h
parent5387373bfe78b7795b96378250f6848f39d78b80 (diff)
downloadlinux-fsl-qoriq-61f216c7196e15e56d97c5a75af01e6684f17fa3.tar.xz
libata: fix drive side 80c cable check, take 3
The 80c wire bit is bit 13, not 14. Bit 14 is always 1 if word93 is implemented. This increases the chance of incorrect wire detection especially because host side cable detection is often unreliable and we sometimes soley depend on drive side cable detection. Fix the test and add word93 validity check. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include/linux/ata.h')
-rw-r--r--include/linux/ata.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 18e401f..272736e 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -352,7 +352,7 @@ static inline int ata_drive_40wire(const u16 *dev_id)
{
if (ata_id_major_version(dev_id) >= 5 && ata_id_is_sata(dev_id))
return 0; /* SATA */
- if (dev_id[93] & 0x4000)
+ if ((dev_id[93] & 0xE000) == 0x6000)
return 0; /* 80 wire */
return 1;
}