Re: [PATCH v2 7/9] ufs: core: Expand the ufshcd_device_init(hba, true) call

Manivannan Sadhasivam
2024-08-25T05:36:24Z

On Thu, Aug 22, 2024 at 02:36:08PM -0700, Bart Van Assche wrote:
> Expand the ufshcd_device_init(hba, true) call and remove all code that
> depends on init_dev_params == false.
>

Again, no justification is provided on why the expansion is necessary.

- Mani

> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/ufs/core/ufshcd.c | 44 +++++++++++++++++++++++++++++++++++++--
> 1 file changed, 42 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 0fdf19889191..6a3873991d2a 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -10629,8 +10629,48 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
> */
> ufshcd_set_ufs_dev_active(hba);
>
> - /* Initialize hba, detect and initialize UFS device */
> - err = ufshcd_device_init(hba, /*init_dev_params=*/true);
> + err = ufshcd_activate_link(hba);
> + if (err)
> + goto out_disable;
> +
> + /* Verify device initialization by sending NOP OUT UPIU. */
> + err = ufshcd_verify_dev_init(hba);
> + if (err)
> + goto out_disable;
> +
> + /* Initiate UFS initialization and waiting for completion. */
> + err = ufshcd_complete_dev_init(hba);
> + if (err)
> + goto out_disable;
> +
> + /*
> + * Initialize UFS device parameters used by driver, these
> + * parameters are associated with UFS descriptors.
> + */
> + err = ufshcd_device_params_init(hba);
> + if (err)
> + goto out_disable;
> + if (is_mcq_supported(hba)) {
> + ufshcd_mcq_enable(hba);
> + err = ufshcd_alloc_mcq(hba);
> + if (!err) {
> + ufshcd_config_mcq(hba);
> + } else {
> + /* Continue with SDB mode */
> + ufshcd_mcq_disable(hba);
> + use_mcq_mode = false;
> + dev_err(hba->dev, "MCQ mode is disabled, err=%d\n",
> + err);
> + }
> + err = scsi_add_host(host, hba->dev);
> + if (err) {
> + dev_err(hba->dev, "scsi_add_host failed\n");
> + goto out_disable;
> + }
> + hba->scsi_host_added = true;
> + }
> +
> + err = ufshcd_post_device_init(hba);
> if (err)
> goto out_disable;
>

--
மணிவண்ணன் சதாசிவம்