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@xxxxxxxxxxxxxxx > Signed-off-by: Bjorn Andersson <quic_bjorande@xxxxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > 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