diff options
Diffstat (limited to 'sound/pci/hda/patch_via.c')
-rw-r--r-- | sound/pci/hda/patch_via.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 90645560ed39..80d90cb42853 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -3226,7 +3226,7 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec) | |||
3226 | { | 3226 | { |
3227 | struct via_spec *spec = codec->spec; | 3227 | struct via_spec *spec = codec->spec; |
3228 | int imux_is_smixer; | 3228 | int imux_is_smixer; |
3229 | unsigned int parm; | 3229 | unsigned int parm, parm2; |
3230 | /* MUX6 (1eh) = stereo mixer */ | 3230 | /* MUX6 (1eh) = stereo mixer */ |
3231 | imux_is_smixer = | 3231 | imux_is_smixer = |
3232 | snd_hda_codec_read(codec, 0x1e, 0, AC_VERB_GET_CONNECT_SEL, 0x00) == 5; | 3232 | snd_hda_codec_read(codec, 0x1e, 0, AC_VERB_GET_CONNECT_SEL, 0x00) == 5; |
@@ -3249,7 +3249,7 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec) | |||
3249 | parm = AC_PWRST_D3; | 3249 | parm = AC_PWRST_D3; |
3250 | set_pin_power_state(codec, 0x27, &parm); | 3250 | set_pin_power_state(codec, 0x27, &parm); |
3251 | update_power_state(codec, 0x1a, parm); | 3251 | update_power_state(codec, 0x1a, parm); |
3252 | update_power_state(codec, 0xb, parm); | 3252 | parm2 = parm; /* for pin 0x0b */ |
3253 | 3253 | ||
3254 | /* PW2 (26h), AOW2 (ah) */ | 3254 | /* PW2 (26h), AOW2 (ah) */ |
3255 | parm = AC_PWRST_D3; | 3255 | parm = AC_PWRST_D3; |
@@ -3264,6 +3264,9 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec) | |||
3264 | if (!spec->hp_independent_mode) /* check for redirected HP */ | 3264 | if (!spec->hp_independent_mode) /* check for redirected HP */ |
3265 | set_pin_power_state(codec, 0x28, &parm); | 3265 | set_pin_power_state(codec, 0x28, &parm); |
3266 | update_power_state(codec, 0x8, parm); | 3266 | update_power_state(codec, 0x8, parm); |
3267 | if (!spec->hp_independent_mode && parm2 != AC_PWRST_D3) | ||
3268 | parm = parm2; | ||
3269 | update_power_state(codec, 0xb, parm); | ||
3267 | /* MW9 (21h), Mw2 (1ah), AOW0 (8h) */ | 3270 | /* MW9 (21h), Mw2 (1ah), AOW0 (8h) */ |
3268 | update_power_state(codec, 0x21, imux_is_smixer ? AC_PWRST_D0 : parm); | 3271 | update_power_state(codec, 0x21, imux_is_smixer ? AC_PWRST_D0 : parm); |
3269 | 3272 | ||