summaryrefslogtreecommitdiffstats
path: root/sound/soc/davinci/davinci-vcif.c
diff options
context:
space:
mode:
authorDaniel Mack <daniel@caiaq.de>2010-03-19 14:52:55 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-03-19 19:37:29 +0000
commitfd23b7dee5e4d369f620979cb120f53629389355 (patch)
treebbfa4637b0b97662b8ee63922eccb01913baaf1d /sound/soc/davinci/davinci-vcif.c
parent093208f5d03980d7216b706e3c54432d0f299e26 (diff)
downloadlinux-fd23b7dee5e4d369f620979cb120f53629389355.tar.gz
linux-fd23b7dee5e4d369f620979cb120f53629389355.tar.bz2
linux-fd23b7dee5e4d369f620979cb120f53629389355.zip
ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
This fixes a memory corruption when ASoC devices are used in full-duplex mode. Specifically for pxa-ssp code, where this pointer is dynamically allocated for each direction and destroyed upon each stream start. All other platforms are fixed blindly, I couldn't even compile-test them. Sorry for any breakage I may have caused. Reported-by: Sven Neumann <s.neumann@raumfeld.com> Reported-by: Michael Hirsch <m.hirsch@raumfeld.com> Signed-off-by: Daniel Mack <daniel@caiaq.de> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.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-vcif.c')
-rw-r--r--sound/soc/davinci/davinci-vcif.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/davinci/davinci-vcif.c b/sound/soc/davinci/davinci-vcif.c
index 03f3feb0fe2f..54b91e1768c4 100644
--- a/sound/soc/davinci/davinci-vcif.c
+++ b/sound/soc/davinci/davinci-vcif.c
@@ -222,7 +222,8 @@ static int davinci_vcif_probe(struct platform_device *pdev)
davinci_vc->davinci_vcif.dma_rx_addr;
davinci_vcif_dai.dev = &pdev->dev;
- davinci_vcif_dai.dma_data = davinci_vcif_dev->dma_params;
+ davinci_vcif_dai.capture.dma_data = davinci_vcif_dev->dma_params;
+ davinci_vcif_dai.playback.dma_data = davinci_vcif_dev->dma_params;
davinci_vcif_dai.private_data = davinci_vcif_dev;
ret = snd_soc_register_dai(&davinci_vcif_dai);