|
@@ -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;
|
|
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);
|
|
u8 ide_dump_status(ide_drive_t *, const char *, u8);
|
|
|
|
|
|
typedef struct ide_pio_timings_s {
|
|
typedef struct ide_pio_timings_s {
|