On Wed, Mar 29, 2017 at 02:38:23PM +0300, Daniel Baluta wrote:
If I read the code correctly, both machine and codec driver are doing:
- codec_clk = clk_get(...)
I guess that the codec driver is the first to be loaded and it will call:
- __clk_create_clk
which will do the allocation. Then when machine driver is loaded, it will only take a reference to the allocated clock.
I might be very wrong on this. Can you clarify what does moving allocation of the clock into codec driver implies? Machine driver only needs a reference to codec_clk to just get the clock's rate.
Oh, so the CODEC is already requesting the clock. Then what I'm saying is work out a way to use the handle to the clock that the CODEC driver created. In effect the machine driver is telling the CODEC driver to do things with the input clock.