diff --git a/asoc/codecs/wcd934x/wcd934x.c b/asoc/codecs/wcd934x/wcd934x.c index 36676767fb..2a6d829f24 100644 --- a/asoc/codecs/wcd934x/wcd934x.c +++ b/asoc/codecs/wcd934x/wcd934x.c @@ -10010,9 +10010,13 @@ static int tavil_device_down(struct wcd9xxx *wcd9xxx) (&priv->mbhc->wcd_mbhc, false); } - if (priv->swr.ctrl_data) + if (priv->swr.ctrl_data) { + if (is_snd_event_fwk_enabled()) + swrm_wcd_notify(priv->swr.ctrl_data[0].swr_pdev, + SWR_DEVICE_SSR_DOWN, NULL); swrm_wcd_notify(priv->swr.ctrl_data[0].swr_pdev, SWR_DEVICE_DOWN, NULL); + } tavil_dsd_reset(priv->dsd_config); if (!is_snd_event_fwk_enabled()) snd_soc_card_change_online_state(codec->component.card, 0); @@ -10110,6 +10114,9 @@ static int tavil_post_reset_cb(struct wcd9xxx *wcd9xxx) goto done; } + if (tavil->swr.ctrl_data && is_snd_event_fwk_enabled()) + swrm_wcd_notify(tavil->swr.ctrl_data[0].swr_pdev, + SWR_DEVICE_SSR_UP, NULL); tavil_set_spkr_mode(codec, tavil->swr.spkr_mode); /* * Once the codec initialization is completed, the svs vote