From: Oder Chiou Date: Thu, 16 Jul 2020 03:01:23 +0000 (+0800) Subject: ASoC: rt5682: Report the button event in the headset type only X-Git-Tag: v5.15~2585^2~94^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fe0a53044b4bce947045eadd7fa1adbc4685afab;p=platform%2Fkernel%2Flinux-starfive.git ASoC: rt5682: Report the button event in the headset type only The irq work will be manipulated by resume function, and it will report the wrong jack type while the jack type is headphone in the button event. Signed-off-by: Oder Chiou Link: https://lore.kernel.org/r/20200716030123.27122-1-oder_chiou@realtek.com Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/rt5682.c b/sound/soc/codecs/rt5682.c index 5adfaf3..d503b5b 100644 --- a/sound/soc/codecs/rt5682.c +++ b/sound/soc/codecs/rt5682.c @@ -1082,7 +1082,8 @@ void rt5682_jack_detect_handler(struct work_struct *work) /* jack was out, report jack type */ rt5682->jack_type = rt5682_headset_detect(rt5682->component, 1); - } else { + } else if ((rt5682->jack_type & SND_JACK_HEADSET) == + SND_JACK_HEADSET) { /* jack is already in, report button event */ rt5682->jack_type = SND_JACK_HEADSET; btn_type = rt5682_button_detect(rt5682->component);