summaryrefslogtreecommitdiffstats
path: root/drivers/ufs
diff options
context:
space:
mode:
authorStanley Chu <stanley.chu@mediatek.com>2023-06-02 06:50:48 +0800
committerMartin K. Petersen <martin.petersen@oracle.com>2023-06-07 21:20:21 -0400
commit9c24f90f6a5f3ec0d782813ac5f211d411e4f542 (patch)
treec29bb0a2d3488c68b1687b53b40acf2ded02e023 /drivers/ufs
parente01d05bbf6348ccd9f5a057280310d78ea9e7b52 (diff)
downloadlinux-stable-9c24f90f6a5f3ec0d782813ac5f211d411e4f542.tar.gz
linux-stable-9c24f90f6a5f3ec0d782813ac5f211d411e4f542.tar.bz2
linux-stable-9c24f90f6a5f3ec0d782813ac5f211d411e4f542.zip
scsi: ufs: core: Combine ufshcd_mq_poll_cqe functions
Currently, ufshcd_mcq_poll_cqe_nolock() is only called by ufshcd_mcq_poll_cqe_lock() with the addition of a spinlock wrapper for ufshcd_mcq_poll_cqe_nolock(). Combining these two functions into one results in cleaner code. Reviewed-by: Bao D. Nguyen <quic_nguyenb@quicinc.com> Signed-off-by: Stanley Chu <stanley.chu@mediatek.com> Link: https://lore.kernel.org/r/20230601225048.12228-1-stanley.chu@mediatek.com Reviewed-by: Keoseong Park <keosung.park@samsung.com> Acked-by: Bean Huo <beanhuo@micron.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/ufs')
-rw-r--r--drivers/ufs/core/ufs-mcq.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
index 66ac02e0a859..ea89558d1423 100644
--- a/drivers/ufs/core/ufs-mcq.c
+++ b/drivers/ufs/core/ufs-mcq.c
@@ -306,11 +306,13 @@ void ufshcd_mcq_compl_all_cqes_lock(struct ufs_hba *hba,
spin_unlock_irqrestore(&hwq->cq_lock, flags);
}
-static unsigned long ufshcd_mcq_poll_cqe_nolock(struct ufs_hba *hba,
- struct ufs_hw_queue *hwq)
+unsigned long ufshcd_mcq_poll_cqe_lock(struct ufs_hba *hba,
+ struct ufs_hw_queue *hwq)
{
unsigned long completed_reqs = 0;
+ unsigned long flags;
+ spin_lock_irqsave(&hwq->cq_lock, flags);
ufshcd_mcq_update_cq_tail_slot(hwq);
while (!ufshcd_mcq_is_cq_empty(hwq)) {
ufshcd_mcq_process_cqe(hba, hwq);
@@ -320,17 +322,6 @@ static unsigned long ufshcd_mcq_poll_cqe_nolock(struct ufs_hba *hba,
if (completed_reqs)
ufshcd_mcq_update_cq_head(hwq);
-
- return completed_reqs;
-}
-
-unsigned long ufshcd_mcq_poll_cqe_lock(struct ufs_hba *hba,
- struct ufs_hw_queue *hwq)
-{
- unsigned long completed_reqs, flags;
-
- spin_lock_irqsave(&hwq->cq_lock, flags);
- completed_reqs = ufshcd_mcq_poll_cqe_nolock(hba, hwq);
spin_unlock_irqrestore(&hwq->cq_lock, flags);
return completed_reqs;