|
@@ -68,26 +68,30 @@ static void n810_ext_control(struct snd_soc_dapm_context *dapm)
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ snd_soc_dapm_mutex_lock(dapm);
|
|
|
+
|
|
|
if (n810_spk_func)
|
|
|
- snd_soc_dapm_enable_pin(dapm, "Ext Spk");
|
|
|
+ snd_soc_dapm_enable_pin_unlocked(dapm, "Ext Spk");
|
|
|
else
|
|
|
- snd_soc_dapm_disable_pin(dapm, "Ext Spk");
|
|
|
+ snd_soc_dapm_disable_pin_unlocked(dapm, "Ext Spk");
|
|
|
|
|
|
if (hp)
|
|
|
- snd_soc_dapm_enable_pin(dapm, "Headphone Jack");
|
|
|
+ snd_soc_dapm_enable_pin_unlocked(dapm, "Headphone Jack");
|
|
|
else
|
|
|
- snd_soc_dapm_disable_pin(dapm, "Headphone Jack");
|
|
|
+ snd_soc_dapm_disable_pin_unlocked(dapm, "Headphone Jack");
|
|
|
if (line1l)
|
|
|
- snd_soc_dapm_enable_pin(dapm, "LINE1L");
|
|
|
+ snd_soc_dapm_enable_pin_unlocked(dapm, "LINE1L");
|
|
|
else
|
|
|
- snd_soc_dapm_disable_pin(dapm, "LINE1L");
|
|
|
+ snd_soc_dapm_disable_pin_unlocked(dapm, "LINE1L");
|
|
|
|
|
|
if (n810_dmic_func)
|
|
|
- snd_soc_dapm_enable_pin(dapm, "DMic");
|
|
|
+ snd_soc_dapm_enable_pin_unlocked(dapm, "DMic");
|
|
|
else
|
|
|
- snd_soc_dapm_disable_pin(dapm, "DMic");
|
|
|
+ snd_soc_dapm_disable_pin_unlocked(dapm, "DMic");
|
|
|
+
|
|
|
+ snd_soc_dapm_sync_unlocked(dapm);
|
|
|
|
|
|
- snd_soc_dapm_sync(dapm);
|
|
|
+ snd_soc_dapm_mutex_unlock(dapm);
|
|
|
}
|
|
|
|
|
|
static int n810_startup(struct snd_pcm_substream *substream)
|