> -----Original Message----- > From: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > Sent: Friday, October 18, 2024 3:59 AM > To: Balaji Pothunoori (QUIC) <quic_bpothuno@xxxxxxxxxxx> > Cc: andersson@xxxxxxxxxx; mathieu.poirier@xxxxxxxxxx; linux-arm- > msm@xxxxxxxxxxxxxxx; linux-remoteproc@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; ath11k@xxxxxxxxxxxxxxxxxxx; Kalle Valo > <kvalo@xxxxxxxxxx> > 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@xxxxxxxxxxx> > > --- > > Cc: ath11k@xxxxxxxxxxxxxxxxxxx > > Cc: Kalle Valo <kvalo@xxxxxxxxxx> > > --- > > 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.