ASoC: wcd938x: Fix headset detection during SSR/PDR

Headset is corrected as lineout during SSR/PDR. This is
because adc voltage is not measured correctly due to SSR state.
Enable flag deinit_in_progress during SSR down to check if
device is not reported and disable it after device up.

Change-Id: I6fc4fff4149c36ba16aa668a960505504a5d811f
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
このコミットが含まれているのは:
Vatsal Bucha
2019-12-16 15:03:41 +05:30
committed by Gerrit - the friendly Code Review server
コミット 71e95c67ea
2個のファイルの変更4行の追加0行の削除

ファイルの表示

@@ -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__,