]> err.no Git - linux-2.6/commit
ALSA: asoc: restrict sample rate and size in Freescale MPC8610 sound drivers
authorTimur Tabi <timur@freescale.com>
Mon, 28 Jul 2008 22:04:39 +0000 (17:04 -0500)
committerTakashi Iwai <tiwai@suse.de>
Tue, 29 Jul 2008 10:27:10 +0000 (12:27 +0200)
commitbe41e941d5f1a48bde7f44d09d56e8d2605f98e1
treef8f519262a5466623538ce73c1d1c8ef34b9169e
parenta7b815169aae65072017efb1fba9dcecc82ba7c1
ALSA: asoc: restrict sample rate and size in Freescale MPC8610 sound drivers

The Freescale MPC8610 SSI device has the option of using one clock for both
transmit and receive (synchronous mode), or independent clocks (asynchronous).
The SSI driver, however, programs the SSI into synchronous mode and then
tries to program the clock registers independently.  The result is that the wrong
sample size is usually generated during recording.

This patch fixes the discrepancy by restricting the sample rate and sample size
of the playback and capture streams.  The SSI driver remembers which stream
is opened first.  When a second stream is opened, that stream is constrained
to the same sample rate and size as the first stream.

A future version of this driver will lift the sample size restriction.
Supporting independent sample rates is more difficult, because only certain
codecs provide dual independent clocks.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/soc/fsl/fsl_dma.c
sound/soc/fsl/fsl_ssi.c