All these two output device can be enabled and disabled independently.
Signed-off-by: Lu Guanqun guanqun.lu@intel.com --- sound/soc/mid-x86/mrst_machine.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/sound/soc/mid-x86/mrst_machine.c b/sound/soc/mid-x86/mrst_machine.c index 0bce388..b4d542e 100644 --- a/sound/soc/mid-x86/mrst_machine.c +++ b/sound/soc/mid-x86/mrst_machine.c @@ -36,6 +36,11 @@ #include <sound/pcm_params.h> #include <sound/soc.h>
+static const struct snd_kcontrol_new mrst_snd_controls[] = { + SOC_DAPM_PIN_SWITCH("Headphone"), + SOC_DAPM_PIN_SWITCH("Speaker"), +}; + /* * GPIO pin to power on/off Internal Speaker */ @@ -85,13 +90,19 @@ static int mrst_audio_init(struct snd_soc_pcm_runtime *runtime) if (ret) return ret;
+ ret = snd_soc_add_controls(codec, + mrst_snd_controls, + ARRAY_SIZE(mrst_snd_controls)); + if (ret) + return ret; + snd_soc_dapm_nc_pin(dapm, "LINEINL"); snd_soc_dapm_nc_pin(dapm, "LINEINR"); snd_soc_dapm_nc_pin(dapm, "LINEOUTL"); snd_soc_dapm_nc_pin(dapm, "LINEOUTR");
- snd_soc_dapm_enable_pin(dapm, "Headphone"); - snd_soc_dapm_disable_pin(dapm, "Speaker"); + snd_soc_dapm_disable_pin(dapm, "Headphone"); + snd_soc_dapm_enable_pin(dapm, "Speaker");
snd_soc_dapm_sync(dapm);