On Tue, Mar 08, 2016 at 07:58:53PM +0800, John Hsu wrote:
In the patch, we add FLL clock source selection. The source can be from MCLK, BCLK or FS. Besides, driver extend higher frequency for better performance in FLL calculation, and has different register apply if fraction or not. Just separate it. Right?
I think that's what I was asking for, yes.
That comment sounds *very* suspicous, if we are using MCLK we should manage it via the clock API. If the platform doesn't have good clock support we should fix the platform.
In initiation, we get mclk object from platform as the following code. If the mclk is not found, we don't need to prepare it in the driver.
nau8825->mclk = devm_clk_get(dev, "mclk"); ... } else if (PTR_ERR(nau8825->mclk) == -ENOENT) { /* The MCLK is managed externally or not used at all */ nau8825->mclk = NULL; dev_info(dev, "No 'mclk' clock found, assume MCLK is managed externally");
This really isn't a good way to be handling things, you should be ensuring that platforms that have an MCLK provide one via the clock API. If the clock is missing that should indicate that it's the second case where it's not used at all.