From c4ab23b3121d441e4eba746491cb853aaa54540b Mon Sep 17 00:00:00 2001 From: Yeleswarapu Nagaradhesh Date: Wed, 23 Mar 2016 12:10:37 +0530 Subject: [PATCH] ASoC: wcd-mbhc: correct headphone detection Characteristics of 3pole extn cable is, MIC is grounded and HPHL and HPHR are floating. In current SW, if there is GND_MIC SWAP with button press cable is reported as unsupported. Hence report cable as headset if there is GND_MIC SWAP with button press. CRs-Fixed: 963833 Signed-off-by: Yeleswarapu Nagaradhesh Change-Id: Ie6b467292661358699fcab6263653139cda87c33 --- sound/soc/codecs/wcd-mbhc-v2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/sound/soc/codecs/wcd-mbhc-v2.c index af6eee12d05a..85c48b38e3db 100644 --- a/sound/soc/codecs/wcd-mbhc-v2.c +++ b/sound/soc/codecs/wcd-mbhc-v2.c @@ -1355,6 +1355,11 @@ report: pr_debug("%s: Switch level is low\n", __func__); goto exit; } + if (plug_type == MBHC_PLUG_TYPE_GND_MIC_SWAP && mbhc->btn_press_intr) { + pr_debug("%s: insertion of headphone with swap\n", __func__); + wcd_cancel_btn_work(mbhc); + plug_type = MBHC_PLUG_TYPE_HEADPHONE; + } pr_debug("%s: Valid plug found, plug type %d wrk_cmpt %d btn_intr %d\n", __func__, plug_type, wrk_complete, mbhc->btn_press_intr);