]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/libata.h
Merge branch 'bpf-fixes'
[karo-tx-linux.git] / include / linux / libata.h
index c0806b60c4fa0f4273116db2e0242497f675c6b2..d15c19e331d1273036ddf436e8de3e7bd7c6a3e9 100644 (file)
@@ -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 */
@@ -729,6 +730,13 @@ struct ata_device {
 
        /* NCQ send and receive log subcommand support */
        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;
@@ -1658,6 +1666,12 @@ static inline bool ata_fpdma_zac_mgmt_in_supported(struct ata_device *dev)
                ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED);
 }
 
+static inline bool ata_fpdma_zac_mgmt_out_supported(struct ata_device *dev)
+{
+       return (dev->ncq_non_data_cmds[ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET] &
+               ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT);
+}
+
 static inline void ata_qc_set_polling(struct ata_queued_cmd *qc)
 {
        qc->tf.ctl |= ATA_NIEN;