[alsa-devel] ASoC: bug report for ssm2602

Lars-Peter Clausen lars at metafoo.de
Tue Aug 26 08:43:14 CEST 2014


On 08/26/2014 08:28 AM, Mark Brown wrote:
> On Tue, Aug 26, 2014 at 02:11:20PM +0800, Scott Jiang wrote:
>> 2014-08-22 17:47 GMT+08:00 Lars-Peter Clausen <lars at metafoo.de>:
>
>>>>       ASoC: ssm2602: Fix cache sync
>
>>>>       The ssm2602 uses regmap for caching not soc-cache, so we need to use
>>>>       regcache_sync() instead of snd_soc_cache_sync().
>
>>>> According my test, regcache_sync() can't recover register values when
>>>> resume. While snd_soc_cache_sync() works fine. I used regmap_read() to
>>>> read registers in regmap layer and found it's the same as suspend. But
>>>> regcache_sync() didn't sync these registers correctly to hardware.
>
>>> That does not make too much sense. snd_soc_cache_sync() is definitely a
>>> no-op when using regmap. Which kernel version are you on? Are there any
>>> additional changes to this driver in your tree?
>
> If it is the above patch is the problem perhaps that the register map
> isn't getting marked as dirty so the cache sync is being suppressed?

The core should mark it as dirty after calling the suspend callback. But 
there might be bugs preventing this. Try to make sure that 
regmap_mark_dirty() gets called for this device and also try to check what 
goes wrong in regcache_sync() and why it does not sync the registers.

- Lars


More information about the Alsa-devel mailing list