Hi On Mon, Mar 14, 2016 at 9:08 PM, John Hsu <KCHSU0@xxxxxxxxxxx> wrote: > Extend FLL clock source selection. The source can be from MCLK, BCLK or FS. > > Signed-off-by: John Hsu <KCHSU0@xxxxxxxxxxx> > --- > sound/soc/codecs/nau8825.c | 82 +++++++++++++++++++++++++++++++++------------- > sound/soc/codecs/nau8825.h | 8 +++++ > 2 files changed, 67 insertions(+), 23 deletions(-) > > diff --git a/sound/soc/codecs/nau8825.c b/sound/soc/codecs/nau8825.c > index 1c87299..ac264ec 100644 > --- a/sound/soc/codecs/nau8825.c > +++ b/sound/soc/codecs/nau8825.c > @@ -1053,6 +1053,37 @@ static int nau8825_set_pll(struct snd_soc_codec *codec, int pll_id, int source, > return 0; > } > > +static int nau8825_mclk_prepare(struct nau8825 *nau8825, unsigned int freq) > +{ > + int ret = 0; > + > + nau8825->mclk = devm_clk_get(nau8825->dev, "mclk"); > + if (IS_ERR(nau8825->mclk)) { Is it possible that clock system is not ready at this point and the method returns -EPROBE_DEFER? If so it matches IS_ERR() but not a real error and the nua8825 driver should backoff and wait a little before clocks are ready. > + dev_info(nau8825->dev, "No 'mclk' clock found, assume MCLK is managed externally"); > + return 0; > + } > + > + if (!nau8825->mclk_freq) { > + ret = clk_prepare_enable(nau8825->mclk); > + if (ret) { > + dev_err(nau8825->dev, "Unable to prepare codec mclk\n"); > + return ret; > + } > + } > + _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel