[alsa-devel] [PATCH 03/17] ASoC: Add a generic dmaengine_pcm driver

Lars-Peter Clausen lars at metafoo.de
Tue Apr 16 07:31:16 CEST 2013


On 04/16/2013 01:15 AM, Stephen Warren wrote:
> On 04/15/2013 11:19 AM, Lars-Peter Clausen wrote:
>> This patch adds a generic dmaengine PCM driver. It builds on top of the
>> dmaengine PCM library and adds the missing pieces like DMA channel management,
>> buffer management and channel configuration. It will be able to replace the
>> majority of the existing platform specific dmaengine based PCM drivers.
> 
>> Devicetree is used to map the DMA channels to the PCM device.
> ...
>> diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
> ...
>> +static const char * const dmaengine_pcm_dma_channel_names[] = {
>> +	[SNDRV_PCM_STREAM_PLAYBACK] = "tx",
>> +	[SNDRV_PCM_STREAM_CAPTURE] = "rx",
>> +};
> ...
>> +int snd_dmaengine_pcm_register(struct device *dev,
>> +	const struct snd_dmaengine_pcm_config *config, unsigned int flags)
> ...
>> +	for (i = SNDRV_PCM_STREAM_PLAYBACK; i <= SNDRV_PCM_STREAM_CAPTURE; i++) {
>> +		pcm->chan[i] = of_dma_request_slave_channel(dev->of_node,
>> +					dmaengine_pcm_dma_channel_names[i]);
> 
> That all means that the Tegra patch won't work yet. Tegra currently uses
> a custom DT binding for DMA since we haven't fully converted everything
> over the very new DT DMA bindings. So, the patches for Tegra may well be
> fine /if/ staged in the correct order with some .dts file changes too.
> 
> I wonder if all the other platforms this series modifies already have
> the appropriate DMA properties set up? A very quick look implies that
> (at least some) imx and omap do, but I'm not sure about spear, ep93xx,
> ux500?
> 
> Perhaps Laxman can provide appropriate DT fixes for Tegra while I'm on
> vacation, and test out this series, if I don't get to it in the next 2
> days before my vacation.

None of the converted platforms is changed to use DT yet, they all use the
compat path. So there shouldn't be any functional change for them. Converting
them to use the generic DT bindings can be done one by one later.

- Lars


More information about the Alsa-devel mailing list