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

Commit 0cd68d99 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: wcd-mbhc: Fix high impedance lineout detected as headphone issue"

parents 601c6836 48003fde
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -655,7 +655,6 @@ void wcd_mbhc_report_plug(struct wcd_mbhc *mbhc, int insertion,
						SND_JACK_LINEOUT |
						SND_JACK_ANC_HEADPHONE |
						SND_JACK_UNSUPPORTED);
			mbhc->force_linein = false;
		}

		if (mbhc->current_plug == MBHC_PLUG_TYPE_HEADSET &&
@@ -714,6 +713,25 @@ void wcd_mbhc_report_plug(struct wcd_mbhc *mbhc, int insertion,
			}
		}

		/* Do not calculate impedance again for lineout
		 * as during playback pa is on and impedance values
		 * will not be correct resulting in lineout detected
		 * as headphone.
		 */
		if ((is_pa_on) && mbhc->force_linein == true) {
			jack_type = SND_JACK_LINEOUT;
			mbhc->current_plug = MBHC_PLUG_TYPE_HIGH_HPH;
			if (mbhc->hph_status) {
				mbhc->hph_status &= ~(SND_JACK_HEADSET |
						SND_JACK_LINEOUT |
						SND_JACK_UNSUPPORTED);
				wcd_mbhc_jack_report(mbhc,
						&mbhc->headset_jack,
						mbhc->hph_status,
						WCD_MBHC_JACK_MASK);
			}
		}

		mbhc->hph_status |= jack_type;

		pr_debug("%s: Reporting insertion %d(%x)\n", __func__,