aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/samsung/dma.c
diff options
context:
space:
mode:
authorArve Hjønnevåg <arve@android.com>2011-04-15 21:14:05 -0700
committerArve Hjønnevåg <arve@android.com>2011-11-17 17:54:05 -0800
commit01a869655432e964c1651c85a465b463db175286 (patch)
tree4f7e81a801ccd4f1931237981d226a729e0e53e6 /sound/soc/samsung/dma.c
parentd6b5d265382e39d707525839fa5fe2c06a28892e (diff)
downloadkernel_samsung_crespo-01a869655432e964c1651c85a465b463db175286.zip
kernel_samsung_crespo-01a869655432e964c1651c85a465b463db175286.tar.gz
kernel_samsung_crespo-01a869655432e964c1651c85a465b463db175286.tar.bz2
ARM: herring: sound: Use audio driver from 2.6.35
fix herring-wm8994.c to compile on 2.6.39 checkpoint: use mainline sound driver checkout: audio driver loads but locks up checkpoint: audio setup does not complain, but playback times-out checkpoint: using soc sound i2s and dma code from 2.6.35 - dma still hangs checkpoint: using old codec, dma and i2s code sound plays but is distorded fix distorted sound rename samsung wm8994 codec to not conflict with standard wm8994 mfd device modify dma.c to work with dma wrapper rename some audio config options and fix defconfig remove some duplicate clocks Change-Id: I1b72b5b7937fd4a40a1719674976ba16d7e8f3a6
Diffstat (limited to 'sound/soc/samsung/dma.c')
-rw-r--r--sound/soc/samsung/dma.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/sound/soc/samsung/dma.c b/sound/soc/samsung/dma.c
index 552bf43..fc56ed0 100644
--- a/sound/soc/samsung/dma.c
+++ b/sound/soc/samsung/dma.c
@@ -413,7 +413,11 @@ static void dma_free_dma_buffers(struct snd_pcm *pcm)
pr_debug("Entered %s\n", __func__);
+#ifdef CONFIG_S5P_INTERNAL_DMA
+ for (stream = 1; stream < 2; stream++) {
+#else
for (stream = 0; stream < 2; stream++) {
+#endif
substream = pcm->streams[stream].substream;
if (!substream)
continue;
@@ -442,13 +446,14 @@ static int dma_new(struct snd_card *card,
if (!card->dev->coherent_dma_mask)
card->dev->coherent_dma_mask = 0xffffffff;
+#ifndef CONFIG_S5P_INTERNAL_DMA
if (dai->driver->playback.channels_min) {
ret = preallocate_dma_buffer(pcm,
SNDRV_PCM_STREAM_PLAYBACK);
if (ret)
goto out;
}
-
+#endif
if (dai->driver->capture.channels_min) {
ret = preallocate_dma_buffer(pcm,
SNDRV_PCM_STREAM_CAPTURE);
@@ -459,11 +464,14 @@ out:
return ret;
}
-static struct snd_soc_platform_driver samsung_asoc_platform = {
+struct snd_soc_platform_driver samsung_asoc_platform = {
.ops = &dma_ops,
.pcm_new = dma_new,
.pcm_free = dma_free_dma_buffers,
};
+EXPORT_SYMBOL_GPL(samsung_asoc_platform);
+
+#ifndef CONFIG_S5P_INTERNAL_DMA
static int __devinit samsung_asoc_platform_probe(struct platform_device *pdev)
{
@@ -498,6 +506,8 @@ static void __exit samsung_asoc_exit(void)
}
module_exit(samsung_asoc_exit);
+#endif
+
MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
MODULE_DESCRIPTION("Samsung ASoC DMA Driver");
MODULE_LICENSE("GPL");