diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2009-11-18 19:49:53 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-11-19 05:48:08 -0500 |
commit | 1e224f322bf22280957a5f76164d848526ed9b08 (patch) | |
tree | bdf7af09be46172aa6048bb25fda35980e8b2159 /sound/soc/davinci/davinci-i2s.c | |
parent | 1587ea31572e25a0a2c9c491b7f8c937b6c0454e (diff) |
ASoC: DaVinci: pcm, fix underrun by using sram
Fix underruns by using dma to copy 1st to sram
in a ping/pong buffer style and then copying from
the sram to the ASP. This also has the advantage
of tolerating very long interrupt latency on dma
completion.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/davinci/davinci-i2s.c')
-rw-r--r-- | sound/soc/davinci/davinci-i2s.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c index b2a5372ef72c..6362ca05506e 100644 --- a/sound/soc/davinci/davinci-i2s.c +++ b/sound/soc/davinci/davinci-i2s.c | |||
@@ -545,8 +545,13 @@ static int davinci_i2s_probe(struct platform_device *pdev) | |||
545 | ret = -ENOMEM; | 545 | ret = -ENOMEM; |
546 | goto err_release_region; | 546 | goto err_release_region; |
547 | } | 547 | } |
548 | if (pdata) | 548 | if (pdata) { |
549 | dev->enable_channel_combine = pdata->enable_channel_combine; | 549 | dev->enable_channel_combine = pdata->enable_channel_combine; |
550 | dev->dma_params[SNDRV_PCM_STREAM_PLAYBACK].sram_size = | ||
551 | pdata->sram_size_playback; | ||
552 | dev->dma_params[SNDRV_PCM_STREAM_CAPTURE].sram_size = | ||
553 | pdata->sram_size_capture; | ||
554 | } | ||
550 | dev->clk = clk_get(&pdev->dev, NULL); | 555 | dev->clk = clk_get(&pdev->dev, NULL); |
551 | if (IS_ERR(dev->clk)) { | 556 | if (IS_ERR(dev->clk)) { |
552 | ret = -ENODEV; | 557 | ret = -ENODEV; |