[alsa-devel] [PATCH v3] ASoC: dapm - Add API call to query the widgets of valid DAPM paths.

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Jul 26 13:41:18 CEST 2011

On Tue, Jul 26, 2011 at 12:16:36PM +0100, Liam Girdwood wrote:
> On Mon, 2011-07-25 at 23:16 +0200, Mark Brown wrote:

> > Hrm, so I must be missing something here but this still has the issue
> > with only finding the first widget if we've got more than one widget for
> > a stream.  For example, the tlv320aic3x driver defines:

> >    SND_SOC_DAPM_DAC("Left DAC", "Left Playback", DAC_PWR, 7, 0),
> >    SND_SOC_DAPM_DAC("Right DAC", "Right Playback", DAC_PWR, 6, 0),

> > and hooks them both up to a single "Playback" stream (most devices don't
> > even have the distinct names at the widget level).  

> This will only match on the exact name here. So we can retrieve both
> left and right stream widgets by making two separate calls. We should
> also not have two AIF widgets with the same stream name within a DAPM
> context.

OK, right.  If we want to do that then a substantial proportion of the
existing CODEC drivers are broken - they're routinely putting in the
stream name they want to match against rather than adding extra text to
the stream to give unique names that are never used.

It does feel like this ought to be looking things up by widget rather
than by stream, though.  Widget names are already guaranteed unique and
if the users do want to look things up for a single widget only it seems
to make sense to ask for that widget rather than ask for a stream as
it's not how we're currently using streams.  It feels like if we're
asking for a stream we should do the same substring multi-match that we
do when pushing events into them.

More information about the Alsa-devel mailing list