Messages in this thread | | | Date | Wed, 21 Feb 2024 17:13:24 +0800 | Subject | Re: [PATCH] scsi: ufs: core: Fix setup_xfer_req invocation | From | Can Guo <> |
| |
Hi Bart,
On 2/21/2024 1:21 AM, Bart Van Assche wrote: > On 2/20/24 01:08, Rohit Ner wrote: >> Allow variant callback to setup transfers without >> restricting the transfers to use legacy doorbell >> >> Signed-off-by: Rohit Ner <rohitner@google.com> >> --- >> drivers/ufs/core/ufshcd.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c >> index d77b25b79ae3..91e483dd3974 100644 >> --- a/drivers/ufs/core/ufshcd.c >> +++ b/drivers/ufs/core/ufshcd.c >> @@ -2280,6 +2280,9 @@ void ufshcd_send_command(struct ufs_hba *hba, >> unsigned int task_tag, >> ufshcd_clk_scaling_start_busy(hba); >> if (unlikely(ufshcd_should_inform_monitor(hba, lrbp))) >> ufshcd_start_monitor(hba, lrbp); >> + if (hba->vops && hba->vops->setup_xfer_req) >> + hba->vops->setup_xfer_req(hba, lrbp->task_tag, >> + !!lrbp->cmd); >> if (is_mcq_enabled(hba)) { >> int utrd_size = sizeof(struct utp_transfer_req_desc); >> @@ -2293,9 +2296,6 @@ void ufshcd_send_command(struct ufs_hba *hba, >> unsigned int task_tag, >> spin_unlock(&hwq->sq_lock); >> } else { >> spin_lock_irqsave(&hba->outstanding_lock, flags); >> - if (hba->vops && hba->vops->setup_xfer_req) >> - hba->vops->setup_xfer_req(hba, lrbp->task_tag, >> - !!lrbp->cmd); >> __set_bit(lrbp->task_tag, &hba->outstanding_reqs); >> ufshcd_writel(hba, 1 << lrbp->task_tag, >> REG_UTP_TRANSFER_REQ_DOOR_BELL); > > UFS controllers that are compliant with the JEDEC UFSHCI specification do > not need the .setup_xfer_req() callback so I think a better motivation is > needed to make this change.
I am going to push some BUG fixes for Qualcomm UFSHCI MCQ engine, one of which would count on a vops in ufshcd_send_command(). My original plan was to add a new vops.mcq_setup_xfer_req() to differentiate from the existing one used in legacy mode. But if Rohit moves the existing setup_xfer_req() up, I can use it instead of introducing the new one.
Thanks, Can Guo.
> > Thanks, > > Bart.
| |