
On Wed, 2012-02-08 at 11:20 +0000, Mark Brown wrote:
On Wed, Feb 08, 2012 at 10:57:30AM +0000, Liam Girdwood wrote:
On Wed, 2012-02-08 at 16:06 +0530, Vinod Koul wrote:
We want to dynamical turn off this clock when not is use and turn on only when codec is using. So I was thinking of turning this ON in codecs .set_bias_level callback, but how to propagate this into machine driver?
It's usually done in the machine driver hw_params() since at this point we know the rate, format etc that can have a bearing on the clock configuration. You could switch it OFF in machine hw_free().
For modern devices set_bias_level() is often a better choice if you're only going to do one of that or hw_params(), especially on the shutdown paths - devices these days typically need the clocks for a lot more stuff. hw_params() by itself obviously has issues for analogue only paths too.
I'd generally expect to see new machine drivers doing this stuff in set_bias_level() and possibly also having additional startup code in hw_params() depending on how flexible the clocking is.
The scope of set_bias_level() is now starting to increase to more than just the card bias power. It may be worthwhile at some point to rename it to cover all possibilities.
Liam