[alsa-devel] [PATCH v3] ASoC: dapm - Add API call to query the widgets of valid DAPM paths.
lrg at ti.com
Tue Jul 26 16:26:54 CEST 2011
On Tue, 2011-07-26 at 13:41 +0200, Mark Brown wrote:
> 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.
They should all be OK, the stream event performs a strstr() on each
stream widget so will match left/right etc streams based on the DAI
> 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.
V2 did the substring match, although now that more complex hardware is
appearing I wonder if we should connect DAIs to widgets with the widget
name (rather than just relying on the substring). i.e. each DAI could
have a list of AIF widgets (most would have 1 or 2). Both methods could
co-exist for a while with the substring method being deprecated.
More information about the Alsa-devel