aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_sigmatel.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-02-12 12:37:26 -0500
committerTakashi Iwai <tiwai@suse.de>2008-04-24 06:00:10 -0400
commit9a08160bdbe3148a405f72798f76e2a5d30bd243 (patch)
tree33b6785feb1fda1d381a74ef19eb26c983650749 /sound/pci/hda/patch_sigmatel.c
parentf6c7e5461e9046445d50c5c7a9a4587824239623 (diff)
[ALSA] hda-codec - Add "IEC958 Default PCM" switch
Added a new mixer switch to enable/disable the sharing of the default PCM stream with analog and SPDIF outputs. When "IEC958 Default PCM" switch is on, the PCM stream is routed both to analog and SPDIF outputs. This is the behavior in the earlier version. Turning this switch off has a merit for some codecs, though. Some codec chips don't support 24bit formats for SPDIF but only for analog outputs. In this case, you can use 24bit format by disabling this switch. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
-rw-r--r--sound/pci/hda/patch_sigmatel.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 7f506ef0accb..7901e76f2690 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -916,6 +916,11 @@ static int stac92xx_build_controls(struct hda_codec *codec)
916 err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid); 916 err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid);
917 if (err < 0) 917 if (err < 0)
918 return err; 918 return err;
919 err = snd_hda_create_spdif_share_sw(codec,
920 &spec->multiout);
921 if (err < 0)
922 return err;
923 spec->multiout.share_spdif = 1;
919 } 924 }
920 if (spec->dig_in_nid) { 925 if (spec->dig_in_nid) {
921 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid); 926 err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid);
@@ -1748,7 +1753,8 @@ static int stac92xx_playback_pcm_open(struct hda_pcm_stream *hinfo,
1748 struct snd_pcm_substream *substream) 1753 struct snd_pcm_substream *substream)
1749{ 1754{
1750 struct sigmatel_spec *spec = codec->spec; 1755 struct sigmatel_spec *spec = codec->spec;
1751 return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream); 1756 return snd_hda_multi_out_analog_open(codec, &spec->multiout, substream,
1757 hinfo);
1752} 1758}
1753 1759
1754static int stac92xx_playback_pcm_prepare(struct hda_pcm_stream *hinfo, 1760static int stac92xx_playback_pcm_prepare(struct hda_pcm_stream *hinfo,