Re: [PATCH v3 15/18] ata: libata: add ATA feature control sub-page translation

Hannes Reinecke
2023-01-27T15:40:19Z

On 1/24/23 20:03, Niklas Cassel wrote:
> From: Damien Le Moal <damien.lemoal@opensource.wdc.com>
>
> Add support for the ATA feature control sub-page of the control mode
> page to enable/disable the command duration limits feature using the
> cdl_ctrl field of the ATA feature control sub-page.
>
> Both mode sense and mode select translation are supported. For mode
> sense, the ata device flag ATA_DFLAG_CDL_ENABLED is used to cache the
> status of the command duration limits feature. Enabling this feature is
> done using a SET FEATURES command with a cdl action set to 1 when the
> page cdl_ctrl field value is 0x2 (T2A and T2B pages supported). If this
> field is 0, CDL is disabled using the SET FEATURES command with a cdl
> action set to 0.
>
> Since a device CDL and NCQ priority features should not be used
> simultaneously, ata_mselect_control_ata_feature() returns an error when
> attempting to enable CDL with the device priority feature enabled.
> Conversely, the function ata_ncq_prio_enable_store() used to enable the
> use of the device NCQ priority feature through sysfs is modified to
> return an error if the device CDL feature is enabled.
>
> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
> Co-developed-by: Niklas Cassel <niklas.cassel@wdc.com>
> Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
> ---
> drivers/ata/libata-core.c | 40 ++++++++-
> drivers/ata/libata-sata.c | 11 ++-
> drivers/ata/libata-scsi.c | 167 ++++++++++++++++++++++++++++++++------
> include/linux/ata.h | 3 +
> include/linux/libata.h | 1 +
> 5 files changed, 193 insertions(+), 29 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes