From 0f4075248b75137bbe466331575e336c94030122 Mon Sep 17 00:00:00 2001 From: Subbaraman Narayanamurthy Date: Thu, 6 May 2021 13:06:47 -0700 Subject: [PATCH] soc: qcom: pmic_glink: Use SERVREG_SERVICE_STATE_DOWN for handling PDR Currently, SERVREG_SERVICE_STATE_EARLY_DOWN event from pdr_interface is used to notify the clients to clean their state during a PDR. However, this event is not being sent by the remote subsystem unless PD dump is enabled. Also it is recommended to use SERVREG_SERVICE_STATE_DOWN when a PD state is actually down. Switch to use this instead. Change-Id: Iebdaac36fe96e87b174e2f270bd68de752456d3f Signed-off-by: Subbaraman Narayanamurthy --- drivers/soc/qcom/pmic_glink.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/soc/qcom/pmic_glink.c b/drivers/soc/qcom/pmic_glink.c index 5d4241b467f1..2482ef81786c 100644 --- a/drivers/soc/qcom/pmic_glink.c +++ b/drivers/soc/qcom/pmic_glink.c @@ -165,17 +165,11 @@ static void pmic_glink_pdr_notifier_cb(int state, char *service_name, pr_debug("PDR state: %x\n", state); switch (state) { - case SERVREG_SERVICE_STATE_EARLY_DOWN: + case SERVREG_SERVICE_STATE_DOWN: pr_debug("PD state down for %s\n", pgdev->pdr_service_name); pmic_glink_notify_clients(pgdev, PMIC_GLINK_STATE_DOWN); atomic_set(&pgdev->pdr_state, state); break; - case SERVREG_SERVICE_STATE_DOWN: - /* - * PMIC Glink clients have been notified already. So do - * nothing here. - */ - break; case SERVREG_SERVICE_STATE_UP: /* * Do not notify PMIC Glink clients here but rather from @@ -537,8 +531,7 @@ static void pmic_glink_init_work(struct work_struct *work) struct device *dev = pgdev->dev; int rc; - if (atomic_read(&pgdev->pdr_state) == - SERVREG_SERVICE_STATE_EARLY_DOWN || + if (atomic_read(&pgdev->pdr_state) == SERVREG_SERVICE_STATE_DOWN || atomic_read(&pgdev->prev_state) == QCOM_SSR_BEFORE_SHUTDOWN) { pmic_glink_notify_clients(pgdev, PMIC_GLINK_STATE_UP); atomic_set(&pgdev->pdr_state, SERVREG_SERVICE_STATE_UP);