summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2016-04-25 12:45:56 +0200
committerTejun Heo <tj@kernel.org>2016-05-09 18:36:46 +0200
commit6d1003ae8db228b74ef61536364cd2a1bd973dd8 (patch)
treeac38f95df02f9ee1ebce2d0ade2e2928267fd2e3 /include
parentlibata: support device-managed ZAC devices (diff)
downloadlinux-6d1003ae8db228b74ef61536364cd2a1bd973dd8.tar.xz
linux-6d1003ae8db228b74ef61536364cd2a1bd973dd8.zip
libata: support host-aware and host-managed ZAC devices
Byte 69 bits 0:1 in the IDENTIFY DEVICE data indicate a host-aware ZAC device. Host-managed ZAC devices have their own individual signature, and to not set the bits in the IDENTIFY DEVICE data. And whenever we detect a ZAC-compatible device we should be displaying the zoned block characteristics VPD page. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ata.h1
-rw-r--r--include/linux/libata.h7
2 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h
index ac1cb9310dea..83e2a99866c2 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -338,6 +338,7 @@ enum {
ATA_LOG_NCQ_SEND_RECV = 0x13,
ATA_LOG_SATA_ID_DEV_DATA = 0x30,
ATA_LOG_SATA_SETTINGS = 0x08,
+ ATA_LOG_ZONED_INFORMATION = 0x09,
ATA_LOG_DEVSLP_OFFSET = 0x30,
ATA_LOG_DEVSLP_SIZE = 0x08,
ATA_LOG_DEVSLP_MDAT = 0x00,
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 0019d4b51b11..d15c19e331d1 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -181,6 +181,7 @@ enum {
ATA_DFLAG_DEVSLP = (1 << 27), /* device supports Device Sleep */
ATA_DFLAG_ACPI_DISABLED = (1 << 28), /* ACPI for the device is disabled */
ATA_DFLAG_D_SENSE = (1 << 29), /* Descriptor sense requested */
+ ATA_DFLAG_ZAC = (1 << 30), /* ZAC device */
ATA_DEV_UNKNOWN = 0, /* unknown device */
ATA_DEV_ATA = 1, /* ATA device */
@@ -731,6 +732,12 @@ struct ata_device {
u8 ncq_send_recv_cmds[ATA_LOG_NCQ_SEND_RECV_SIZE];
u8 ncq_non_data_cmds[ATA_LOG_NCQ_NON_DATA_SIZE];
+ /* ZAC zone configuration */
+ u32 zac_zoned_cap;
+ u32 zac_zones_optimal_open;
+ u32 zac_zones_optimal_nonseq;
+ u32 zac_zones_max_open;
+
/* error history */
int spdn_cnt;
/* ering is CLEAR_END, read comment above CLEAR_END */