Commit 735c75cf authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Disable widget power-save for VIA codecs

The widget power-save that was enabled in 4.1 kernel seems resulting
in the silent output on VIA codecs by some reason.  Some widgets get
wrong power states.

As a quick fix, turn this flag off while keeping power_down_unused
flag.  This will bring back to the state of 4.0.x.

Fixes: 688b12cc ('ALSA: hda - Use the new power control for VIA codecs')
Reported-and-tested-by: default avatarHarald Dunkel <harri@afaics.de>
Cc: <stable@vger.kernel.org> # v4.1
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ec56af67
...@@ -241,7 +241,9 @@ static int via_pin_power_ctl_get(struct snd_kcontrol *kcontrol, ...@@ -241,7 +241,9 @@ static int via_pin_power_ctl_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
ucontrol->value.enumerated.item[0] = codec->power_save_node; struct via_spec *spec = codec->spec;
ucontrol->value.enumerated.item[0] = spec->gen.power_down_unused;
return 0; return 0;
} }
...@@ -252,9 +254,9 @@ static int via_pin_power_ctl_put(struct snd_kcontrol *kcontrol, ...@@ -252,9 +254,9 @@ static int via_pin_power_ctl_put(struct snd_kcontrol *kcontrol,
struct via_spec *spec = codec->spec; struct via_spec *spec = codec->spec;
bool val = !!ucontrol->value.enumerated.item[0]; bool val = !!ucontrol->value.enumerated.item[0];
if (val == codec->power_save_node) if (val == spec->gen.power_down_unused)
return 0; return 0;
codec->power_save_node = val; /* codec->power_save_node = val; */ /* widget PM seems yet broken */
spec->gen.power_down_unused = val; spec->gen.power_down_unused = val;
analog_low_current_mode(codec); analog_low_current_mode(codec);
return 1; return 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment