From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
To: Zidan Wang <zidan.wang@freescale.com>
Cc: tiwai@suse.de, alsa-devel@alsa-project.org, broonie@kernel.org,
patches@opensource.wolfsonmicro.com
Subject: Re: [PATCH v3] ASoC: wm8960: update pll and clock setting function
Date: Mon, 10 Aug 2015 14:47:40 +0100 [thread overview]
Message-ID: <20150810134740.GI25225@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <20150810080805.GB15493@shlinux2>
On Mon, Aug 10, 2015 at 04:08:06PM +0800, Zidan Wang wrote:
> On Mon, Aug 10, 2015 at 09:32:46AM +0100, Charles Keepax wrote:
> > On Mon, Jul 13, 2015 at 04:41:00PM +0800, Zidan Wang wrote:
> > > Add sysclk auto mode. When it's sysclk auto mode, if the MCLK is
> > > available for clock configure, using MCLK to provide sysclk directly,
> > > otherwise, search a available pll out frequcncy and set pll.
> > >
> > > Configure clock in hw_params may cause problems when using bypass style
> > > paths without hw_params in machine driver getting called. So add configure
> > > clock to set_bias_level.
> > >
> > > Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
> > > ---
> > <snip>
> > > @@ -711,6 +785,9 @@ static int wm8960_set_bias_level_out3(struct snd_soc_codec *codec,
> > > case SND_SOC_BIAS_PREPARE:
> > > switch (snd_soc_codec_get_bias_level(codec)) {
> > > case SND_SOC_BIAS_STANDBY:
> > > + ret = wm8960_configure_clocking(codec);
> > > + if (ret)
> > > + return ret;
> >
> > Is it right that we are calling wm8960_configure_clocking before
> > clk_prepare_enable? As configure_clocking will enable the clocks
> > shouldn't mclk be available before then?
> The wm8960 codec don't need to enable MCLK to write register. So i think it's ok to enable MCLK at the last moment.
I would wager that this msleep is waiting for the PLL to lock
though:
static int wm8960_set_pll(struct snd_soc_codec *codec,
unsigned int freq_in, unsigned int freq_out)
<snip>
/* Turn it on */
snd_soc_update_bits(codec, WM8960_POWER2, 0x1, 0x1);
msleep(250);
snd_soc_update_bits(codec, WM8960_CLOCK1, 0x1, 0x1);
If you don't have the MCLK ready before that then the FLL won't
be able to lock. It is possible things might still work as
perhaps the FLL lock time will get hidden by something else later
in the chain, but I would be surprised if it was a good idea to
enable the PLL without the source clock being available.
Thanks,
Charles
prev parent reply other threads:[~2015-08-10 13:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 8:41 [PATCH v3] ASoC: wm8960: update pll and clock setting function Zidan Wang
2015-08-04 1:28 ` Zidan Wang
2015-08-06 8:12 ` Charles Keepax
2015-08-10 8:32 ` Charles Keepax
2015-08-10 8:08 ` Zidan Wang
2015-08-10 13:47 ` Charles Keepax [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150810134740.GI25225@opensource.wolfsonmicro.com \
--to=ckeepax@opensource.wolfsonmicro.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=patches@opensource.wolfsonmicro.com \
--cc=tiwai@suse.de \
--cc=zidan.wang@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox