linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Damien Le Moal <damien.lemoal@wdc.com>
To: Jens Axboe <axboe@kernel.dk>, linux-ide@vger.kernel.org
Cc: linux-block@vger.kernel.org
Subject: [PATCH v7 08/11] libata: print feature list on device scan
Date: Mon, 16 Aug 2021 10:44:53 +0900	[thread overview]
Message-ID: <20210816014456.2191776-9-damien.lemoal@wdc.com> (raw)
In-Reply-To: <20210816014456.2191776-1-damien.lemoal@wdc.com>

Print a list of features supported by a drive when it is configured in
ata_dev_configure() using the new function ata_dev_print_features().
The features printed are not already advertized and are: trusted
send-recev support, device attention support, device sleep support,
NCQ send-recv support and NCQ priority support.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
---
 drivers/ata/libata-core.c | 17 +++++++++++++++++
 include/linux/libata.h    |  4 ++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index bad577dbbc0d..68a55d3e977a 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2433,6 +2433,20 @@ static void ata_dev_config_devslp(struct ata_device *dev)
 	}
 }
 
+static void ata_dev_print_features(struct ata_device *dev)
+{
+	if (!(dev->flags & ATA_DFLAG_FEATURES_MASK))
+		return;
+
+	ata_dev_info(dev,
+		     "Features:%s%s%s%s%s\n",
+		     dev->flags & ATA_DFLAG_TRUSTED ? " Trust" : "",
+		     dev->flags & ATA_DFLAG_DA ? " Dev-Attention" : "",
+		     dev->flags & ATA_DFLAG_DEVSLP ? " Dev-Sleep" : "",
+		     dev->flags & ATA_DFLAG_NCQ_SEND_RECV ? " NCQ-sndrcv" : "",
+		     dev->flags & ATA_DFLAG_NCQ_PRIO ? " NCQ-prio" : "");
+}
+
 /**
  *	ata_dev_configure - Configure the specified ATA/ATAPI device
  *	@dev: Target device to configure
@@ -2595,6 +2609,9 @@ int ata_dev_configure(struct ata_device *dev)
 		ata_dev_config_zac(dev);
 		ata_dev_config_trusted(dev);
 		dev->cdb_len = 32;
+
+		if (ata_msg_drv(ap) && print_info)
+			ata_dev_print_features(dev);
 	}
 
 	/* ATAPI-specific feature tests */
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 3fcd24236793..b23f28cfc8e0 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -161,6 +161,10 @@ enum {
 	ATA_DFLAG_D_SENSE	= (1 << 29), /* Descriptor sense requested */
 	ATA_DFLAG_ZAC		= (1 << 30), /* ZAC device */
 
+	ATA_DFLAG_FEATURES_MASK	= ATA_DFLAG_TRUSTED | ATA_DFLAG_DA | \
+				  ATA_DFLAG_DEVSLP | ATA_DFLAG_NCQ_SEND_RECV | \
+				  ATA_DFLAG_NCQ_PRIO,
+
 	ATA_DEV_UNKNOWN		= 0,	/* unknown device */
 	ATA_DEV_ATA		= 1,	/* ATA device */
 	ATA_DEV_ATA_UNSUP	= 2,	/* ATA device (unsupported) */
-- 
2.31.1


  parent reply	other threads:[~2021-08-16  1:45 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-16  1:44 [PATCH v7 00/11] libata cleanups and improvements Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 01/11] libata: fix ata_host_alloc_pinfo() Damien Le Moal
2021-08-16  5:53   ` Hannes Reinecke
2021-08-16 11:29   ` James Bottomley
2021-08-16 11:43     ` Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 02/11] libata: fix ata_host_start() Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 03/11] libata: simplify ata_scsi_rbuf_fill() Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 04/11] libata: cleanup device sleep capability detection Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 05/11] libata: cleanup ata_dev_configure() Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 06/11] libata: cleanup NCQ priority handling Damien Le Moal
2021-08-16  1:44 ` [PATCH v7 07/11] libata: fix ata_read_log_page() warning Damien Le Moal
2021-08-16  1:44 ` Damien Le Moal [this message]
2021-08-16  1:44 ` [PATCH v7 09/11] libata: Introduce ncq_prio_supported sysfs sttribute Damien Le Moal
2021-08-16  5:54   ` Hannes Reinecke
2021-08-16  1:44 ` [PATCH v7 10/11] docs: sysfs-block-device: improve ncq_prio_enable documentation Damien Le Moal
2021-08-16  5:54   ` Hannes Reinecke
2021-08-16  1:44 ` [PATCH v7 11/11] docs: sysfs-block-device: document ncq_prio_supported Damien Le Moal
2021-08-16  5:55   ` Hannes Reinecke
2021-08-18  9:54 ` [PATCH v7 00/11] libata cleanups and improvements Damien Le Moal
2021-08-18 13:20 ` Jens Axboe
2021-08-18 21:53   ` Damien Le Moal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210816014456.2191776-9-damien.lemoal@wdc.com \
    --to=damien.lemoal@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --subject='Re: [PATCH v7 08/11] libata: print feature list on device scan' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).