Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7711dc5 authored by Mark Brown's avatar Mark Brown
Browse files

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: default avatarMark Brown <broonie@linaro.org>
Acked-by: default avatarLars-Peter Clausen <lars@metafoo.de>
parent 511e3033
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -57,9 +57,22 @@ static bool ep93xx_pcm_dma_filter(struct dma_chan *chan, void *filter_param)
	return false;
}

static struct dma_chan *ep93xx_compat_request_channel(
	struct snd_soc_pcm_runtime *rtd,
	struct snd_pcm_substream *substream)
{
	struct snd_dmaengine_dai_dma_data *dma_data;

	dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);

	return snd_dmaengine_pcm_request_channel(ep93xx_pcm_dma_filter,
						 dma_data);
}

static const struct snd_dmaengine_pcm_config ep93xx_dmaengine_pcm_config = {
	.pcm_hardware = &ep93xx_pcm_hardware,
	.compat_filter_fn = ep93xx_pcm_dma_filter,
	.compat_request_channel = ep93xx_compat_request_channel,
	.prealloc_buffer_size = 131072,
};