Patch "ASoC: ssm4567: Reset device before regcache_sync()" has been added to the 4.4-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
ASoC: ssm4567: Reset device before regcache_sync()
to the 4.4-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:
asoc-ssm4567-reset-device-before-regcache_sync.patch
and it can be found in the queue-4.4 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
712a8038cc24dba668afe82f0413714ca87184e0Mon Sep 17 00:00:00 2001
From: Lars-Peter Clausen <[email protected]>
Date: Wed, 27 Jan 2016 14:26:18 +0100
Subject: ASoC: ssm4567: Reset device before regcache_sync()
From: Lars-Peter Clausen <[email protected]>
commit 712a8038cc24dba668afe82f0413714ca87184e0 upstream.
When the ssm4567 is powered up the driver calles regcache_sync() to restore the register map content. regcache_sync() assumes that the device is in its power-on reset state. Make sure that this is the case by explicitly resetting the ssm4567 register map before calling regcache_sync() otherwise we might end up with a incorrect register map which leads to undefined behaviour.
One such undefined behaviour was observed when returning from system suspend while a playback stream is active, in that case the ssm4567 was kept muted after resume.
--- sound/soc/codecs/ssm4567.c | 5 +++++ 1 file changed, 5 insertions(+)
sound/soc/codecs/ssm4567.c +5 -0
@@ -352,6 +352,11 @@ static int ssm4567_set_power(struct ssm4regcache_cache_only (ssm4567->regmap, !enable);if (enable) { + ret =regmap_write (ssm4567->regmap,SSM4567_REG_SOFT_RESET , +0x00 ); +if (ret) +return ret; + ret =regmap_update_bits (ssm4567->regmap,SSM4567_REG_POWER_CTRL ,SSM4567_POWER_SPWDN ,0x00 );
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/usb-gadget-f_fs-fix-use-after-free.patch queue-4.4/asoc-ssm4567-reset-device-before-regcache_sync.patch queue-4.4/asoc-dapm-make-sure-we-have-a-card-when-displaying-component-widgets.patch