]> err.no Git - linux-2.6/blobdiff - include/linux/ata.h
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6] / include / linux / ata.h
index 03fff6239b3c86bbe646bd4d723cfc48e2c93869..1ce19c1ef0e93cbcfcaded43c8a95489ad9d271a 100644 (file)
@@ -153,13 +153,26 @@ enum {
        ATA_BUSY                = (1 << 7),     /* BSY status bit */
        ATA_DRDY                = (1 << 6),     /* device ready */
        ATA_DF                  = (1 << 5),     /* device fault */
+       ATA_DSC                 = (1 << 4),     /* drive seek complete */
        ATA_DRQ                 = (1 << 3),     /* data request i/o */
+       ATA_CORR                = (1 << 2),     /* corrected data error */
+       ATA_IDX                 = (1 << 1),     /* index */
        ATA_ERR                 = (1 << 0),     /* have an error */
        ATA_SRST                = (1 << 2),     /* software reset */
        ATA_ICRC                = (1 << 7),     /* interface CRC error */
+       ATA_BBK                 = ATA_ICRC,     /* pre-EIDE: block marked bad */
        ATA_UNC                 = (1 << 6),     /* uncorrectable media error */
+       ATA_MC                  = (1 << 5),     /* media changed */
        ATA_IDNF                = (1 << 4),     /* ID not found */
+       ATA_MCR                 = (1 << 3),     /* media change requested */
        ATA_ABORTED             = (1 << 2),     /* command aborted */
+       ATA_TRK0NF              = (1 << 1),     /* track 0 not found */
+       ATA_AMNF                = (1 << 0),     /* address mark not found */
+       ATAPI_LFS               = 0xF0,         /* last failed sense */
+       ATAPI_EOM               = ATA_TRK0NF,   /* end of media */
+       ATAPI_ILI               = ATA_AMNF,     /* illegal length indication */
+       ATAPI_IO                = (1 << 1),
+       ATAPI_COD               = (1 << 0),
 
        /* ATA command block registers */
        ATA_REG_DATA            = 0x00,
@@ -222,6 +235,13 @@ enum {
        ATA_CMD_PMP_WRITE       = 0xE8,
        ATA_CMD_CONF_OVERLAY    = 0xB1,
        ATA_CMD_SEC_FREEZE_LOCK = 0xF5,
+       ATA_CMD_SMART           = 0xB0,
+       ATA_CMD_MEDIA_LOCK      = 0xDE,
+       ATA_CMD_MEDIA_UNLOCK    = 0xDF,
+       /* marked obsolete in the ATA/ATAPI-7 spec */
+       ATA_CMD_RESTORE         = 0x10,
+       /* EXABYTE specific */
+       ATA_EXABYTE_ENABLE_NEST = 0xF0,
 
        /* READ_LOG_EXT pages */
        ATA_LOG_SATA_NCQ        = 0x10,
@@ -262,6 +282,10 @@ enum {
        SETFEATURES_WC_ON       = 0x02, /* Enable write cache */
        SETFEATURES_WC_OFF      = 0x82, /* Disable write cache */
 
+       /* Enable/Disable Automatic Acoustic Management */
+       SETFEATURES_AAM_ON      = 0x42,
+       SETFEATURES_AAM_OFF     = 0xC2,
+
        SETFEATURES_SPINUP      = 0x07, /* Spin-up drive */
 
        SETFEATURES_SATA_ENABLE = 0x10, /* Enable use of SATA feature */
@@ -284,6 +308,15 @@ enum {
        ATA_DCO_IDENTIFY        = 0xC2,
        ATA_DCO_SET             = 0xC3,
 
+       /* feature values for SMART */
+       ATA_SMART_ENABLE        = 0xD8,
+       ATA_SMART_READ_VALUES   = 0xD0,
+       ATA_SMART_READ_THRESHOLDS = 0xD1,
+
+       /* password used in LBA Mid / LBA High for executing SMART commands */
+       ATA_SMART_LBAM_PASS     = 0x4F,
+       ATA_SMART_LBAH_PASS     = 0xC2,
+
        /* ATAPI stuff */
        ATAPI_PKT_DMA           = (1 << 0),
        ATAPI_DMADIR            = (1 << 2),     /* ATAPI data dir: