diff options
-rw-r--r-- | sound/pci/hda/patch_via.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 63b0054200a8..5bc9bd983e86 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -1101,6 +1101,7 @@ static int via_mux_enum_put(struct snd_kcontrol *kcontrol, | |||
1101 | struct hda_codec *codec = snd_kcontrol_chip(kcontrol); | 1101 | struct hda_codec *codec = snd_kcontrol_chip(kcontrol); |
1102 | struct via_spec *spec = codec->spec; | 1102 | struct via_spec *spec = codec->spec; |
1103 | unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); | 1103 | unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); |
1104 | int ret; | ||
1104 | 1105 | ||
1105 | if (!spec->mux_nids[adc_idx]) | 1106 | if (!spec->mux_nids[adc_idx]) |
1106 | return -EINVAL; | 1107 | return -EINVAL; |
@@ -1109,12 +1110,14 @@ static int via_mux_enum_put(struct snd_kcontrol *kcontrol, | |||
1109 | AC_VERB_GET_POWER_STATE, 0x00) != AC_PWRST_D0) | 1110 | AC_VERB_GET_POWER_STATE, 0x00) != AC_PWRST_D0) |
1110 | snd_hda_codec_write(codec, spec->mux_nids[adc_idx], 0, | 1111 | snd_hda_codec_write(codec, spec->mux_nids[adc_idx], 0, |
1111 | AC_VERB_SET_POWER_STATE, AC_PWRST_D0); | 1112 | AC_VERB_SET_POWER_STATE, AC_PWRST_D0); |
1112 | /* update jack power state */ | ||
1113 | set_jack_power_state(codec); | ||
1114 | 1113 | ||
1115 | return snd_hda_input_mux_put(codec, spec->input_mux, ucontrol, | 1114 | ret = snd_hda_input_mux_put(codec, spec->input_mux, ucontrol, |
1116 | spec->mux_nids[adc_idx], | 1115 | spec->mux_nids[adc_idx], |
1117 | &spec->cur_mux[adc_idx]); | 1116 | &spec->cur_mux[adc_idx]); |
1117 | /* update jack power state */ | ||
1118 | set_jack_power_state(codec); | ||
1119 | |||
1120 | return ret; | ||
1118 | } | 1121 | } |
1119 | 1122 | ||
1120 | static int via_independent_hp_info(struct snd_kcontrol *kcontrol, | 1123 | static int via_independent_hp_info(struct snd_kcontrol *kcontrol, |