summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-04-09 10:18:31 +0200
committerTakashi Iwai <tiwai@suse.de>2015-04-09 10:33:16 +0200
commit2206dc949286fe0010c69213d3d8b4c53e6a2295 (patch)
tree7a92980d8a53c8b6e942b8080674a42bd391555c /sound/pci/hda
parentALSA: hda - Always allow access for POWER_STATE verbs via regmap (diff)
downloadlinux-2206dc949286fe0010c69213d3d8b4c53e6a2295.tar.xz
linux-2206dc949286fe0010c69213d3d8b4c53e6a2295.zip
ALSA: hda/generic - Check power state cap at updating the widget power
The new widget power-saving tries to apply the power change no matter whether the node has a power cap or not. It's bad (although most of codecs chip just ignore it). Check the capability properly beforehand. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/hda_generic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index 1f2ca7be1468..afc6b1b0898c 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -832,6 +832,8 @@ static hda_nid_t path_power_update(struct hda_codec *codec,
for (i = 0; i < path->depth; i++) {
nid = path->path[i];
+ if (!(get_wcaps(codec, nid) & AC_WCAP_POWER))
+ continue;
if (nid == codec->core.afg)
continue;
if (!allow_powerdown || is_active_nid_for_any(codec, nid))