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);