ALSA: hda - Fix ALC663 auto-probe

Fix the wrong DAC assignment for NID 0x17 mono-pin on ALC663.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

+18
+18
sound/pci/hda/patch_realtek.c
··· 14066 14066 { } 14067 14067 }; 14068 14068 14069 + /* additional verbs for ALC663 */ 14070 + static struct hda_verb alc663_auto_init_verbs[] = { 14071 + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, 14072 + {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, 14073 + { } 14074 + }; 14075 + 14069 14076 static struct hda_verb alc663_m51va_init_verbs[] = { 14070 14077 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, 14071 14078 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, ··· 14601 14594 if (!pin) 14602 14595 return 0; 14603 14596 14597 + if (pin == 0x17) { 14598 + /* ALC663 has a mono output pin on 0x17 */ 14599 + sprintf(name, "%s Playback Switch", pfx); 14600 + err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, 14601 + HDA_COMPOSE_AMP_VAL(pin, 2, 0, HDA_OUTPUT)); 14602 + return err; 14603 + } 14604 + 14604 14605 if (alc880_is_fixed_pin(pin)) { 14605 14606 nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin)); 14606 14607 /* printk("DAC nid=%x\n",nid); */ ··· 14779 14764 spec->input_mux = &spec->private_imux; 14780 14765 14781 14766 spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs; 14767 + if (codec->vendor_id == 0x10ec0663) 14768 + spec->init_verbs[spec->num_init_verbs++] = 14769 + alc663_auto_init_verbs; 14782 14770 spec->mixers[spec->num_mixers] = alc662_capture_mixer; 14783 14771 spec->num_mixers++; 14784 14772 return 1;