On 4/22/2009 5:30 PM, Jarkko Nikula wrote:
On Wed, Apr 22, 2009 at 4:56 AM, Joonyoung Shim <jy0922.shim@samsung.com mailto:jy0922.shim@samsung.com> wrote:
Add checking in hw_params and prepare to detect bufferless pcms(i.e. BT <--> codec). Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com <mailto:jy0922.shim@samsung.com>> --- 쟳ound/soc/omap/omap-pcm.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index 07cf7f4..6454e15 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c @@ -87,8 +87,10 @@ static int omap_pcm_hw_params(struct snd_pcm_substream *substream, 쟳truct omap_pcm_dma_data *dma_data = rtd->dai->cpu_dai->dma_data; 쟧nt err = 0; + /* return if this is a bufferless transfer e.g. + * codec <--> BT codec or GSM modem -- lg FIXME */ 쟧f (!dma_data) - return -ENODEV; + return 0;
I see exactly similar lines in s3c24xx-pcm.c but don't point now the use case where this is used and I don't have idea what is this all about.
Is this something where DAI driver or another end of connection is used to provide clocking and the whole setup is then controlled with ALSA PCM API? Somehow I have the feeling that would there be a better way to achieve it than with dummy bufferless transfer?
I tested this patch with the omap3 target having the twl4030 codec. The twl4030 codec driver supports the voice DAI to transfer pcm data between modem and codec, and i added for test the dummy voice DAI in machine driver. To transfer pcm data at modem <--> codec doesn't need DMA.
-- Jarkko