On Fri, Jan 10, 2014 at 04:52:29PM +0000, Mark Brown wrote:
On Fri, Jan 10, 2014 at 11:48:25PM +0800, Nicolin Chen wrote:
I think I start to understand the point here: If a user only needs to playback the default case - 44.1KHz for example, the driver can just configure all the dividers once at the beginning, not every time, so that we can save further register overriding operation or even complicated clock selection and divisor calculation, which obviously makes the procedure clean and reduces the system loading even if it might be just in a slight level.
Is this the reason, or maybe one of the reasons, to the defaults providing?
The main thing is that if the DAI driver does it then it's less code in the machine drivers using it - what tends to happen otherwise is that quite a few machine drivers end up replicating the same logic. Hardware designers tend to do a lot of cut'n'paste with these things so even if the CODEC is different the clocking is often very similar.
Point taken. And it also depends on how common the defaults would be. I think I should try to figure out a comparably generic template for the clock selection and its rate settings here and also check other redundant places.
I learned another lesson today. Thank you indeed. Nicolin