scsi: ufs: core: Introduce ufshcd_post_device_init()
authorBart Van Assche <bvanassche@acm.org>
Wed, 16 Oct 2024 20:11:58 +0000 (13:11 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 25 Oct 2024 19:30:21 +0000 (15:30 -0400)
Prepare for inlining one ufshcd_device_init() call by introducing the
new function ufshcd_post_device_init(). No functionality has been
changed.

Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20241016201249.2256266-3-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index 7660d35..72f0413 100644 (file)
@@ -8686,6 +8686,40 @@ static void ufshcd_config_mcq(struct ufs_hba *hba)
                 hba->nutrs);
 }
 
+static int ufshcd_post_device_init(struct ufs_hba *hba)
+{
+       int ret;
+
+       ufshcd_tune_unipro_params(hba);
+
+       /* UFS device is also active now */
+       ufshcd_set_ufs_dev_active(hba);
+       ufshcd_force_reset_auto_bkops(hba);
+
+       ufshcd_set_timestamp_attr(hba);
+       schedule_delayed_work(&hba->ufs_rtc_update_work,
+                             msecs_to_jiffies(UFS_RTC_UPDATE_INTERVAL_MS));
+
+       if (!hba->max_pwr_info.is_valid)
+               return 0;
+
+       /*
+        * Set the right value to bRefClkFreq before attempting to
+        * switch to HS gears.
+        */
+       if (hba->dev_ref_clk_freq != REF_CLK_FREQ_INVAL)
+               ufshcd_set_dev_ref_clk(hba);
+       /* Gear up to HS gear. */
+       ret = ufshcd_config_pwr_mode(hba, &hba->max_pwr_info.info);
+       if (ret) {
+               dev_err(hba->dev, "%s: Failed setting power mode, err = %d\n",
+                       __func__, ret);
+               return ret;
+       }
+
+       return 0;
+}
+
 static int ufshcd_device_init(struct ufs_hba *hba, bool init_dev_params)
 {
        int ret;
@@ -8755,33 +8789,7 @@ static int ufshcd_device_init(struct ufs_hba *hba, bool init_dev_params)
                }
        }
 
-       ufshcd_tune_unipro_params(hba);
-
-       /* UFS device is also active now */
-       ufshcd_set_ufs_dev_active(hba);
-       ufshcd_force_reset_auto_bkops(hba);
-
-       ufshcd_set_timestamp_attr(hba);
-       schedule_delayed_work(&hba->ufs_rtc_update_work,
-                             msecs_to_jiffies(UFS_RTC_UPDATE_INTERVAL_MS));
-
-       /* Gear up to HS gear if supported */
-       if (hba->max_pwr_info.is_valid) {
-               /*
-                * Set the right value to bRefClkFreq before attempting to
-                * switch to HS gears.
-                */
-               if (hba->dev_ref_clk_freq != REF_CLK_FREQ_INVAL)
-                       ufshcd_set_dev_ref_clk(hba);
-               ret = ufshcd_config_pwr_mode(hba, &hba->max_pwr_info.info);
-               if (ret) {
-                       dev_err(hba->dev, "%s: Failed setting power mode, err = %d\n",
-                                       __func__, ret);
-                       return ret;
-               }
-       }
-
-       return 0;
+       return ufshcd_post_device_init(hba);
 }
 
 /**