Commit 4d0538dd authored by Bart Van Assche's avatar Bart Van Assche Committed by Martin K. Petersen
Browse files

scsi: ufs: core: Use a host-wide tagset in SDB mode



In single-doorbell (SDB) mode there is only a single request queue. Hence,
it doesn't matter whether or not the SCSI host tagset is configured as
host-wide. Configure the host tagset as host-wide in SDB mode because this
enables a simplification of the hot path.

Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Reviewed-by: default avatarPeter Wang <peter.wang@mediatek.com>
Link: https://patch.msgid.link/20260116180800.3085233-1-bvanassche@acm.org


Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent a48ca06c
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -444,7 +444,6 @@ EXPORT_SYMBOL_GPL(ufshcd_mcq_config_esi);

int ufshcd_mcq_init(struct ufs_hba *hba)
{
	struct Scsi_Host *host = hba->host;
	struct ufs_hw_queue *hwq;
	int ret, i;

@@ -478,7 +477,6 @@ int ufshcd_mcq_init(struct ufs_hba *hba)
		mutex_init(&hwq->sq_mutex);
	}

	host->host_tagset = 1;
	return 0;
}

+1 −6
Original line number Diff line number Diff line
@@ -374,12 +374,7 @@ static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info, u8
 */
static inline struct scsi_cmnd *ufshcd_tag_to_cmd(struct ufs_hba *hba, u32 tag)
{
	/*
	 * Host-wide tags are enabled in MCQ mode only. See also the
	 * host->host_tagset assignment in ufs-mcq.c.
	 */
	struct blk_mq_tags *tags = hba->host->tag_set.shared_tags ?:
					   hba->host->tag_set.tags[0];
	struct blk_mq_tags *tags = hba->host->tag_set.shared_tags;
	struct request *rq = blk_mq_tag_to_rq(tags, tag);

	if (WARN_ON_ONCE(!rq))
+1 −0
Original line number Diff line number Diff line
@@ -9321,6 +9321,7 @@ static const struct scsi_host_template ufshcd_driver_template = {
	.max_segment_size	= PRDT_DATA_BYTE_COUNT_MAX,
	.max_sectors		= SZ_1M / SECTOR_SIZE,
	.max_host_blocked	= 1,
	.host_tagset		= true,
	.track_queue_depth	= 1,
	.skip_settle_delay	= 1,
	.sdev_groups		= ufshcd_driver_groups,