From f64e09370917f040ce21aaf53918d973cd33d58b Mon Sep 17 00:00:00 2001 From: Naman Padhiar Date: Thu, 9 Jun 2022 10:28:48 +0530 Subject: [PATCH] icnss2: Do not start recovery timer on gracefull shutdown Recovery timer is used to detect FW_READY timeout during SSR/PDR recovery and assert when expires. In case of gracefull shutdown avoid starting recovery timer. Change-Id: Ieae2ae1d52db6648c1639ff5fca8fa9f004a6d7f Signed-off-by: Naman Padhiar --- drivers/soc/qcom/icnss2/main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/soc/qcom/icnss2/main.c b/drivers/soc/qcom/icnss2/main.c index ac5b2ae64099..a9dd23c90194 100644 --- a/drivers/soc/qcom/icnss2/main.c +++ b/drivers/soc/qcom/icnss2/main.c @@ -1860,8 +1860,9 @@ static int icnss_modem_notifier_nb(struct notifier_block *nb, icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_PD_SERVICE_DOWN, ICNSS_EVENT_SYNC, event_data); - mod_timer(&priv->recovery_timer, - jiffies + msecs_to_jiffies(ICNSS_RECOVERY_TIMEOUT)); + if (notif->crashed) + mod_timer(&priv->recovery_timer, + jiffies + msecs_to_jiffies(ICNSS_RECOVERY_TIMEOUT)); out: icnss_pr_vdbg("Exit %s,state: 0x%lx\n", __func__, priv->state); return NOTIFY_OK; @@ -2031,8 +2032,9 @@ event_post: icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_PD_SERVICE_DOWN, ICNSS_EVENT_SYNC, event_data); - mod_timer(&priv->recovery_timer, - jiffies + msecs_to_jiffies(ICNSS_RECOVERY_TIMEOUT)); + if (event_data->crashed) + mod_timer(&priv->recovery_timer, + jiffies + msecs_to_jiffies(ICNSS_RECOVERY_TIMEOUT)); done: if (notification == SERVREG_NOTIF_SERVICE_STATE_UP_V01) clear_bit(ICNSS_FW_DOWN, &priv->state);