aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2010-03-22 15:22:26 +0000
committerLars-Peter Clausen <lars@metafoo.de>2010-03-22 15:22:26 +0000
commit73c0188609b79684e275f394ec18fd1d3ce62f27 (patch)
treed09ed6a7570969f58376082a64bbbfd0808c9a0a /target
parent968a0358e2c1af85e6f28e27b7270e85240dadec (diff)
downloadupstream-73c0188609b79684e275f394ec18fd1d3ce62f27.tar.gz
upstream-73c0188609b79684e275f394ec18fd1d3ce62f27.tar.bz2
upstream-73c0188609b79684e275f394ec18fd1d3ce62f27.zip
[xburst] sound jz4740_pcm: Don't request dma channel mor then once.
It is possible that the hw_params callback is called multiple times when using the oss emulation layer. Thus we need to check whether the dma channel has already been requested otherwise we'll end up with all dma channels being requested by sound driver. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20369 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/xburst/files-2.6.32/sound/soc/jz4740/jz4740-pcm.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/target/linux/xburst/files-2.6.32/sound/soc/jz4740/jz4740-pcm.c b/target/linux/xburst/files-2.6.32/sound/soc/jz4740/jz4740-pcm.c
index c71c5b48b5..4a4de195a8 100644
--- a/target/linux/xburst/files-2.6.32/sound/soc/jz4740/jz4740-pcm.c
+++ b/target/linux/xburst/files-2.6.32/sound/soc/jz4740/jz4740-pcm.c
@@ -105,10 +105,11 @@ static int jz4740_pcm_hw_params(struct snd_pcm_substream *substream,
struct jz4740_pcm_config *config;
config = rtd->dai->cpu_dai->dma_data;
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
- prtd->dma = jz4740_dma_request(substream, "PCM Playback");
- } else {
- prtd->dma = jz4740_dma_request(substream, "PCM Capture");
+ if (!prtd->dma) {
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+ prtd->dma = jz4740_dma_request(substream, "PCM Playback");
+ else
+ prtd->dma = jz4740_dma_request(substream, "PCM Capture");
}
if (!prtd->dma)