Re: [PATCH] ASoC: arizona: Add 32uS delay after putting FLL into freerun

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 27, 2015 at 12:26:27PM +0000, Mark Brown wrote:
> On Thu, Nov 26, 2015 at 02:03:20PM +0000, Charles Keepax wrote:
> > When switching between two clock sources using the FLL freerun to smooth
> > the transition we should wait 32uS after putting the FLL into freerun
> > before we proceed. In practice we appear to be getting enough delay from
> > the surrounding code, but better to make it explicit.
> 
> You'll almost certainly get 32us from just setting up the I/O and
> also...
> 
> > +++ b/sound/soc/codecs/arizona.c
> > @@ -2215,6 +2215,7 @@ static int arizona_enable_fll(struct arizona_fll *fll)
> >  		regmap_update_bits_async(fll->arizona->regmap, fll->base + 1,
> >  					 ARIZONA_FLL1_FREERUN,
> >  					 ARIZONA_FLL1_FREERUN);
> > +		udelay(32);
> 
> ...this won't do what you say it will - the I/O is asynchronous so what
> this will do is add a delay immediately after scheduling the I/O while
> the I/O is at best in progress and most likely before it is ever begun.
> You'd need to make the I/O synchronous to actually introduce the delay.

Oops.. missed that, apologies I will respin.

Thanks,
Charles

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux