[alsa-devel] [PATCH] ASoC: mmp-pcm: config pcm slave via generic dmaengine
Takashi Iwai
tiwai at suse.de
Wed Dec 18 11:20:33 CET 2013
At Wed, 18 Dec 2013 10:16:36 +0100,
Lars-Peter Clausen wrote:
>
> On 12/18/2013 06:55 AM, Qiao Zhou wrote:
> > On 12/17/2013 10:42 PM, Lars-Peter Clausen wrote:
> >> On 12/17/2013 01:49 PM, Mark Brown wrote:
> >>> On Tue, Dec 17, 2013 at 04:22:24PM +0800, Qiao Zhou wrote:
> >>>> use snd_dmaengine_pcm_prepare_slave_config to set slave config,
> >>>> and remove the max_burst_size = 4 hard code.
> >>>>
> >>>> select SND_SOC_GENERIC_DMAENGINE_PCM for mmp-pcm.
> >>>
> >>> Applied, thanks. Can you also convert to use snd_dmaengine_pcm_register()
> >>> and remove this file completely?
> >>>
> >>
> >> The problem here is that the driver uses sram for its audio memory and the
> >> platform has a custom function for looking up the sram pool. What we really
> >> need is a generic version of that which we can use in memalloc.c in the core.
> >>
> >> - Lars
> >>
> > I'll check the general memalloc implementation. Thanks.
> >
>
> It's a bit dirty but if nobody has any strong objections we could add the
> following temporary hack until there is a generic method for looking up
> genpools. This would allow us to cut down mmp-pcm.c quite a bit by switching
> it over to the generic dmaengine PCM driver.
SNDRV_DMA_TYPE_DEV_IRAM is specific to such machines, so I have no big
objection (as long as we can remember for the later revisit :)
thanks,
Takashi
>
> --- a/sound/core/memalloc.c
> +++ b/sound/core/memalloc.c
> @@ -178,6 +178,15 @@ static void snd_malloc_dev_iram(struct snd_dma_buffer
> *dmab, size_t size)
> if (dev->of_node)
> pool = of_get_named_gen_pool(dev->of_node, "iram", 0);
>
> +#ifdef CONFIG_CPU_MMP2
> + /*
> + * Temporary hack until we have a generic gen_pool lookup
> + * infrastructure.
> + */
> + if (!pool)
> + pool = sram_get_gpool("asram");
> +#endif
> +
> if (!pool)
> return;
>
More information about the Alsa-devel
mailing list