diff options
author | Matthew Ranostay <mranostay@embeddedalley.com> | 2007-07-12 09:17:34 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-07-20 05:11:51 -0400 |
commit | 1b290a510c12be91b6a2f7d6a07ef61b8ee9f06a (patch) | |
tree | 6951ae6804ab910ba262b3e8b685ad7230a4f181 /sound/pci | |
parent | 82fb159aa3d187aac0fce076739d7d8884e7a0af (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')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 12 |
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 | ||
336 | static struct snd_kcontrol_new stac925x_mixer[] = { | 336 | static 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", |