diff options
author | Mark Brown <broonie@linaro.org> | 2013-10-19 09:13:04 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-10-23 07:57:12 -0400 |
commit | d7711dc5930ced241c4f6e9b14df2a92814f9f12 (patch) | |
tree | 8b36a48c260ecbd2f67bcf5877bc1e1ab423effd | |
parent | 511e30331745e0c3452b89354a4b94c0e60f15a4 (diff) |
ASoC: ep93xx: Open code dma channel request
Currently the ep93xx DMA code is one of the few users relying on the fact
that the compat code uses the dma_data as the filter data for non-DT
channel requests. Since the rest of the core expects this to be a struct
snd_dmaengine_dai_data this isn't terribly helpful this will be changed to
use the already existing filter data so avoid breaking ep93xx by open
coding the current behaviour.
Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
-rw-r--r-- | sound/soc/cirrus/ep93xx-pcm.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sound/soc/cirrus/ep93xx-pcm.c b/sound/soc/cirrus/ep93xx-pcm.c index 0e9f56e0d4b2..cfe517e68009 100644 --- a/sound/soc/cirrus/ep93xx-pcm.c +++ b/sound/soc/cirrus/ep93xx-pcm.c | |||
@@ -57,9 +57,22 @@ static bool ep93xx_pcm_dma_filter(struct dma_chan *chan, void *filter_param) | |||
57 | return false; | 57 | return false; |
58 | } | 58 | } |
59 | 59 | ||
60 | static struct dma_chan *ep93xx_compat_request_channel( | ||
61 | struct snd_soc_pcm_runtime *rtd, | ||
62 | struct snd_pcm_substream *substream) | ||
63 | { | ||
64 | struct snd_dmaengine_dai_dma_data *dma_data; | ||
65 | |||
66 | dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream); | ||
67 | |||
68 | return snd_dmaengine_pcm_request_channel(ep93xx_pcm_dma_filter, | ||
69 | dma_data); | ||
70 | } | ||
71 | |||
60 | static const struct snd_dmaengine_pcm_config ep93xx_dmaengine_pcm_config = { | 72 | static const struct snd_dmaengine_pcm_config ep93xx_dmaengine_pcm_config = { |
61 | .pcm_hardware = &ep93xx_pcm_hardware, | 73 | .pcm_hardware = &ep93xx_pcm_hardware, |
62 | .compat_filter_fn = ep93xx_pcm_dma_filter, | 74 | .compat_filter_fn = ep93xx_pcm_dma_filter, |
75 | .compat_request_channel = ep93xx_compat_request_channel, | ||
63 | .prealloc_buffer_size = 131072, | 76 | .prealloc_buffer_size = 131072, |
64 | }; | 77 | }; |
65 | 78 | ||