]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ASoC: rt5645: Simplify rt5645_enable_push_button_irq
authorNicolas Boichat <drinkcat@chromium.org>
Thu, 16 Jul 2015 05:42:34 +0000 (13:42 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 16 Jul 2015 12:10:47 +0000 (13:10 +0100)
LDO2/Mic Det Power pins are already enabled/disabled in rt5645_jack_detect
(the jack out code path previously did not disable those if button function
is enabled: modify it to make it so).

Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5645.c

index 33d1aff38d5ffdac7e86d6bd7edc5bd78eff89f6..11a2bfc4a05991cf01405d47c50692b67d76a9cd 100644 (file)
@@ -2766,13 +2766,9 @@ static void rt5645_enable_push_button_irq(struct snd_soc_codec *codec,
        struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec);
 
        if (enable) {
-               snd_soc_dapm_mutex_lock(dapm);
-               snd_soc_dapm_force_enable_pin_unlocked(dapm, "ADC L power");
-               snd_soc_dapm_force_enable_pin_unlocked(dapm, "ADC R power");
-               snd_soc_dapm_force_enable_pin_unlocked(dapm, "LDO2");
-               snd_soc_dapm_force_enable_pin_unlocked(dapm, "Mic Det Power");
-               snd_soc_dapm_sync_unlocked(dapm);
-               snd_soc_dapm_mutex_unlock(dapm);
+               snd_soc_dapm_force_enable_pin(dapm, "ADC L power");
+               snd_soc_dapm_force_enable_pin(dapm, "ADC R power");
+               snd_soc_dapm_sync(dapm);
 
                snd_soc_update_bits(codec,
                                        RT5645_INT_IRQ_ST, 0x8, 0x8);
@@ -2785,14 +2781,9 @@ static void rt5645_enable_push_button_irq(struct snd_soc_codec *codec,
                snd_soc_update_bits(codec, RT5650_4BTN_IL_CMD2, 0x8000, 0x0);
                snd_soc_update_bits(codec, RT5645_INT_IRQ_ST, 0x8, 0x0);
 
-               snd_soc_dapm_mutex_lock(dapm);
-               snd_soc_dapm_disable_pin_unlocked(dapm, "ADC L power");
-               snd_soc_dapm_disable_pin_unlocked(dapm, "ADC R power");
-               if (rt5645->pdata.jd_mode == 0)
-                       snd_soc_dapm_disable_pin_unlocked(dapm, "LDO2");
-               snd_soc_dapm_disable_pin_unlocked(dapm, "Mic Det Power");
-               snd_soc_dapm_sync_unlocked(dapm);
-               snd_soc_dapm_mutex_unlock(dapm);
+               snd_soc_dapm_disable_pin(dapm, "ADC L power");
+               snd_soc_dapm_disable_pin(dapm, "ADC R power");
+               snd_soc_dapm_sync(dapm);
        }
 }
 
@@ -2847,14 +2838,14 @@ static int rt5645_jack_detect(struct snd_soc_codec *codec, int jack_insert)
 
        } else { /* jack out */
                rt5645->jack_type = 0;
+
                if (rt5645->en_button_func)
                        rt5645_enable_push_button_irq(codec, false);
-               else {
-                       if (rt5645->pdata.jd_mode == 0)
-                               snd_soc_dapm_disable_pin(dapm, "LDO2");
-                       snd_soc_dapm_disable_pin(dapm, "Mic Det Power");
-                       snd_soc_dapm_sync(dapm);
-               }
+
+               if (rt5645->pdata.jd_mode == 0)
+                       snd_soc_dapm_disable_pin(dapm, "LDO2");
+               snd_soc_dapm_disable_pin(dapm, "Mic Det Power");
+               snd_soc_dapm_sync(dapm);
        }
 
        return rt5645->jack_type;