ADAU1761 default register value problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
-- 
Ricard Wolf Wanderlöf                           ricardw(at)axis.com
Axis Communications AB, Lund, Sweden            www.axis.com
Phone +46 46 272 2016                           Fax +46 46 13 61 30
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux