[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZsNJju43JyChNoMd@kuha.fi.intel.com>
Date: Mon, 19 Aug 2024 16:33:02 +0300
From: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
To: Bjorn Andersson <quic_bjorande@...cinc.com>
Cc: Sebastian Reichel <sre@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...aro.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Neil Armstrong <neil.armstrong@...aro.org>,
Johan Hovold <johan+linaro@...nel.org>,
Chris Lew <quic_clew@...cinc.com>,
Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
Stephen Boyd <swboyd@...omium.org>,
Amit Pundir <amit.pundir@...aro.org>, linux-arm-msm@...r.kernel.org,
linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-usb@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH 3/3] soc: qcom: pmic_glink: Actually communicate with
remote goes down
On Sun, Aug 18, 2024 at 04:17:39PM -0700, Bjorn Andersson wrote:
> When the pmic_glink state is UP and we either receive a protection-
> domain (PD) notifcation indicating that the PD is going down, or that
> the whole remoteproc is going down, it's expected that the pmic_glink
> client instances are notified that their function has gone DOWN.
>
> This is not what the code does, which results in the client state either
> not updating, or being wrong in many cases. So let's fix the conditions.
>
> Fixes: 58ef4ece1e41 ("soc: qcom: pmic_glink: Introduce base PMIC GLINK driver")
> Cc: stable@...r.kernel.org
> Signed-off-by: Bjorn Andersson <quic_bjorande@...cinc.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
> ---
> drivers/soc/qcom/pmic_glink.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soc/qcom/pmic_glink.c b/drivers/soc/qcom/pmic_glink.c
> index e4747f1d3da5..cb202a37e8ab 100644
> --- a/drivers/soc/qcom/pmic_glink.c
> +++ b/drivers/soc/qcom/pmic_glink.c
> @@ -191,7 +191,7 @@ static void pmic_glink_state_notify_clients(struct pmic_glink *pg)
> if (pg->pdr_state == SERVREG_SERVICE_STATE_UP && pg->ept)
> new_state = SERVREG_SERVICE_STATE_UP;
> } else {
> - if (pg->pdr_state == SERVREG_SERVICE_STATE_UP && pg->ept)
> + if (pg->pdr_state == SERVREG_SERVICE_STATE_DOWN || !pg->ept)
> new_state = SERVREG_SERVICE_STATE_DOWN;
> }
>
>
--
heikki
Powered by blists - more mailing lists