On Mon, Jun 06, 2011 at 10:26:12AM +0100, Mark Brown wrote:
On Mon, Jun 06, 2011 at 10:18:07AM +0100, Dimitris Papastamos wrote:
There should be a check for reg_def_copy being NULL, the soc-cache code is also built around the idea that the driver might not provide a register defaults cache at all so this change needs to cope with that.
Hrm, at this point I'm rather inclined to say that if you're using a fancy cache method you should be providing defaults.
Also I'd expect the reg_def_copy cache to be freed sooner rather than while unregistering the codec, this is not happening at the moment, which is wasting significant space. This is the case because it is only used during initialization.
That's the bit I was saying at the bottom of the commit message about putting it into the node itself; since we're currently never freeing it we can use it but we should really be copying it into the tree. The memory wasted is a *much* less severe problem than the I/O bandwidth consumed rewriting the entire register map on every sync.
Yes, in the previous version of the rbtree code, it was saving it in the node itself. I was planning to have a separate block with the default values for the block based version but haven't yet got around to that.
Thanks, Dimitris