On Tue, Sep 07, 2010 at 11:56:34AM +0200, Guennadi Liakhovetski wrote:
On Tue, 7 Sep 2010, Mark Brown wrote:
Could you please be more explicit here? Register I/O needs to happen somehow...
Sorry, maybe I am missing something, but my understanding is, that the ASoC core knows nothing about codec's specific register layout, so, the core itself cannot initiate any register IO. So, I presume, there can be only two instances, that can do that - the codec driver itself and some user-space (debugging) programs. The driver doesn't use cached register accesses, so, it can access the registers directly, and it doesn't have to provide an ability to the user-space to access registers - if it chooses so. So, I don't see, who should be trying to use generic ASoC register access routines here.
All register I/O, cached or not, is supposed to go through the register I/O operations. Any cache is abstraced away within those operations. Since the driver presumably needs do do some I/O (even if only in the hw_params() you have identified as missing) I would expect it to provide register I/O functionality.