[alsa-devel] About the platform_name field in snd_soc_dai_link

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Aug 10 15:47:55 CEST 2010

On Tue, Aug 10, 2010 at 03:38:18PM +0200, Sascha Hauer wrote:

> I'm wondering what exactly a snd_soc_platform is. Apparently the
> snd_pcm_ops/pcm_new/pcm_free are specific to a platform. For my
> understanding these operations are more specific to a cpu_dai. Looking
> at the tree it seems that each cpu_dai has exactly one possible
> platform, which seems logical to me because the cpu_dai knows how to
> transfer the data.

They're for the DMA bit of the CPU.  While most platforms have a single
DMA controller (though some have more than one) it's moderately common
to have more than one DAI (eg, dedicated I2S and DSP mode controllers
rather than a programmable serial port, or an AC'97 controller) so it's
useful to share the DMA code.

> My problem on i.MX is that I currently have two possible cpu dais
> (imx-ssi.[01]) and each can be configured to use dma or fiq depending
> on the dma capabilities. So the cpu_dai knows which pcm_ops we have
> to use, but currently it's the soc glue code which has to decide in
> platform_name. Am I understanding something wrong here?

This is mostly a holdover from the existing (current mainline) ASoC
structuring at the minute, that also has the DMA configured per machine.
This may change depending on future hardware requirements, though.

More information about the Alsa-devel mailing list