ASoC: wcd937x: Fix audio distortion issue during headset record

Audio is distorted during first 3 secs on headset record
while doing device switch from dmic to headset mic.
Disable BCS before slow insertion detection and enable it
afterwards to resolve the issue.

Change-Id: Icb18a0b5decb0c0bd9959bce7cced70a27566d41
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
此提交包含在:
Vatsal Bucha
2019-10-23 12:32:29 +05:30
提交者 Gerrit - the friendly Code Review server
父節點 2e421b5771
當前提交 a9675d1a5d
共有 3 個檔案被更改,包括 29 行新增0 行删除

查看文件

@@ -810,6 +810,15 @@ static void wcd937x_mbhc_moisture_polling_ctrl(struct wcd_mbhc *mbhc,
0x04, (enable << 2));
}
static void wcd937x_mbhc_bcs_enable(struct wcd_mbhc *mbhc,
bool bcs_enable)
{
if (bcs_enable)
wcd937x_disable_bcs_before_slow_insert(mbhc->component, false);
else
wcd937x_disable_bcs_before_slow_insert(mbhc->component, true);
}
static const struct wcd_mbhc_cb mbhc_cb = {
.request_irq = wcd937x_mbhc_request_irq,
.irq_control = wcd937x_mbhc_irq_control,
@@ -834,6 +843,7 @@ static const struct wcd_mbhc_cb mbhc_cb = {
.mbhc_get_moisture_status = wcd937x_mbhc_get_moisture_status,
.mbhc_moisture_polling_ctrl = wcd937x_mbhc_moisture_polling_ctrl,
.mbhc_moisture_detect_en = wcd937x_mbhc_moisture_detect_en,
.bcs_enable = wcd937x_mbhc_bcs_enable,
};
static int wcd937x_get_hph_type(struct snd_kcontrol *kcontrol,