Message ID | 20241016135409.2494140-1-quic_bpothuno@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | remoteproc: qcom_q6v5_pas: disable auto boot for wpss | expand |
On Wed, Oct 16, 2024 at 07:24:09PM +0530, Balaji Pothunoori wrote: > auto_boot flag ensures to take the firmware and boots it > up during the wpss remoteproc start. > wpss host driver would like to control the load and unload > of the firmware during the load and unload of the driver. > Hence, disable the "auto boot" for wpss. Which driver? What is the reason for manual control? The board seems to function properly with the ath11k driver, which doesn't seem to require manual control. > > Signed-off-by: Balaji Pothunoori <quic_bpothuno@quicinc.com> > --- > Cc: ath11k@lists.infradead.org > Cc: Kalle Valo <kvalo@kernel.org> > --- > drivers/remoteproc/qcom_q6v5_pas.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c > index ef82835e98a4..05963d7924df 100644 > --- a/drivers/remoteproc/qcom_q6v5_pas.c > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > @@ -1344,7 +1344,7 @@ static const struct adsp_data sc7280_wpss_resource = { > .crash_reason_smem = 626, > .firmware_name = "wpss.mdt", > .pas_id = 6, > - .auto_boot = true, > + .auto_boot = false, > .proxy_pd_names = (char*[]){ > "cx", > "mx", > -- > 2.34.1 >
> -----Original Message----- > From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Sent: Friday, October 18, 2024 3:59 AM > To: Balaji Pothunoori (QUIC) <quic_bpothuno@quicinc.com> > Cc: andersson@kernel.org; mathieu.poirier@linaro.org; linux-arm- > msm@vger.kernel.org; linux-remoteproc@vger.kernel.org; linux- > kernel@vger.kernel.org; ath11k@lists.infradead.org; Kalle Valo > <kvalo@kernel.org> > Subject: Re: [PATCH] remoteproc: qcom_q6v5_pas: disable auto boot for wpss > > On Wed, Oct 16, 2024 at 07:24:09PM +0530, Balaji Pothunoori wrote: > > auto_boot flag ensures to take the firmware and boots it up during the > > wpss remoteproc start. > > wpss host driver would like to control the load and unload of the > > firmware during the load and unload of the driver. > > Hence, disable the "auto boot" for wpss. > > Which driver? ath11k_ahb.ko What is the reason for manual control? > The board seems to function properly with the ath11k driver, which doesn't > seem to require manual control. > The rproc "atomic_t power" variable is incremented during: a. WPSS rproc auto boot. b. AHB power on for ath11k. During AHB power off (rmmod ath11k_ahb.ko), rproc_shutdown fails to unload the WPSS firmware because the rproc->power value is '2', causing the atomic_dec_and_test(&rproc->power) condition to fail. Consequently, during AHB power on (insmod ath11k_ahb.ko), QMI_WLANFW_HOST_CAP_REQ_V01 fails due to the host and firmware QMI states being out of sync. Therefore, this change disables rproc auto boot for WPSS. > > > > Signed-off-by: Balaji Pothunoori <quic_bpothuno@quicinc.com> > > --- > > Cc: ath11k@lists.infradead.org > > Cc: Kalle Valo <kvalo@kernel.org> > > --- > > drivers/remoteproc/qcom_q6v5_pas.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c > > b/drivers/remoteproc/qcom_q6v5_pas.c > > index ef82835e98a4..05963d7924df 100644 > > --- a/drivers/remoteproc/qcom_q6v5_pas.c > > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > > @@ -1344,7 +1344,7 @@ static const struct adsp_data > sc7280_wpss_resource = { > > .crash_reason_smem = 626, > > .firmware_name = "wpss.mdt", > > .pas_id = 6, > > - .auto_boot = true, > > + .auto_boot = false, > > .proxy_pd_names = (char*[]){ > > "cx", > > "mx", > > -- > > 2.34.1 > > > > -- > With best wishes > Dmitry Regards, Balaji.
On Fri, 18 Oct 2024 at 11:42, Balaji Pothunoori (QUIC) <quic_bpothuno@quicinc.com> wrote: > > > -----Original Message----- > > From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > Sent: Friday, October 18, 2024 3:59 AM > > To: Balaji Pothunoori (QUIC) <quic_bpothuno@quicinc.com> > > Cc: andersson@kernel.org; mathieu.poirier@linaro.org; linux-arm- > > msm@vger.kernel.org; linux-remoteproc@vger.kernel.org; linux- > > kernel@vger.kernel.org; ath11k@lists.infradead.org; Kalle Valo > > <kvalo@kernel.org> > > Subject: Re: [PATCH] remoteproc: qcom_q6v5_pas: disable auto boot for wpss > > > > On Wed, Oct 16, 2024 at 07:24:09PM +0530, Balaji Pothunoori wrote: > > > auto_boot flag ensures to take the firmware and boots it up during the > > > wpss remoteproc start. > > > wpss host driver would like to control the load and unload of the > > > firmware during the load and unload of the driver. > > > Hence, disable the "auto boot" for wpss. > > > > Which driver? > ath11k_ahb.ko > > What is the reason for manual control? > > The board seems to function properly with the ath11k driver, which doesn't > > seem to require manual control. > > > The rproc "atomic_t power" variable is incremented during: > a. WPSS rproc auto boot. > b. AHB power on for ath11k. > > During AHB power off (rmmod ath11k_ahb.ko), rproc_shutdown fails to unload the WPSS firmware because the rproc->power value is '2', causing the atomic_dec_and_test(&rproc->power) condition to fail. > Consequently, during AHB power on (insmod ath11k_ahb.ko), QMI_WLANFW_HOST_CAP_REQ_V01 fails due to the host and firmware QMI states being out of sync. Please move these details to the commit message and add Fixes/cc:stable tags. > > Therefore, this change disables rproc auto boot for WPSS. > > > > > > Signed-off-by: Balaji Pothunoori <quic_bpothuno@quicinc.com> > > > --- > > > Cc: ath11k@lists.infradead.org > > > Cc: Kalle Valo <kvalo@kernel.org> > > > --- > > > drivers/remoteproc/qcom_q6v5_pas.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c > > > b/drivers/remoteproc/qcom_q6v5_pas.c > > > index ef82835e98a4..05963d7924df 100644 > > > --- a/drivers/remoteproc/qcom_q6v5_pas.c > > > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > > > @@ -1344,7 +1344,7 @@ static const struct adsp_data > > sc7280_wpss_resource = { > > > .crash_reason_smem = 626, > > > .firmware_name = "wpss.mdt", > > > .pas_id = 6, > > > - .auto_boot = true, > > > + .auto_boot = false, > > > .proxy_pd_names = (char*[]){ > > > "cx", > > > "mx", > > > -- > > > 2.34.1 > > > > > > > -- > > With best wishes > > Dmitry > > Regards, > Balaji.
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c index ef82835e98a4..05963d7924df 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -1344,7 +1344,7 @@ static const struct adsp_data sc7280_wpss_resource = { .crash_reason_smem = 626, .firmware_name = "wpss.mdt", .pas_id = 6, - .auto_boot = true, + .auto_boot = false, .proxy_pd_names = (char*[]){ "cx", "mx",
auto_boot flag ensures to take the firmware and boots it up during the wpss remoteproc start. wpss host driver would like to control the load and unload of the firmware during the load and unload of the driver. Hence, disable the "auto boot" for wpss. Signed-off-by: Balaji Pothunoori <quic_bpothuno@quicinc.com> --- Cc: ath11k@lists.infradead.org Cc: Kalle Valo <kvalo@kernel.org> --- drivers/remoteproc/qcom_q6v5_pas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)