Re: [PATCH] scsi: ufs: core: Fix setup_xfer_req invocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
  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.




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux