aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorMatthew Ranostay <mranostay@embeddedalley.com>2007-07-12 09:17:34 -0400
committerJaroslav Kysela <perex@suse.cz>2007-07-20 05:11:51 -0400
commit1b290a510c12be91b6a2f7d6a07ef61b8ee9f06a (patch)
tree6951ae6804ab910ba262b3e8b685ad7230a4f181 /sound/pci/hda
parent82fb159aa3d187aac0fce076739d7d8884e7a0af (diff)
[ALSA] hda: stac9202 mixer fix
Added support for line out controls for STAC9202 cards, and fixed issue where master mixer control was being created twice for headphone and speaker outs. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/patch_sigmatel.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 0dccba231e8b..be53e9685bc0 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -334,8 +334,6 @@ static struct snd_kcontrol_new stac9200_mixer[] = {
334}; 334};
335 335
336static struct snd_kcontrol_new stac925x_mixer[] = { 336static struct snd_kcontrol_new stac925x_mixer[] = {
337 HDA_CODEC_VOLUME("Master Playback Volume", 0xe, 0, HDA_OUTPUT),
338 HDA_CODEC_MUTE("Master Playback Switch", 0xe, 0, HDA_OUTPUT),
339 { 337 {
340 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 338 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
341 .name = "Input Source", 339 .name = "Input Source",
@@ -1401,7 +1399,15 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec,
1401 continue; 1399 continue;
1402 add_spec_dacs(spec, nid); 1400 add_spec_dacs(spec, nid);
1403 } 1401 }
1404 1402 for (i = 0; i < cfg->line_outs; i++) {
1403 nid = snd_hda_codec_read(codec, cfg->line_out_pins[i], 0,
1404 AC_VERB_GET_CONNECT_LIST, 0) & 0xff;
1405 if (check_in_dac_nids(spec, nid))
1406 nid = 0;
1407 if (! nid)
1408 continue;
1409 add_spec_dacs(spec, nid);
1410 }
1405 for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) { 1411 for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) {
1406 static const char *pfxs[] = { 1412 static const char *pfxs[] = {
1407 "Speaker", "External Speaker", "Speaker2", 1413 "Speaker", "External Speaker", "Speaker2",