aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c27
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 }