[alsa-devel] [PATCH] ASoC: generic-dmaengine-pcm: Add an interface to override its functions

Nicolin Chen b42378 at freescale.com
Tue Oct 15 11:23:51 CEST 2013

On Tue, Oct 15, 2013 at 11:02:44AM +0200, Lars-Peter Clausen wrote:
> > If this modification to sound/core/pcm_dmaengine.c is not fair,
> > what about moving the modification to soc-gerneric-dmaengine-pcm.c?
> > 
> > For example, instead of using snd_dmaengine_pcm_trigger() directly
> > in gerneric soc dmaengine driver, we create a new one inside gerneric
> > soc dmaengine driver and check the override:
> > 
> > static int snd_soc_dmaengine_pcm_trigger(substream, cmd) {
> > 	if (config->driver->ops->trigger)
> > 		return config->driver->ops->trigger(substream, cmd);
> > 		
> > 	return snd_dmaengine_pcm_trigger(substream, cmd);
> > }
> > 
> > Since it happens inside generic dmaengine pcm ASoC driver, it won't break
> > those helper functions.
> > 
> > I'm trying this just because I hope generic dmaengine can be more flexible
> > Admittedly, using helper functions might be more plausible way in current
> > ASoC structure. However, there might be so much change for an generic soc
> > dmaengine implementation even if it just wants to override one single func.
> Well the idea of the generic dmaengine driver is to be generic and not
> require SoC specific hacks since those should not be necessary if things are
> done right. What exactly do you want to implement in the overwritten ops?
> - Lars

Just like I mentioned in the commit comments, using on-chip memory would
need an alternative memory allocating function to replace the default one
from external DDR. imx-pcm-dma.c is now using ASoC generic dmaengine, so
if we turn it back to helper functions way, all cpu dai drivers might have
to be turned back as well.

ASoC generic dmaengine is quite concise and well-developed for us to use.
But after using it, its own limitation might make user waver to choose the
old fashion helper functions. So I just wish it could provide a back door
for an easy trick. Then we can continue to enjoy the convenience from it
and also be able to tackle these uncommon cases.

Thank you,
Nicolin Chen

More information about the Alsa-devel mailing list