diff --git a/asoc/codecs/wcd937x/wcd937x.c b/asoc/codecs/wcd937x/wcd937x.c index 3043d6439e..c14480ac6c 100644 --- a/asoc/codecs/wcd937x/wcd937x.c +++ b/asoc/codecs/wcd937x/wcd937x.c @@ -1589,6 +1589,7 @@ static int wcd937x_event_notify(struct notifier_block *block, 0x80, 0x00); break; case BOLERO_WCD_EVT_SSR_DOWN: + wcd937x->mbhc->wcd_mbhc.deinit_in_progress = true; mbhc = &wcd937x->mbhc->wcd_mbhc; wcd937x_mbhc_ssr_down(wcd937x->mbhc, component); wcd937x_reset_low(wcd937x->dev); @@ -1612,6 +1613,7 @@ static int wcd937x_event_notify(struct notifier_block *block, } else { wcd937x_mbhc_hs_detect(component, mbhc->mbhc_cfg); } + wcd937x->mbhc->wcd_mbhc.deinit_in_progress = false; break; default: dev_err(component->dev, "%s: invalid event %d\n", __func__, diff --git a/asoc/codecs/wcd938x/wcd938x.c b/asoc/codecs/wcd938x/wcd938x.c index 6dc5ec461e..a2aa486e66 100644 --- a/asoc/codecs/wcd938x/wcd938x.c +++ b/asoc/codecs/wcd938x/wcd938x.c @@ -2032,6 +2032,7 @@ static int wcd938x_event_notify(struct notifier_block *block, break; case BOLERO_WCD_EVT_SSR_DOWN: wcd938x->dev_up = false; + wcd938x->mbhc->wcd_mbhc.deinit_in_progress = true; mbhc = &wcd938x->mbhc->wcd_mbhc; wcd938x_mbhc_ssr_down(wcd938x->mbhc, component); wcd938x_reset_low(wcd938x->dev); @@ -2056,6 +2057,7 @@ static int wcd938x_event_notify(struct notifier_block *block, } else { wcd938x_mbhc_hs_detect(component, mbhc->mbhc_cfg); } + wcd938x->mbhc->wcd_mbhc.deinit_in_progress = false; wcd938x->dev_up = true; break; case BOLERO_WCD_EVT_CLK_NOTIFY: