From 37545170e3491ee9a670b6ebef6f0be5fecf12cd Mon Sep 17 00:00:00 2001 From: dojha <dojha@codeaurora.org> Date: Mon, 11 Jul 2016 11:14:45 +0530 Subject: [PATCH] ASoC: wcd-mbhc: disable fake electrical interrupts Electrical interrupts are enabled across mechanical removal of headphone. This causes fake electrical removal interrupts during cross connection check. So disable electrical interrupts during removal of headphone. CRs-Fixed: 1030696 Change-Id: Ib4cc92b86f01991d8d8dbad54c68ee79cbaea44a Signed-off-by: dojha <dojha@codeaurora.org> --- sound/soc/codecs/wcd-mbhc-v2.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/sound/soc/codecs/wcd-mbhc-v2.c index 63ffacad61e1..0e0e235217ac 100644 --- a/sound/soc/codecs/wcd-mbhc-v2.c +++ b/sound/soc/codecs/wcd-mbhc-v2.c @@ -1545,6 +1545,13 @@ static void wcd_mbhc_swch_irq_handler(struct wcd_mbhc *mbhc) mbhc->btn_press_intr = false; if (mbhc->current_plug == MBHC_PLUG_TYPE_HEADPHONE) { + wcd_mbhc_hs_elec_irq(mbhc, WCD_MBHC_ELEC_HS_REM, + false); + wcd_mbhc_hs_elec_irq(mbhc, WCD_MBHC_ELEC_HS_INS, + false); + WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_ELECT_DETECTION_TYPE, + 1); + WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_ELECT_SCHMT_ISRC, 0); wcd_mbhc_report_plug(mbhc, 0, SND_JACK_HEADPHONE); } else if (mbhc->current_plug == MBHC_PLUG_TYPE_GND_MIC_SWAP) { wcd_mbhc_report_plug(mbhc, 0, SND_JACK_UNSUPPORTED);