mbox series

[V1,0/2] Fix hibern8 enter failure during host reset

Message ID 20230725192710.26698-1-quic_nitirawa@quicinc.com
Headers show
Series Fix hibern8 enter failure during host reset | expand

Message

Nitin Rawat July 25, 2023, 7:27 p.m. UTC
Commit <52a518019c> ("Fix missing clk change notification on host reset")
added clock scaling notification to ufshcd_host_reset_and_restore.
This invokes hibern8 enter and exit on qualcomm platform which fails
because controller is in reset state.

Fix this by checking the Host controller state before sending
hibern8 command.

__ufshcd_wl_resume()
ufshcd_reset_and_restore()
ufshcd_host_reset_and_restore()
ufshcd_scale_clks()
ufshcd_vops_clk_scale_notify()
ufs_qcom_clk_scale_notify()
ufshcd_uic_hibern8_enter()

Fixes: 52a518019ca1 ("scsi: ufs: core: Fix missing clk change notification on host reset")

Nitin Rawat (2):
  scsi: ufs: core: Export ufshcd_is_hba_active
  scsi: ufs: ufs-qcom: check host controller state

 drivers/ufs/core/ufshcd.c   | 3 ++-
 drivers/ufs/host/ufs-qcom.c | 4 ++++
 include/ufs/ufshcd.h        | 1 +
 3 files changed, 7 insertions(+), 1 deletion(-)

--
2.17.1

Comments

Bjorn Andersson July 26, 2023, 5:34 a.m. UTC | #1
On Wed, Jul 26, 2023 at 12:57:10AM +0530, Nitin Rawat wrote:
> Check host controller state before sending hibern8 command.
> 

Please read https://docs.kernel.org/process/submitting-patches.html#describe-your-changes

> Signed-off-by: Manish Pandey <quic_mapa@quicinc.com>

Please read https://docs.kernel.org/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin

> Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
> ---
>  drivers/ufs/host/ufs-qcom.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
> index 8d6fd4c3324f..95412e98a598 100644
> --- a/drivers/ufs/host/ufs-qcom.c
> +++ b/drivers/ufs/host/ufs-qcom.c
> @@ -1254,6 +1254,10 @@ static int ufs_qcom_clk_scale_notify(struct ufs_hba *hba,
>  	struct ufs_pa_layer_attr *dev_req_params = &host->dev_req_params;
>  	int err = 0;
> 
> +	/* check the host controller state before sending hibern8 cmd */

That is exactly what the two lines does, but the comment does not
provide any insight into why this is done. Keeping a comment here seems
relevant, please make sure that it adds value.

Thanks,
Bjorn

> +	if (!ufshcd_is_hba_active(hba))
> +		return 0;
> +
>  	if (status == PRE_CHANGE) {
>  		err = ufshcd_uic_hibern8_enter(hba);
>  		if (err)
> --
> 2.17.1
>
Bjorn Andersson July 26, 2023, 5:41 a.m. UTC | #2
On Wed, Jul 26, 2023 at 12:57:08AM +0530, Nitin Rawat wrote:
> Commit <52a518019c> ("Fix missing clk change notification on host reset")
> added clock scaling notification to ufshcd_host_reset_and_restore.
> This invokes hibern8 enter and exit on qualcomm platform which fails
> because controller is in reset state.
> 
> Fix this by checking the Host controller state before sending
> hibern8 command.
> 
> __ufshcd_wl_resume()
> ufshcd_reset_and_restore()
> ufshcd_host_reset_and_restore()
> ufshcd_scale_clks()
> ufshcd_vops_clk_scale_notify()
> ufs_qcom_clk_scale_notify()
> ufshcd_uic_hibern8_enter()
> 
> Fixes: 52a518019ca1 ("scsi: ufs: core: Fix missing clk change notification on host reset")

Sorry, I missed this before I looked at the individual patches.

The cover-letter is not included in the git history, so this information
will be lost. This explains the reason for patch 2, so please put it
there.

Thanks,
Bjorn