aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2004-08-13 23:39:52 -0400
committerJeff Garzik <jgarzik@pobox.com>2004-08-13 23:39:52 -0400
commitc79dd2877a045f479a9e9a4371ab966b6520801c (patch)
tree91c516ed6f8825aa9397370d03f21d122c7bf3c8 /include
parente4babc07a978f0384da961fc1fea72b518614dba (diff)
downloadhistory-c79dd2877a045f479a9e9a4371ab966b6520801c.tar.gz
[libata] support commands SYNCHRONIZE CACHE, VERIFY, VERIFY(16)
Diffstat (limited to 'include')
-rw-r--r--include/linux/ata.h2
-rw-r--r--include/linux/libata.h7
-rw-r--r--include/scsi/scsi.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h
index f5d5ae987711e1..61af2605817541 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -215,6 +215,8 @@ struct ata_taskfile {
#define ata_id_is_ata(dev) (((dev)->id[0] & (1 << 15)) == 0)
#define ata_id_rahead_enabled(dev) ((dev)->id[85] & (1 << 6))
#define ata_id_wcache_enabled(dev) ((dev)->id[85] & (1 << 5))
+#define ata_id_has_flush(dev) ((dev)->id[83] & (1 << 12))
+#define ata_id_has_flush_ext(dev) ((dev)->id[83] & (1 << 13))
#define ata_id_has_lba48(dev) ((dev)->id[83] & (1 << 10))
#define ata_id_has_wcache(dev) ((dev)->id[82] & (1 << 5))
#define ata_id_has_pm(dev) ((dev)->id[82] & (1 << 3))
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 8443cce6971f63..e702e96f7d98f4 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -607,4 +607,11 @@ static inline u8 ata_bmdma_status(struct ata_port *ap)
return host_stat;
}
+static inline int ata_try_flush_cache(struct ata_device *dev)
+{
+ return ata_id_wcache_enabled(dev) ||
+ ata_id_has_flush(dev) ||
+ ata_id_has_flush_ext(dev);
+}
+
#endif /* __LINUX_LIBATA_H__ */
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 1c6d293846f069..23643d45f6320a 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
@@ -108,6 +108,7 @@ extern const char *const scsi_device_types[MAX_SCSI_DEVICE_CODE];
#define WRITE_LONG_2 0xea
#define READ_16 0x88
#define WRITE_16 0x8a
+#define VERIFY_16 0x8f
#define SERVICE_ACTION_IN 0x9e
/* values for service action in */
#define SAI_READ_CAPACITY_16 0x10