scsi: ufs: core: Combine ufshcd_mq_poll_cqe functions
authorStanley Chu <stanley.chu@mediatek.com>
Thu, 1 Jun 2023 22:50:48 +0000 (06:50 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 8 Jun 2023 01:20:21 +0000 (21:20 -0400)
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>
drivers/ufs/core/ufs-mcq.c

index 66ac02e0a85907681e71b85a87b22d4fba635731..ea89558d1423a72aab5d0225f3ebab9bfe4279db 100644 (file)
@@ -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;