ASoC: wcd-mbhc: Fix headset insert not detected after moisture config
Headset insertion is not detected after moisture is configured and then removed. This is because during moisture_detect GND_DET_EN is configured irrespective of whether it is enabled or not. Add a check before enabling gnd_det_en. Also as moisture_en is disabled and duty cycle is enabled change check during removal to disable threshold and polling. Change-Id: Iee9d79b38b228e78d1509d59e92d37f1328f079e Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
此提交包含在:

提交者
Gerrit - the friendly Code Review server

父節點
f277ee3154
當前提交
7b663b23b2
@@ -883,7 +883,8 @@ static bool wcd_mbhc_moisture_detect(struct wcd_mbhc *mbhc, bool detection_type)
|
||||
detection_type);
|
||||
ret = true;
|
||||
WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_L_DET_EN, 1);
|
||||
WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_GND_DET_EN, 1);
|
||||
if (mbhc->mbhc_cfg->gnd_det_en)
|
||||
WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_GND_DET_EN, 1);
|
||||
} else {
|
||||
mbhc->mbhc_cb->mbhc_moisture_polling_ctrl(mbhc, false);
|
||||
mbhc->mbhc_cb->mbhc_moisture_detect_en(mbhc, false);
|
||||
@@ -1023,7 +1024,7 @@ static void wcd_mbhc_swch_irq_handler(struct wcd_mbhc *mbhc)
|
||||
mbhc->component, false);
|
||||
}
|
||||
|
||||
if (mbhc->mbhc_cfg->moisture_en &&
|
||||
if (mbhc->mbhc_cfg->moisture_en ||
|
||||
mbhc->mbhc_cfg->moisture_duty_cycle_en) {
|
||||
if (mbhc->mbhc_cb->mbhc_moisture_polling_ctrl)
|
||||
mbhc->mbhc_cb->mbhc_moisture_polling_ctrl(mbhc,
|
||||
|
新增問題並參考
封鎖使用者