ASoC: snd_soc_dapm_get_pin_status: Match other contexts too
Not all widgets on a card are within the codec's DAPM context. Fix snd_soc_dapm_get_pin_status to search all contexts when looking for a widget. This change is required when modifying tegra_wm8903 to use snd_soc_card.widgets rather than calling snd_soc_dapm_new_controls; the former adds the widgets to the card's DAPM context, whereas tegra_wm8903 uses the codec's DAPM context when calling snd_soc_dapm_new_controls. By code inspection, I suspect this also applies to Samsung Speyside. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
a32955dba2
Коммит
a68b38ada5
|
@ -2403,6 +2403,12 @@ int snd_soc_dapm_get_pin_status(struct snd_soc_dapm_context *dapm,
|
|||
return w->connected;
|
||||
}
|
||||
|
||||
/* Try again in other contexts */
|
||||
list_for_each_entry(w, &dapm->card->widgets, list) {
|
||||
if (!strcmp(w->name, pin))
|
||||
return w->connected;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_dapm_get_pin_status);
|
||||
|
|
Загрузка…
Ссылка в новой задаче