Hi Lars,
A while ago I posted a question to the list regarding the default values set up for the ADAU1761 (and similar CODECs), but I didn't get a response. I really need to try and figure out a way forward here though so I'll bring this up again.
The problem I have is that the driver assumes that the CODEC has been initialized with the default register settings when the system boots. However, if the system has not been power cycled but just rebooted, this is not necessarily the case, as the CODEC has no external reset pin but derives its reset signal internally from the power level.
Furthermore, if the system upon reboot tries to set a register value to one of the default settings (for example as the result of a hw_params() call), then the regcache mechanism will disregard the write as it assumes the default value is already set, which is not necessarily the case.
As I see it the solution to this problem is simply not to assume anything about the register settings, so that the first write to a given register always takes effect.
I can work on a patch to accomplish this, however, since so much work apparently has been laid down in getting the default values into the driver in the first place, I'm assuming there's something more to the story that I'm missing, so I'd like to get a better grip on this before I dive in.
/Ricard