On Fri, 12 Nov 2010 13:18:41 +0000 Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > On Fri, Nov 12, 2010 at 11:23:25AM +0200, Jarkko Nikula wrote: > > > Cross-device paths are registered by listing the widgets from device A in > > a map for device B. An example below shows a path that connects MONO out of > > A into Line In of B: > > > static const struct snd_soc_dapm_route mapA[] = { > > {"MONO", NULL, "DAC"}, > > }; > > > static const struct snd_soc_dapm_route mapB[] = { > > {"Line In", NULL, "MONO"}, > > }; > > This is going to fall over if we have widgets in two devices with the > same name (and especially if we have two devices of the same kind in the > system). Adding source device names to the paths would probably cover > it with the same format but it should be considered and noted here. > That's the reason why the code favors a widget from current DAPM context in snd_soc_dapm_add_route so that no current machine would (hopefully) break because of this patch. Of course any new code implementing cross-device paths between codecs with conflicting widget names would need the name prefixing stuff also. > > struct snd_soc_dapm_context { > > - struct list_head widgets; > > + int n_widgets; /* number of widgets in this context */ > > I'm not sure why we need to count the number of widgets here; > True, this should go the next patch actually. > > index 835087d..77be6b3 100644 > > --- a/include/sound/soc.h > > +++ b/include/sound/soc.h > > @@ -618,6 +618,7 @@ struct snd_soc_card { > > struct list_head platform_dev_list; > > struct list_head dai_dev_list; > > > > + struct list_head widgets; > > struct list_head paths; > > > > If we keep moving stuff into the card it's questionable what the context > is buying us... DAPM context represent the parent device (codecs currently and other devices in someday) and its state so I don't see we'll be removing it in near future even now the widgets and paths are moved to card. -- Jarkko _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel