|
@@ -10773,23 +10773,28 @@ static void alc882_auto_init_hp_out(struct hda_codec *codec)
|
|
|
hda_nid_t pin, dac;
|
|
|
int i;
|
|
|
|
|
|
- for (i = 0; i < ARRAY_SIZE(spec->autocfg.hp_pins); i++) {
|
|
|
- pin = spec->autocfg.hp_pins[i];
|
|
|
- if (!pin)
|
|
|
- break;
|
|
|
- dac = spec->multiout.hp_nid;
|
|
|
- if (!dac)
|
|
|
- dac = spec->multiout.dac_nids[0]; /* to front */
|
|
|
- alc882_auto_set_output_and_unmute(codec, pin, PIN_HP, dac);
|
|
|
+ if (spec->autocfg.line_out_type != AUTO_PIN_HP_OUT) {
|
|
|
+ for (i = 0; i < ARRAY_SIZE(spec->autocfg.hp_pins); i++) {
|
|
|
+ pin = spec->autocfg.hp_pins[i];
|
|
|
+ if (!pin)
|
|
|
+ break;
|
|
|
+ dac = spec->multiout.hp_nid;
|
|
|
+ if (!dac)
|
|
|
+ dac = spec->multiout.dac_nids[0]; /* to front */
|
|
|
+ alc882_auto_set_output_and_unmute(codec, pin, PIN_HP, dac);
|
|
|
+ }
|
|
|
}
|
|
|
- for (i = 0; i < ARRAY_SIZE(spec->autocfg.speaker_pins); i++) {
|
|
|
- pin = spec->autocfg.speaker_pins[i];
|
|
|
- if (!pin)
|
|
|
- break;
|
|
|
- dac = spec->multiout.extra_out_nid[0];
|
|
|
- if (!dac)
|
|
|
- dac = spec->multiout.dac_nids[0]; /* to front */
|
|
|
- alc882_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac);
|
|
|
+
|
|
|
+ if (spec->autocfg.line_out_type != AUTO_PIN_SPEAKER_OUT) {
|
|
|
+ for (i = 0; i < ARRAY_SIZE(spec->autocfg.speaker_pins); i++) {
|
|
|
+ pin = spec->autocfg.speaker_pins[i];
|
|
|
+ if (!pin)
|
|
|
+ break;
|
|
|
+ dac = spec->multiout.extra_out_nid[0];
|
|
|
+ if (!dac)
|
|
|
+ dac = spec->multiout.dac_nids[0]; /* to front */
|
|
|
+ alc882_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|