|
@@ -3083,16 +3083,22 @@ static void alc_auto_init_multi_out(struct hda_codec *codec)
|
|
|
static void alc_auto_init_extra_out(struct hda_codec *codec)
|
|
|
{
|
|
|
struct alc_spec *spec = codec->spec;
|
|
|
- hda_nid_t pin;
|
|
|
+ hda_nid_t pin, dac;
|
|
|
|
|
|
pin = spec->autocfg.hp_pins[0];
|
|
|
- if (pin)
|
|
|
- alc_auto_set_output_and_unmute(codec, pin, PIN_HP,
|
|
|
- spec->multiout.hp_nid);
|
|
|
+ if (pin) {
|
|
|
+ dac = spec->multiout.hp_nid;
|
|
|
+ if (!dac)
|
|
|
+ dac = spec->multiout.dac_nids[0];
|
|
|
+ alc_auto_set_output_and_unmute(codec, pin, PIN_HP, dac);
|
|
|
+ }
|
|
|
pin = spec->autocfg.speaker_pins[0];
|
|
|
- if (pin)
|
|
|
- alc_auto_set_output_and_unmute(codec, pin, PIN_OUT,
|
|
|
- spec->multiout.extra_out_nid[0]);
|
|
|
+ if (pin) {
|
|
|
+ dac = spec->multiout.extra_out_nid[0];
|
|
|
+ if (!dac)
|
|
|
+ dac = spec->multiout.dac_nids[0];
|
|
|
+ alc_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*
|