Messages in this thread | | | Date | Thu, 7 Sep 2017 14:44:11 +0100 | From | Mark Brown <> | Subject | Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq |
| |
On Tue, Sep 05, 2017 at 10:45:29AM -0700, Nicolin Chen wrote:
> The ipg clock is merely used to access registers, and has nothing > (directly) to do with external clock outputs. The driver shall not > change the ipg clock as the system ipg clock (its parent clock) > might be messed and even system time would get weird -- happened > once when the fsl_spdif driver used to call clk_set_rate() on its > ipg clock. Although the clock controller should have some kind of > protection in my opinion, we just avoid IP clock rate change in all > audio drivers as well.
Yes, the clock API needs constraints code.
> On the other hand, the sys clock (baudclk in the driver) should be > configured whenever it's related to external clock outputs. When I > implemented this set_sysclk() for fsl_ssi.c, I used it to set this > sys clock (baudclk) by a machine driver, in order to set bit clock. > Then someone patched the driver by moving all the code to set_bclk() > to make machine drivers simpler. Now the set_sysclk() is remained > to give machine drivers a chance to override clock configurations > in the hw_params(). This could be used in TDM or some other special > cases (It could also have a purpose for backwards compatibility).
> So here, we should set baudclk (BCLK generator).
No, that's just going to cause confusion - if all the other drivers are using set_sysclk() to set an input clock rate to the IP rather than an output clock but your driver does something else then sooner or later someone will run into trouble with that. [unhandled content-type:application/pgp-signature] | |