Skip to contentSkip to conversation

Patch "ALSA: hda - Disable widget power-save for VIA codecs" has been added to the 4.1-stable tree

PATCH [email protected] 1 participant 1 message Jul 16, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

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

to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
alsa-hda-disable-widget-power-save-for-via-codecs.patch
and it can be found in the queue-4.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 735c75cf4d434862e38c01dcfb2ce8d2fcb9035f Mon Sep 17 00:00:00 2001

From: Takashi Iwai <[email protected]>
Date: Thu, 25 Jun 2015 08:48:54 +0200
Subject: ALSA: hda - Disable widget power-save for VIA codecs

From: Takashi Iwai <[email protected]>

commit 735c75cf4d434862e38c01dcfb2ce8d2fcb9035f upstream.

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 688b12cc3ca8 ('ALSA: hda - Use the new power control for VIA codecs')
Reported-and-tested-by Harald Dunkel <[email protected]>
---
 sound/pci/hda/patch_via.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
sound/pci/hda/patch_via.c +5 -3
@@ -238,7 +238,9 @@ static int via_pin_power_ctl_get(struct
 				 struct snd_ctl_elem_value *ucontrol)
 {
 	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;
 }
 
@@ -249,9 +251,9 @@ static int via_pin_power_ctl_put(struct
 	struct via_spec *spec = codec->spec;
 	bool val = !!ucontrol->value.enumerated.item[0];
 
-	if (val == codec->power_save_node)
+	if (val == spec->gen.power_down_unused)
 		return 0;
-	codec->power_save_node = val;
+	/* codec->power_save_node = val; */ /* widget PM seems yet broken */
 	spec->gen.power_down_unused = val;
 	analog_low_current_mode(codec);
 	return 1;

Patches currently in stable-queue which might be from [email protected] are

queue-4.1/alsa-hda-disable-widget-power-save-for-via-codecs.patch queue-4.1/alsa-hda-add-headset-support-to-acer-aspire-v5.patch queue-4.1/alsa-hda-set-proper-caps-for-newer-amd-hda-audio-in-kb-kv.patch queue-4.1/alsa-pcm-fix-pcm_class-sysfs-output.patch queue-4.1/alsa-hda-fix-dock-headphone-on-thinkpad-x250-seen-as-a-line-out.patch queue-4.1/alsa-hda-fix-the-dock-headphone-output-on-fujitsu-lifebook-e780.patch queue-4.1/alsa-hda-restore-the-mic-fixup-for-some-dell-machines.patch queue-4.1/alsa-hda-add-a-fixup-for-dell-e7450.patch