diff mbox series

bus: mhi: host: Use mhi_soc_reset() API in place of register write

Message ID 1665376324-34258-1-git-send-email-quic_qianyu@quicinc.com
State Accepted
Commit 46db0ba12be6cfd043df1d09b5831cb84ce2307f
Headers show
Series bus: mhi: host: Use mhi_soc_reset() API in place of register write | expand

Commit Message

Qiang Yu Oct. 10, 2022, 4:32 a.m. UTC
Currently, a direct register write is used when ramdump collection
in panic path occurs. Replace that with new mhi_soc_reset() API
such that a controller defined reset() function is exercised if
one is present and the regular SOC reset is done if it is not.

Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
---
 drivers/bus/mhi/host/boot.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Manivannan Sadhasivam Oct. 28, 2022, 5:22 p.m. UTC | #1
On Mon, Oct 10, 2022 at 12:32:04PM +0800, Qiang Yu wrote:
> Currently, a direct register write is used when ramdump collection
> in panic path occurs. Replace that with new mhi_soc_reset() API
> such that a controller defined reset() function is exercised if
> one is present and the regular SOC reset is done if it is not.
> 
> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
> Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>

Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>

Btw, this patch is supposed to be v2... Please keep the version info and also
add the changelog for future patches.

Thanks,
Mani

> ---
>  drivers/bus/mhi/host/boot.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/bus/mhi/host/boot.c b/drivers/bus/mhi/host/boot.c
> index 26d0edd..1c69fee 100644
> --- a/drivers/bus/mhi/host/boot.c
> +++ b/drivers/bus/mhi/host/boot.c
> @@ -118,9 +118,7 @@ static int __mhi_download_rddm_in_panic(struct mhi_controller *mhi_cntrl)
>  			/* Hardware reset so force device to enter RDDM */
>  			dev_dbg(dev,
>  				"Did not enter RDDM, do a host req reset\n");
> -			mhi_write_reg(mhi_cntrl, mhi_cntrl->regs,
> -				      MHI_SOC_RESET_REQ_OFFSET,
> -				      MHI_SOC_RESET_REQ);
> +			mhi_soc_reset(mhi_cntrl);
>  			udelay(delayus);
>  		}
>  
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
Manivannan Sadhasivam Oct. 28, 2022, 5:28 p.m. UTC | #2
On Mon, Oct 10, 2022 at 12:32:04PM +0800, Qiang Yu wrote:
> Currently, a direct register write is used when ramdump collection
> in panic path occurs. Replace that with new mhi_soc_reset() API
> such that a controller defined reset() function is exercised if
> one is present and the regular SOC reset is done if it is not.
> 
> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
> Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>

Applied to mhi-next!

Thanks,
Mani

> ---
>  drivers/bus/mhi/host/boot.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/bus/mhi/host/boot.c b/drivers/bus/mhi/host/boot.c
> index 26d0edd..1c69fee 100644
> --- a/drivers/bus/mhi/host/boot.c
> +++ b/drivers/bus/mhi/host/boot.c
> @@ -118,9 +118,7 @@ static int __mhi_download_rddm_in_panic(struct mhi_controller *mhi_cntrl)
>  			/* Hardware reset so force device to enter RDDM */
>  			dev_dbg(dev,
>  				"Did not enter RDDM, do a host req reset\n");
> -			mhi_write_reg(mhi_cntrl, mhi_cntrl->regs,
> -				      MHI_SOC_RESET_REQ_OFFSET,
> -				      MHI_SOC_RESET_REQ);
> +			mhi_soc_reset(mhi_cntrl);
>  			udelay(delayus);
>  		}
>  
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
diff mbox series

Patch

diff --git a/drivers/bus/mhi/host/boot.c b/drivers/bus/mhi/host/boot.c
index 26d0edd..1c69fee 100644
--- a/drivers/bus/mhi/host/boot.c
+++ b/drivers/bus/mhi/host/boot.c
@@ -118,9 +118,7 @@  static int __mhi_download_rddm_in_panic(struct mhi_controller *mhi_cntrl)
 			/* Hardware reset so force device to enter RDDM */
 			dev_dbg(dev,
 				"Did not enter RDDM, do a host req reset\n");
-			mhi_write_reg(mhi_cntrl, mhi_cntrl->regs,
-				      MHI_SOC_RESET_REQ_OFFSET,
-				      MHI_SOC_RESET_REQ);
+			mhi_soc_reset(mhi_cntrl);
 			udelay(delayus);
 		}