Loading sound/soc/codecs/wm8994.c +27 −18 Original line number Diff line number Diff line Loading @@ -2549,43 +2549,52 @@ static int wm8994_set_bias_level(struct snd_soc_codec *codec, int wm8994_vmid_mode(struct snd_soc_codec *codec, enum wm8994_vmid_mode mode) { struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); struct snd_soc_dapm_context *dapm = &codec->dapm; switch (mode) { case WM8994_VMID_NORMAL: snd_soc_dapm_mutex_lock(dapm); if (wm8994->hubs.lineout1_se) { snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT1N Driver"); snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT1P Driver"); } if (wm8994->hubs.lineout2_se) { snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT2N Driver"); snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT2P Driver"); } /* Do the sync with the old mode to allow it to clean up */ snd_soc_dapm_sync(&codec->dapm); snd_soc_dapm_sync_unlocked(dapm); wm8994->vmid_mode = mode; snd_soc_dapm_mutex_unlock(dapm); break; case WM8994_VMID_FORCE: snd_soc_dapm_mutex_lock(dapm); if (wm8994->hubs.lineout1_se) { snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT1N Driver"); snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT1P Driver"); } if (wm8994->hubs.lineout2_se) { snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT2N Driver"); snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT2P Driver"); } wm8994->vmid_mode = mode; snd_soc_dapm_sync(&codec->dapm); snd_soc_dapm_sync_unlocked(dapm); snd_soc_dapm_mutex_unlock(dapm); break; default: Loading Loading
sound/soc/codecs/wm8994.c +27 −18 Original line number Diff line number Diff line Loading @@ -2549,43 +2549,52 @@ static int wm8994_set_bias_level(struct snd_soc_codec *codec, int wm8994_vmid_mode(struct snd_soc_codec *codec, enum wm8994_vmid_mode mode) { struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); struct snd_soc_dapm_context *dapm = &codec->dapm; switch (mode) { case WM8994_VMID_NORMAL: snd_soc_dapm_mutex_lock(dapm); if (wm8994->hubs.lineout1_se) { snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT1N Driver"); snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT1P Driver"); } if (wm8994->hubs.lineout2_se) { snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT2N Driver"); snd_soc_dapm_disable_pin(&codec->dapm, snd_soc_dapm_disable_pin_unlocked(dapm, "LINEOUT2P Driver"); } /* Do the sync with the old mode to allow it to clean up */ snd_soc_dapm_sync(&codec->dapm); snd_soc_dapm_sync_unlocked(dapm); wm8994->vmid_mode = mode; snd_soc_dapm_mutex_unlock(dapm); break; case WM8994_VMID_FORCE: snd_soc_dapm_mutex_lock(dapm); if (wm8994->hubs.lineout1_se) { snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT1N Driver"); snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT1P Driver"); } if (wm8994->hubs.lineout2_se) { snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT2N Driver"); snd_soc_dapm_force_enable_pin(&codec->dapm, snd_soc_dapm_force_enable_pin_unlocked(dapm, "LINEOUT2P Driver"); } wm8994->vmid_mode = mode; snd_soc_dapm_sync(&codec->dapm); snd_soc_dapm_sync_unlocked(dapm); snd_soc_dapm_mutex_unlock(dapm); break; default: Loading