Skip to contentSkip to conversation

Patch "ALSA: hdac_regmap - fix the register access for runtime PM" has been added to the 4.6-stable tree

PATCH [email protected] 1 participant 1 message Jul 25, 2016

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: hdac_regmap - fix the register access for runtime PM

to the 4.6-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-hdac_regmap-fix-the-register-access-for-runtime-pm.patch
and it can be found in the queue-4.6 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 8198868f0a283eb23e264951632ce61ec2f82228 Mon Sep 17 00:00:00 2001

From: Jaroslav Kysela <[email protected]>
Date: Fri, 17 Jun 2016 13:35:56 +0200
Subject: ALSA: hdac_regmap - fix the register access for runtime PM

From: Jaroslav Kysela <[email protected]>

commit 8198868f0a283eb23e264951632ce61ec2f82228 upstream.

Call path:

1) snd_hdac_power_up_pm()
2) snd_hdac_power_up()
3) pm_runtime_get_sync()
4) __pm_runtime_resume()
5) rpm_resume()

The rpm_resume() returns 1 when the device is already active. Because the return value is unmodified, the hdac regmap read/write functions should allow this value for the retry I/O operation, too.

---
 sound/hda/hdac_regmap.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
sound/hda/hdac_regmap.c +2 -2
@@ -444,7 +444,7 @@ int snd_hdac_regmap_write_raw(struct hda
 	err = reg_raw_write(codec, reg, val);
 	if (err == -EAGAIN) {
 		err = snd_hdac_power_up_pm(codec);
-		if (!err)
+		if (err >= 0)
 			err = reg_raw_write(codec, reg, val);
 		snd_hdac_power_down_pm(codec);
 	}
@@ -470,7 +470,7 @@ static int __snd_hdac_regmap_read_raw(st
 	err = reg_raw_read(codec, reg, val, uncached);
 	if (err == -EAGAIN) {
 		err = snd_hdac_power_up_pm(codec);
-		if (!err)
+		if (err >= 0)
 			err = reg_raw_read(codec, reg, val, uncached);
 		snd_hdac_power_down_pm(codec);
 	}

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

queue-4.6/alsa-hdac_regmap-fix-the-register-access-for-runtime-pm.patch queue-4.6/alsa-hda-realtek-add-two-more-thinkpad-ids-5050-5053-for-tpt460-fixup.patch