Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dcc84d6f authored by Meng Wang's avatar Meng Wang
Browse files

asoc: wcd-mbhc: report headset when it's not reported



During bootup and headset inserted, headset may first
detect as GND_MIC swap type and not report. During three
seconds polling, it's corrected as headset or headphone.
When wrk_complete is false, it will not report to userspace.
When current_plug is MBHC_PLUG_TYPE_NONE, report headset or
headphone to userspace.

Change-Id: I63394f1704c34cf355f0f4b0c33959332a69a639
Signed-off-by: default avatarMeng Wang <mengw@codeaurora.org>
parent c0411d8c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -885,8 +885,10 @@ static void wcd_correct_swch_plug(struct work_struct *work)
		 */
		if ((plug_type == MBHC_PLUG_TYPE_HEADSET) ||
		    (plug_type == MBHC_PLUG_TYPE_ANC_HEADPHONE)) {
			pr_debug("%s: plug_type:0x%x already reported\n",
				 __func__, mbhc->current_plug);
			pr_debug("%s: plug_type:0x%x current_plug: 0x%x already reported\n",
				 __func__, plug_type, mbhc->current_plug);
			if (mbhc->current_plug != plug_type)
				goto report;
			WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_ADC_MODE, 0);
			WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_ADC_EN, 0);
			goto enable_supply;