aboutsummaryrefslogtreecommitdiff
path: root/drivers/ufs/core/ufshcd-priv.h
diff options
context:
space:
mode:
authorGravatar Asutosh Das <quic_asutoshd@quicinc.com> 2023-01-13 12:48:47 -0800
committerGravatar Martin K. Petersen <martin.petersen@oracle.com> 2023-01-13 21:03:37 -0500
commit22a2d563de1425ea294e9abfa104dbf20c83a28a (patch)
tree8ec74cf0aca641c839eefe789149fdbf29099eae /drivers/ufs/core/ufshcd-priv.h
parentscsi: ufs: core: mcq: Use shared tags for MCQ mode (diff)
downloadlinux-22a2d563de1425ea294e9abfa104dbf20c83a28a.tar.gz
linux-22a2d563de1425ea294e9abfa104dbf20c83a28a.tar.bz2
linux-22a2d563de1425ea294e9abfa104dbf20c83a28a.zip
scsi: ufs: core: Prepare ufshcd_send_command() for MCQ
Add support to send commands using multiple submission queues in MCQ mode. Modify the functions that use ufshcd_send_command(). Co-developed-by: Can Guo <quic_cang@quicinc.com> Signed-off-by: Can Guo <quic_cang@quicinc.com> Signed-off-by: Asutosh Das <quic_asutoshd@quicinc.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> Reviewed-by: Stanley Chu <stanley.chu@mediatek.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/ufs/core/ufshcd-priv.h')
-rw-r--r--drivers/ufs/core/ufshcd-priv.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h
index 4cd9b7b63868..013111fca0f7 100644
--- a/drivers/ufs/core/ufshcd-priv.h
+++ b/drivers/ufs/core/ufshcd-priv.h
@@ -335,4 +335,14 @@ static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info, u8
return lun == UFS_UPIU_RPMB_WLUN || (lun < dev_info->max_lu_supported);
}
+static inline void ufshcd_inc_sq_tail(struct ufs_hw_queue *q)
+{
+ u32 mask = q->max_entries - 1;
+ u32 val;
+
+ q->sq_tail_slot = (q->sq_tail_slot + 1) & mask;
+ val = q->sq_tail_slot * sizeof(struct utp_transfer_req_desc);
+ writel(val, q->mcq_sq_tail);
+}
+
#endif /* _UFSHCD_PRIV_H_ */