summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-09-11 14:47:23 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-09-11 14:47:23 -0700
commit6e21ce9d816b9ecc2349ad652fee9c6f28c43877 (patch)
treea598c00d6f9615e99673d348de93b3d31adf4911 /include
parent01a6a7790e8e466584fc845f3cfc1770ffa1fee5 (diff)
parent56fe23d5a702a39ee3bb29a04b55db292479d07a (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6: pdc202xx_new: PLL detection fix via82cxxx: add Arima W730-K8 and other rebadgings to short cables list pmac: build fix pata_ali/alim15x3: override 80-wire cable detection for Toshiba S1800-814 hpt366: UltraDMA filter for SATA cards (take 2) ide: add ide_dev_is_sata() helper (take 2) hpt366: fix PCI clock detection for HPT374 (take 4) pdc202xx_new: fix PCI refcounting ide: fix PCI refcounting mpc8xx: Only build mpc8xx on arch/ppc
Diffstat (limited to 'include')
-rw-r--r--include/linux/ide.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index c792b4fd1588..b9f66c10caa0 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1378,6 +1378,19 @@ static inline int ide_dev_has_iordy(struct hd_driveid *id)
return ((id->field_valid & 2) && (id->capability & 8)) ? 1 : 0;
}
+static inline int ide_dev_is_sata(struct hd_driveid *id)
+{
+ /*
+ * See if word 93 is 0 AND drive is at least ATA-5 compatible
+ * verifying that word 80 by casting it to a signed type --
+ * this trick allows us to filter out the reserved values of
+ * 0x0000 and 0xffff along with the earlier ATA revisions...
+ */
+ if (id->hw_config == 0 && (short)id->major_rev_num >= 0x0020)
+ return 1;
+ return 0;
+}
+
u8 ide_dump_status(ide_drive_t *, const char *, u8);
typedef struct ide_pio_timings_s {