aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/libata.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r--include/linux/libata.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index bca3ba25f52a..dc18b87ed722 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -275,7 +275,7 @@ enum {
275 * advised to wait only for the following duration before 275 * advised to wait only for the following duration before
276 * doing SRST. 276 * doing SRST.
277 */ 277 */
278 ATA_TMOUT_PMP_SRST_WAIT = 1000, 278 ATA_TMOUT_PMP_SRST_WAIT = 5000,
279 279
280 /* ATA bus states */ 280 /* ATA bus states */
281 BUS_UNKNOWN = 0, 281 BUS_UNKNOWN = 0,
@@ -380,6 +380,7 @@ enum {
380 ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands 380 ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands
381 not multiple of 16 bytes */ 381 not multiple of 16 bytes */
382 ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firwmare update warning */ 382 ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firwmare update warning */
383 ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */
383 384
384 /* DMA mask for user DMA control: User visible values; DO NOT 385 /* DMA mask for user DMA control: User visible values; DO NOT
385 renumber */ 386 renumber */
@@ -529,6 +530,7 @@ struct ata_queued_cmd {
529 unsigned long flags; /* ATA_QCFLAG_xxx */ 530 unsigned long flags; /* ATA_QCFLAG_xxx */
530 unsigned int tag; 531 unsigned int tag;
531 unsigned int n_elem; 532 unsigned int n_elem;
533 unsigned int orig_n_elem;
532 534
533 int dma_dir; 535 int dma_dir;
534 536
@@ -580,7 +582,7 @@ struct ata_device {
580 acpi_handle acpi_handle; 582 acpi_handle acpi_handle;
581 union acpi_object *gtf_cache; 583 union acpi_object *gtf_cache;
582#endif 584#endif
583 /* n_sector is used as CLEAR_OFFSET, read comment above CLEAR_OFFSET */ 585 /* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */
584 u64 n_sectors; /* size of device, if ATA */ 586 u64 n_sectors; /* size of device, if ATA */
585 unsigned int class; /* ATA_DEV_xxx */ 587 unsigned int class; /* ATA_DEV_xxx */
586 unsigned long unpark_deadline; 588 unsigned long unpark_deadline;
@@ -605,20 +607,22 @@ struct ata_device {
605 u16 heads; /* Number of heads */ 607 u16 heads; /* Number of heads */
606 u16 sectors; /* Number of sectors per track */ 608 u16 sectors; /* Number of sectors per track */
607 609
608 /* error history */
609 int spdn_cnt;
610 struct ata_ering ering;
611
612 union { 610 union {
613 u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */ 611 u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
614 u32 gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */ 612 u32 gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */
615 }; 613 };
614
615 /* error history */
616 int spdn_cnt;
617 /* ering is CLEAR_END, read comment above CLEAR_END */
618 struct ata_ering ering;
616}; 619};
617 620
618/* Offset into struct ata_device. Fields above it are maintained 621/* Fields between ATA_DEVICE_CLEAR_BEGIN and ATA_DEVICE_CLEAR_END are
619 * acress device init. Fields below are zeroed. 622 * cleared to zero on ata_dev_init().
620 */ 623 */
621#define ATA_DEVICE_CLEAR_OFFSET offsetof(struct ata_device, n_sectors) 624#define ATA_DEVICE_CLEAR_BEGIN offsetof(struct ata_device, n_sectors)
625#define ATA_DEVICE_CLEAR_END offsetof(struct ata_device, ering)
622 626
623struct ata_eh_info { 627struct ata_eh_info {
624 struct ata_device *dev; /* offending device */ 628 struct ata_device *dev; /* offending device */
@@ -747,7 +751,8 @@ struct ata_port {
747 acpi_handle acpi_handle; 751 acpi_handle acpi_handle;
748 struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ 752 struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
749#endif 753#endif
750 u8 sector_buf[ATA_SECT_SIZE]; /* owned by EH */ 754 /* owned by EH */
755 u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
751}; 756};
752 757
753/* The following initializer overrides a method to NULL whether one of 758/* The following initializer overrides a method to NULL whether one of