diff options
author | Shaohua Li <shaohua.li@intel.com> | 2009-07-26 21:24:35 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2009-09-01 19:47:19 -0400 |
commit | 388539f3ff0cf1de926b03f94e1eec112358f74d (patch) | |
tree | 6840b76ede7e27e27eb9aaf516f827beba16c5ad /include/linux | |
parent | 2fc37adba0fb05760b8635c6706773af828ccf3c (diff) |
[libata] add DMA setup FIS auto-activate feature
Hopefully results in fewer on-the-wire FIS's and no breakage. We'll see!
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/ata.h | 4 | ||||
-rw-r--r-- | include/linux/libata.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h index 9c75921f0c16..f5494050df83 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -306,6 +306,7 @@ enum { | |||
306 | /* SETFEATURE Sector counts for SATA features */ | 306 | /* SETFEATURE Sector counts for SATA features */ |
307 | SATA_AN = 0x05, /* Asynchronous Notification */ | 307 | SATA_AN = 0x05, /* Asynchronous Notification */ |
308 | SATA_DIPM = 0x03, /* Device Initiated Power Management */ | 308 | SATA_DIPM = 0x03, /* Device Initiated Power Management */ |
309 | SATA_FPDMA_AA = 0x02, /* DMA Setup FIS Auto-Activate */ | ||
309 | 310 | ||
310 | /* feature values for SET_MAX */ | 311 | /* feature values for SET_MAX */ |
311 | ATA_SET_MAX_ADDR = 0x00, | 312 | ATA_SET_MAX_ADDR = 0x00, |
@@ -525,6 +526,9 @@ static inline int ata_is_data(u8 prot) | |||
525 | #define ata_id_has_atapi_AN(id) \ | 526 | #define ata_id_has_atapi_AN(id) \ |
526 | ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \ | 527 | ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \ |
527 | ((id)[78] & (1 << 5)) ) | 528 | ((id)[78] & (1 << 5)) ) |
529 | #define ata_id_has_fpdma_aa(id) \ | ||
530 | ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \ | ||
531 | ((id)[78] & (1 << 2)) ) | ||
528 | #define ata_id_iordy_disable(id) ((id)[ATA_ID_CAPABILITY] & (1 << 10)) | 532 | #define ata_id_iordy_disable(id) ((id)[ATA_ID_CAPABILITY] & (1 << 10)) |
529 | #define ata_id_has_iordy(id) ((id)[ATA_ID_CAPABILITY] & (1 << 11)) | 533 | #define ata_id_has_iordy(id) ((id)[ATA_ID_CAPABILITY] & (1 << 11)) |
530 | #define ata_id_u32(id,n) \ | 534 | #define ata_id_u32(id,n) \ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index e5b6e33c6571..d3f7cab4873e 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -190,6 +190,7 @@ enum { | |||
190 | ATA_FLAG_NO_POWEROFF_SPINDOWN = (1 << 11), /* don't spindown before poweroff */ | 190 | ATA_FLAG_NO_POWEROFF_SPINDOWN = (1 << 11), /* don't spindown before poweroff */ |
191 | ATA_FLAG_NO_HIBERNATE_SPINDOWN = (1 << 12), /* don't spindown before hibernation */ | 191 | ATA_FLAG_NO_HIBERNATE_SPINDOWN = (1 << 12), /* don't spindown before hibernation */ |
192 | ATA_FLAG_DEBUGMSG = (1 << 13), | 192 | ATA_FLAG_DEBUGMSG = (1 << 13), |
193 | ATA_FLAG_FPDMA_AA = (1 << 14), /* driver supports Auto-Activate */ | ||
193 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ | 194 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ |
194 | ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ | 195 | ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ |
195 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ | 196 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ |
@@ -386,6 +387,7 @@ enum { | |||
386 | ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firmware update warning */ | 387 | ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firmware update warning */ |
387 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ | 388 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ |
388 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ | 389 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ |
390 | ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ | ||
389 | 391 | ||
390 | /* DMA mask for user DMA control: User visible values; DO NOT | 392 | /* DMA mask for user DMA control: User visible values; DO NOT |
391 | renumber */ | 393 | renumber */ |