[alsa-devel] asoc: s3c24xx+uda1380 - some questions

Mark Brown broonie at sirena.org.uk
Tue Feb 3 12:41:37 CET 2009

On Tue, Feb 03, 2009 at 01:46:32AM +0200, Vasily Khoruzhick wrote:

> and later aplay). It's bug in uda1380 driver (probably, just a typo), driver 
> switches to WSPLL in uda1380_pcm_prepare even if SYSCLK was chosen 
> (uda1380_pcm_prepare modifies UDA1380_CLK register before flushing reg cache, 
> but doesn't restore its value later)

Your explanation here makes sense but...

> One more question: it seems that my rx1950 clocked in a way that I can't get 
> precise divisor for 44100 and 22050 rates, but uda1380 driver propose them 
> (look UDA1380_RATES define and struct snd_soc_dai uda1380_dai[].
> How to exclude all rates except 16000 and 48000? Should I declare my own 
> snd_soc_dai and copy necessary members from uda1380's one?

Set up additional constraints in your machine driver - see how drivers
like wm8903 enforce symmetric configurations for playback and record for
an example.

>  	/* FIXME enable DAC_CLK */
> -	uda1380_write(codec, UDA1380_CLK, clk | R00_DAC_CLK);
> +	uda1380_write(codec, UDA1380_CLK, clk);

..are you sure this fix won't break existing users?  Based on your
explanation above (which should *really* go into the commit) I'd expect
this to be conditional on something.  It looks like what you really want
to do here is clean up the FIXMEs :)

More information about the Alsa-devel mailing list