ALSA: hda - Fix initialization of multi-speaker output paths for Realtek
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
5fa9b15112
commit
8cd0775da2
@ -3223,6 +3223,7 @@ static void alc_auto_init_multi_out(struct hda_codec *codec)
|
|||||||
static void alc_auto_init_extra_out(struct hda_codec *codec)
|
static void alc_auto_init_extra_out(struct hda_codec *codec)
|
||||||
{
|
{
|
||||||
struct alc_spec *spec = codec->spec;
|
struct alc_spec *spec = codec->spec;
|
||||||
|
int i;
|
||||||
hda_nid_t pin, dac;
|
hda_nid_t pin, dac;
|
||||||
|
|
||||||
pin = spec->autocfg.hp_pins[0];
|
pin = spec->autocfg.hp_pins[0];
|
||||||
@ -3232,11 +3233,17 @@ static void alc_auto_init_extra_out(struct hda_codec *codec)
|
|||||||
dac = spec->multiout.dac_nids[0];
|
dac = spec->multiout.dac_nids[0];
|
||||||
alc_auto_set_output_and_unmute(codec, pin, PIN_HP, dac);
|
alc_auto_set_output_and_unmute(codec, pin, PIN_HP, dac);
|
||||||
}
|
}
|
||||||
pin = spec->autocfg.speaker_pins[0];
|
for (i = 0; i < spec->autocfg.speaker_outs; i++) {
|
||||||
if (pin) {
|
pin = spec->autocfg.speaker_pins[i];
|
||||||
dac = spec->multiout.extra_out_nid[0];
|
if (!pin)
|
||||||
if (!dac)
|
break;
|
||||||
dac = spec->multiout.dac_nids[0];
|
dac = spec->multiout.extra_out_nid[i];
|
||||||
|
if (!dac) {
|
||||||
|
if (i > 0 && spec->multiout.extra_out_nid[0])
|
||||||
|
dac = spec->multiout.extra_out_nid[0];
|
||||||
|
else
|
||||||
|
dac = spec->multiout.dac_nids[0];
|
||||||
|
}
|
||||||
alc_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac);
|
alc_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user