OSDN Git Service

ASoC: rt5682: cancel jack_detect_work if hs_jack is set to null even soundwire mode
authorOder Chiou <oder_chiou@realtek.com>
Wed, 1 Jul 2020 07:16:45 +0000 (15:16 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 1 Jul 2020 13:20:00 +0000 (14:20 +0100)
Base on https://patchwork.kernel.org/patch/11237953/
Soundwire mode also should follow it.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Link: https://lore.kernel.org/r/20200701071645.32061-1-oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5682.c

index 7d6670a..dd74183 100644 (file)
@@ -992,16 +992,17 @@ static int rt5682_set_jack_detect(struct snd_soc_component *component,
 
        rt5682->hs_jack = hs_jack;
 
-       if (!rt5682->is_sdw) {
-               if (!hs_jack) {
-                       regmap_update_bits(rt5682->regmap, RT5682_IRQ_CTRL_2,
-                               RT5682_JD1_EN_MASK, RT5682_JD1_DIS);
-                       regmap_update_bits(rt5682->regmap, RT5682_RC_CLK_CTRL,
-                               RT5682_POW_JDH | RT5682_POW_JDL, 0);
-                       cancel_delayed_work_sync(&rt5682->jack_detect_work);
-                       return 0;
-               }
+       if (!hs_jack) {
+               regmap_update_bits(rt5682->regmap, RT5682_IRQ_CTRL_2,
+                       RT5682_JD1_EN_MASK, RT5682_JD1_DIS);
+               regmap_update_bits(rt5682->regmap, RT5682_RC_CLK_CTRL,
+                       RT5682_POW_JDH | RT5682_POW_JDL, 0);
+               cancel_delayed_work_sync(&rt5682->jack_detect_work);
 
+               return 0;
+       }
+
+       if (!rt5682->is_sdw) {
                switch (rt5682->pdata.jd_src) {
                case RT5682_JD1:
                        snd_soc_component_update_bits(component,