diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d6ec9eef2910..635748b122e9 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -14066,6 +14066,13 @@ static struct hda_verb alc662_auto_init_verbs[] = { | |||
| 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 | static struct hda_verb alc663_m51va_init_verbs[] = { | 14076 | static struct hda_verb alc663_m51va_init_verbs[] = { |
| 14070 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 14077 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
| 14071 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 14078 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
| @@ -14594,6 +14601,14 @@ static int alc662_auto_create_extra_out(struct alc_spec *spec, hda_nid_t pin, | |||
| 14594 | if (!pin) | 14601 | if (!pin) |
| 14595 | return 0; | 14602 | return 0; |
| 14596 | 14603 | ||
| 14604 | if (pin == 0x17) { | ||
| 14605 | /* ALC663 has a mono output pin on 0x17 */ | ||
| 14606 | sprintf(name, "%s Playback Switch", pfx); | ||
| 14607 | err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, | ||
| 14608 | HDA_COMPOSE_AMP_VAL(pin, 2, 0, HDA_OUTPUT)); | ||
| 14609 | return err; | ||
| 14610 | } | ||
| 14611 | |||
| 14597 | if (alc880_is_fixed_pin(pin)) { | 14612 | if (alc880_is_fixed_pin(pin)) { |
| 14598 | nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin)); | 14613 | nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin)); |
| 14599 | /* printk("DAC nid=%x\n",nid); */ | 14614 | /* printk("DAC nid=%x\n",nid); */ |
| @@ -14764,6 +14779,9 @@ static int alc662_parse_auto_config(struct hda_codec *codec) | |||
| 14764 | spec->input_mux = &spec->private_imux; | 14779 | spec->input_mux = &spec->private_imux; |
| 14765 | 14780 | ||
| 14766 | spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs; | 14781 | spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs; |
| 14782 | if (codec->vendor_id == 0x10ec0663) | ||
| 14783 | spec->init_verbs[spec->num_init_verbs++] = | ||
| 14784 | alc663_auto_init_verbs; | ||
| 14767 | spec->mixers[spec->num_mixers] = alc662_capture_mixer; | 14785 | spec->mixers[spec->num_mixers] = alc662_capture_mixer; |
| 14768 | spec->num_mixers++; | 14786 | spec->num_mixers++; |
| 14769 | return 1; | 14787 | return 1; |
