[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>
This commit is contained in:
parent
82fb159aa3
commit
1b290a510c
|
@ -334,8 +334,6 @@ static struct snd_kcontrol_new stac9200_mixer[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_kcontrol_new stac925x_mixer[] = {
|
static struct snd_kcontrol_new stac925x_mixer[] = {
|
||||||
HDA_CODEC_VOLUME("Master Playback Volume", 0xe, 0, HDA_OUTPUT),
|
|
||||||
HDA_CODEC_MUTE("Master Playback Switch", 0xe, 0, HDA_OUTPUT),
|
|
||||||
{
|
{
|
||||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||||
.name = "Input Source",
|
.name = "Input Source",
|
||||||
|
@ -1401,7 +1399,15 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec,
|
||||||
continue;
|
continue;
|
||||||
add_spec_dacs(spec, nid);
|
add_spec_dacs(spec, nid);
|
||||||
}
|
}
|
||||||
|
for (i = 0; i < cfg->line_outs; i++) {
|
||||||
|
nid = snd_hda_codec_read(codec, cfg->line_out_pins[i], 0,
|
||||||
|
AC_VERB_GET_CONNECT_LIST, 0) & 0xff;
|
||||||
|
if (check_in_dac_nids(spec, nid))
|
||||||
|
nid = 0;
|
||||||
|
if (! nid)
|
||||||
|
continue;
|
||||||
|
add_spec_dacs(spec, nid);
|
||||||
|
}
|
||||||
for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) {
|
for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) {
|
||||||
static const char *pfxs[] = {
|
static const char *pfxs[] = {
|
||||||
"Speaker", "External Speaker", "Speaker2",
|
"Speaker", "External Speaker", "Speaker2",
|
||||||
|
|
Loading…
Reference in New Issue