]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/ata.h
libata: set queue SSD flag for SSD devices
[linux-2.6-omap-h63xx.git] / include / linux / ata.h
index 1ce19c1ef0e93cbcfcaded43c8a95489ad9d271a..c1c8b4a4ba26d02ba72dea781cae492a8d4a436d 100644 (file)
@@ -88,6 +88,7 @@ enum {
        ATA_ID_DLF              = 128,
        ATA_ID_CSFO             = 129,
        ATA_ID_CFA_POWER        = 160,
+       ATA_ID_ROT_SPEED        = 217,
        ATA_ID_PIO4             = (1 << 1),
 
        ATA_ID_SERNO_LEN        = 20,
@@ -691,6 +692,11 @@ static inline int ata_id_is_cfa(const u16 *id)
        return 0;
 }
 
+static inline int ata_id_is_ssd(const u16 *id)
+{
+       return id[ATA_ID_ROT_SPEED] == 0x01;
+}
+
 static inline int ata_drive_40wire(const u16 *dev_id)
 {
        if (ata_id_is_sata(dev_id))
@@ -745,7 +751,7 @@ static inline int ata_ok(u8 status)
 static inline int lba_28_ok(u64 block, u32 n_block)
 {
        /* check the ending block number */
-       return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256);
+       return ((block + n_block) < ((u64)1 << 28)) && (n_block <= 256);
 }
 
 static inline int lba_48_ok(u64 block, u32 n_block)