diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index f1a03f22349..5d582de91c1 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1265,6 +1265,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) | |||
1265 | case 0x10ec0660: | 1265 | case 0x10ec0660: |
1266 | case 0x10ec0662: | 1266 | case 0x10ec0662: |
1267 | case 0x10ec0663: | 1267 | case 0x10ec0663: |
1268 | case 0x10ec0665: | ||
1268 | case 0x10ec0862: | 1269 | case 0x10ec0862: |
1269 | case 0x10ec0889: | 1270 | case 0x10ec0889: |
1270 | set_eapd(codec, 0x14, 1); | 1271 | set_eapd(codec, 0x14, 1); |
@@ -4240,6 +4241,7 @@ static void alc_power_eapd(struct hda_codec *codec) | |||
4240 | case 0x10ec0660: | 4241 | case 0x10ec0660: |
4241 | case 0x10ec0662: | 4242 | case 0x10ec0662: |
4242 | case 0x10ec0663: | 4243 | case 0x10ec0663: |
4244 | case 0x10ec0665: | ||
4243 | case 0x10ec0862: | 4245 | case 0x10ec0862: |
4244 | case 0x10ec0889: | 4246 | case 0x10ec0889: |
4245 | set_eapd(codec, 0x14, 0); | 4247 | set_eapd(codec, 0x14, 0); |
@@ -16006,9 +16008,12 @@ static int alc861_auto_create_multi_out_ctls(struct hda_codec *codec, | |||
16006 | return err; | 16008 | return err; |
16007 | } else { | 16009 | } else { |
16008 | const char *name = pfx; | 16010 | const char *name = pfx; |
16009 | if (!name) | 16011 | int index = i; |
16012 | if (!name) { | ||
16010 | name = chname[i]; | 16013 | name = chname[i]; |
16011 | err = __alc861_create_out_sw(codec, name, nid, i, 3); | 16014 | index = 0; |
16015 | } | ||
16016 | err = __alc861_create_out_sw(codec, name, nid, index, 3); | ||
16012 | if (err < 0) | 16017 | if (err < 0) |
16013 | return err; | 16018 | return err; |
16014 | } | 16019 | } |
@@ -17159,16 +17164,19 @@ static int alc861vd_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
17159 | return err; | 17164 | return err; |
17160 | } else { | 17165 | } else { |
17161 | const char *name = pfx; | 17166 | const char *name = pfx; |
17162 | if (!name) | 17167 | int index = i; |
17168 | if (!name) { | ||
17163 | name = chname[i]; | 17169 | name = chname[i]; |
17170 | index = 0; | ||
17171 | } | ||
17164 | err = __add_pb_vol_ctrl(spec, ALC_CTL_WIDGET_VOL, | 17172 | err = __add_pb_vol_ctrl(spec, ALC_CTL_WIDGET_VOL, |
17165 | name, i, | 17173 | name, index, |
17166 | HDA_COMPOSE_AMP_VAL(nid_v, 3, 0, | 17174 | HDA_COMPOSE_AMP_VAL(nid_v, 3, 0, |
17167 | HDA_OUTPUT)); | 17175 | HDA_OUTPUT)); |
17168 | if (err < 0) | 17176 | if (err < 0) |
17169 | return err; | 17177 | return err; |
17170 | err = __add_pb_sw_ctrl(spec, ALC_CTL_BIND_MUTE, | 17178 | err = __add_pb_sw_ctrl(spec, ALC_CTL_BIND_MUTE, |
17171 | name, i, | 17179 | name, index, |
17172 | HDA_COMPOSE_AMP_VAL(nid_s, 3, 2, | 17180 | HDA_COMPOSE_AMP_VAL(nid_s, 3, 2, |
17173 | HDA_INPUT)); | 17181 | HDA_INPUT)); |
17174 | if (err < 0) | 17182 | if (err < 0) |
@@ -19217,12 +19225,15 @@ static int alc662_auto_create_multi_out_ctls(struct hda_codec *codec, | |||
19217 | return err; | 19225 | return err; |
19218 | } else { | 19226 | } else { |
19219 | const char *name = pfx; | 19227 | const char *name = pfx; |
19220 | if (!name) | 19228 | int index = i; |
19229 | if (!name) { | ||
19221 | name = chname[i]; | 19230 | name = chname[i]; |
19222 | err = __alc662_add_vol_ctl(spec, name, nid, i, 3); | 19231 | index = 0; |
19232 | } | ||
19233 | err = __alc662_add_vol_ctl(spec, name, nid, index, 3); | ||
19223 | if (err < 0) | 19234 | if (err < 0) |
19224 | return err; | 19235 | return err; |
19225 | err = __alc662_add_sw_ctl(spec, name, mix, i, 3); | 19236 | err = __alc662_add_sw_ctl(spec, name, mix, index, 3); |
19226 | if (err < 0) | 19237 | if (err < 0) |
19227 | return err; | 19238 | return err; |
19228 | } | 19239 | } |