On 05/11/2016 05:16 PM, Ricard Wanderlof wrote:
Hi Lars,
On Tue, 26 Apr 2016, Lars-Peter Clausen wrote:
A while ago I posted a question to the list regarding the default values set up for the ADAU1761 (and similar CODECs), ...
Having researched this further, it appears that commit
27d6e7d1c96c9f51379e0feb972fec26029098bc
ASoC: adau17x1: Cache writes when core clock is disabled
I think it is also related to commit 1c79771a7270 ("regmap: Use regcache_mark_dirty() to indicate power loss or reset"). This changes the regmap code to sync all registers under certain conditions.
actually fixes this problem, at least for the ADAU1361 and ADAU1761. I'm no expert at the regcache mechanism, but it looks as if when the regcache is synced when the bias level goes from OFF to STANDBY, it actually writes out all the values including the default ones (verified by adding trace printouts, and also by verifying that my original problem of the codec misbehaving after reconfiguration after reboot is no longer there).
We still have the issue though that the CODEC is in an undefined state until the first OFF to STANDBY transitions happens. Usually this will happen early on when the CODEC is bound to the sound card, but if it is not bound immediately it might stay there for a bit longer. So depending on the setup this may or may not be a problem.