[alsa-devel] BUG since "ASoC: simple-card: Add pm callbacks to platform driver"

Peter Ujfalusi peter.ujfalusi at ti.com
Tue May 17 13:40:00 CEST 2016


On 05/17/16 14:08, Peter Ujfalusi wrote:
> On 05/17/16 14:02, Geert Uytterhoeven wrote:
>> On Tue, May 17, 2016 at 12:55 PM, Geert Uytterhoeven
>> <geert at linux-m68k.org> wrote:
>>> With today's sound-asoc/for-next, I'm seeing on r8a7791/koelsch and
>>> sh73a0/kzm9g:
>>>
>>>     kernel BUG at drivers/base/regmap/regcache.c:347!
>>>     Internal error: Oops - BUG: 0 [#1] SMP ARM
>>>     Modules linked in:
>>>     CPU: 0 PID: 20 Comm: kworker/0:1 Not tainted
>>> 4.6.0-koelsch-07135-g1481dd77fa7d01cb #2621
>>>     Hardware name: Generic R8A7791 (Flattened Device Tree)
>>>     Workqueue: events soc_resume_deferred
>>>     task: ef512100 ti: ef5a6000 task.ti: ef5a6000
>>>     PC is at regcache_sync+0xc/0x118
>>>     LR is at ak4642_resume+0x20/0x28
>>
>> This is during resume from s2ram.
> 
> if you revert the patch does the ak4642_resume() is called at all, I think not.
> But in the driver does not implement the .suspend callback, probably this
> never worked correctly in ak4642?

The reason is different, the bug is caused by:
	BUG_ON(!map->cache_ops);
in regcache.c

None of the regmap_config have set the .cache_type, so they do not have cache,
so sync is not available for them -> regmap_sync() BUGs out.

It can be fixed by either setting .cache_type for the regmap_config structures
or by removing the resume callback, as it is broken.

-- 
Péter


More information about the Alsa-devel mailing list