[alsa-devel] [PATCH] ASoC: core: Add support for DAI driver DAI widgets.

Mark Brown broonie at opensource.wolfsonmicro.com
Wed Mar 7 21:37:23 CET 2012

On Wed, Mar 07, 2012 at 11:47:42AM +0000, Liam Girdwood wrote:

> Automatically create DAI widgets for DAI drivers. This allows us to connect
> CPU DAIs into the DAPM graph. The widgets use the DAI driver dev name with
> a "Playback" or "Capture" suffix.

So what this is doing is the above which is really about synthesising a
name for streams where the driver didn't provide one.  This isn't
specific to CPU DAIs, it'll apply just as well to CODEC DAIs that don't
specify a per stream name for whatever reason.  

> Also add a snd_soc_dai member to snd_soc_widget so that we dont have to
> use the widget private data.

If we're going to do that I think we should just drop the private data
field, this is exactly the sort of stuff it was added for.  Currently
it's only used by DAIs and regulator supplies.

> +#define NAME_SIZE	32

32 bytes is enough for everyone!  :P  Actually it should be so no real

>  	if (dai->driver->playback.stream_name) {
> -		template.id = snd_soc_dapm_dai;
>  		template.name = dai->driver->playback.stream_name;
>  		template.sname = dai->driver->playback.stream_name;
> +	} else {
> +		snprintf(name, NAME_SIZE, "%s %s", dev_name(dai->dev), "Playback");
> +		template.name = name;
> +		template.sname = name;
> +	}

Isn't this going to get complicated to use when building up the DAPM
routes?  The device is going to need to know its own dev_name() to
supply a table of routes which would mean you'd have to dynamically
create the routing table (or just specify a name and skip the whole
thing I guess).  

Could we not just use plain old "Playback" and "Capture" here?  We could
then use the name_prefix mechanism which we've got to support multiple
CODECs with the CPU side stuff as well, that will then take care of the
DAPM routes in the same way it does for the CODECs - it'd allow them to
use simple data tables with no dev_name in them which seems like a win.
We'd want to supply a default name_prefix for CPU DAIs but that seems

This would also ensure that this mechanism works for multi-CODEC systems
which I've got a horrible feeling are going to run into trouble at some
point soon for the same reason you're adding in the dev_names here.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20120307/ca4fdcf9/attachment.sig 

More information about the Alsa-devel mailing list