[alsa-devel] [PATCH] ASoC: Fix dapm_is_shared_kcontrol so everything isn't shared

Liam Girdwood lrg at ti.com
Fri May 27 11:19:13 CEST 2011


On 26/05/11 16:57, Stephen Warren wrote:
> Commit af46800 ("ASoC: Implement mux control sharing") introduced
> function dapm_is_shared_kcontrol.
> 
> When this function returns true, the naming of DAPM controls is derived
> from the kcontrol_new. Otherwise, the name comes from the widget (and
> possibly a widget's naming prefix).
> 
> A bug in the implementation of dapm_is_shared_kcontrol made it return 1
> in all cases. Hence, that commit caused a change in control naming for
> all controls instead of just shared controls.
> 
> Specifically, a control is always considered shared because it is always
> compared against itself. Solve this by never comparing against the widget
> containing the control being created.
> 
> Equally, controls should never be shared between DAPM contexts; when the
> same codec is instantiated multiple times, the same kcontrol_new will be
> used. However, the control should no be shared between the multiple
> instances.
> 
> I tested that with the Tegra WM8903 driver:
> * Shared is now mostly 0 as expected, and sometimes 1.
> * The expected controls are still generated after this change.
> 
> However, I don't have any systems that have a widget/control naming
> prefix, so I can't test that aspect.
> 
> Thanks for Jarkko Nikula for pointing out how to fix this.
> 
> v2:
> * Don't share across DAPM contexts.
> * Changed to Tested-by tag below for Jarkko.
> 
> Reported-by: Liam Girdwood <lrg at ti.com>
> Tested-by: Jarkko Nikula <jhnikula at gmail.com>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---

Acked-by: Liam Girdwood <lrg at ti.com>


More information about the Alsa-devel mailing list