[alsa-devel] [PATCH][RFC] ASoC: soc-dpm: fixup DAI active unbalance
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Fri May 17 05:21:31 CEST 2019
On 5/16/19 8:21 PM, Kuninori Morimoto wrote:
>
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> snd_soc_dai_link_event() is updating snd_soc_dai :: active,
> but it is unbalance.
> It counts up if it has startup callback.
>
> case SND_SOC_DAPM_PRE_PMU:
> ...
> snd_soc_dapm_widget_for_each_source_path(w, path) {
> ...
> if (source->driver->ops->startup) {
> ...
> => source->active++;
> }
> ...
> }
> ...
>
> But, always counts down
>
> case SND_SOC_DAPM_PRE_PMD:
> ...
> snd_soc_dapm_widget_for_each_source_path(w, path) {
> ...
> => source->active--;
> ...
> }
>
> This patch always counts up when SND_SOC_DAPM_PRE_PMD.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
> Mark, Liam
>
> I think this is bug, but I can't confirm it,
> because my driver need to have .startup.
> Thus, I added [RFC] on this patch.
> I'm happy if someone can confirm it.
This looks like a bug since the initial Intel contribution in 2015.
9b8ef9f6b3fc ('ASoC: dapm: Add startup & shutdown for dai_links')
already has this imbalance.
I don't have a clue why this is not symmetric or not done as suggested
by Morimoto-san. Vinod, any idea?
>
> sound/soc/soc-dapm.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
> index c864502..147ad9d 100644
> --- a/sound/soc/soc-dapm.c
> +++ b/sound/soc/soc-dapm.c
> @@ -3828,8 +3828,8 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
> ret);
> goto out;
> }
> - source->active++;
> }
> + source->active++;
> ret = soc_dai_hw_params(&substream, params, source);
> if (ret < 0)
> goto out;
> @@ -3850,8 +3850,8 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
> ret);
> goto out;
> }
> - sink->active++;
> }
> + sink->active++;
> ret = soc_dai_hw_params(&substream, params, sink);
> if (ret < 0)
> goto out;
>
More information about the Alsa-devel
mailing list