[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