[alsa-devel] [PATCH 0/4] Implement control sharing
Liam Girdwood
lrg at slimlogic.co.uk
Fri Apr 29 17:28:42 CEST 2011
On Thu, 2011-04-28 at 17:37 -0600, Stephen Warren wrote:
> Control sharing is enabled when two widgets include pointers to the
> same kcontrol_new in their definition. Specifically:
>
> static const struct snd_kcontrol_new adcinput_mux =
> SOC_DAPM_ENUM("ADC Input", adcinput_enum);
>
> static const struct snd_soc_dapm_widget wm8903_dapm_widgets[] = {
> SND_SOC_DAPM_MUX("Left ADC Input", SND_SOC_NOPM, 0, 0, &adcinput_mux),
> SND_SOC_DAPM_MUX("Right ADC Input", SND_SOC_NOPM, 0, 0, &adcinput_mux),
> };
>
> This is useful when a single register bit or field affects multiple
> muxes at once. The common case is to have separate control bits or
> fields for each mux (channel). An alternative way of looking at this
> is that the mux is a stereo (or even n-channel) mux, rather than
> independant mono muxes.
>
> I have tested this on NVIDIA Tegra Seaboard, specifically with the WM8903
> "ADC Input" control, and a locally-enabled digital mic setup.
>
> I have not compiled nor tested any other platforms.
>
> This patchset does not implement control sharing for dapm_new_mixer() yet.
> I can do so after discussion/review of this patch series, although note that
> I don't have anything to test the actual sharing on for such controls.
>
> Stephen Warren (4):
> ASoC: s/w->kcontrols/w->kcontrol_news/g
> ASoC: Add w->kcontrols, and populate it
> ASoC: Store a list of widgets in a DAPM mux/mixer kcontrol
> ASoC: Implement mux control sharing
>
> include/sound/soc-dapm.h | 75 +++++----
> sound/soc/codecs/88pm860x-codec.c | 2 +-
> sound/soc/soc-dapm.c | 315 ++++++++++++++++++++++++++-----------
> 3 files changed, 266 insertions(+), 126 deletions(-)
>
All
Acked-by: Liam Girdwood <lrg at ti.com>
More information about the Alsa-devel
mailing list