diff options
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 206fcb930a65..ce098b20cdfb 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -17018,13 +17018,25 @@ static int alc662_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
17018 | if (err < 0) | 17018 | if (err < 0) |
17019 | return err; | 17019 | return err; |
17020 | } else { | 17020 | } else { |
17021 | sprintf(name, "%s Playback Volume", chname[i]); | 17021 | const char *pfx; |
17022 | if (cfg->line_outs == 1 && | ||
17023 | cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { | ||
17024 | if (!cfg->hp_pins) | ||
17025 | pfx = "Speaker"; | ||
17026 | else | ||
17027 | pfx = "PCM"; | ||
17028 | } else | ||
17029 | pfx = chname[i]; | ||
17030 | sprintf(name, "%s Playback Volume", pfx); | ||
17022 | err = add_control(spec, ALC_CTL_WIDGET_VOL, name, | 17031 | err = add_control(spec, ALC_CTL_WIDGET_VOL, name, |
17023 | HDA_COMPOSE_AMP_VAL(nid, 3, 0, | 17032 | HDA_COMPOSE_AMP_VAL(nid, 3, 0, |
17024 | HDA_OUTPUT)); | 17033 | HDA_OUTPUT)); |
17025 | if (err < 0) | 17034 | if (err < 0) |
17026 | return err; | 17035 | return err; |
17027 | sprintf(name, "%s Playback Switch", chname[i]); | 17036 | if (cfg->line_outs == 1 && |
17037 | cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) | ||
17038 | pfx = "Speaker"; | ||
17039 | sprintf(name, "%s Playback Switch", pfx); | ||
17028 | err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, | 17040 | err = add_control(spec, ALC_CTL_WIDGET_MUTE, name, |
17029 | HDA_COMPOSE_AMP_VAL(alc880_idx_to_mixer(i), | 17041 | HDA_COMPOSE_AMP_VAL(alc880_idx_to_mixer(i), |
17030 | 3, 0, HDA_INPUT)); | 17042 | 3, 0, HDA_INPUT)); |