[PATCH] ASoC: soc-pcm: fix regression in soc_new_pcm()

Jerome Brunet jbrunet at baylibre.com
Tue Feb 18 16:19:13 CET 2020


On Tue 18 Feb 2020 at 11:38, Stephan Gerhold <stephan at gerhold.net> wrote:

> Commit af4bac11531f ("ASoC: soc-pcm: crash in snd_soc_dapm_new_dai")
> swapped the SNDRV_PCM_STREAM_* parameter in the
> snd_soc_dai_stream_valid(cpu_dai, ...) checks. But that works only
> for codec2codec links. For normal links it breaks registration of
> playback/capture-only PCM devices.
>
> E.g. on qcom/apq8016_sbc there is usually one playback-only and one
> capture-only PCM device, but they disappeared after the commit.
>
> The codec2codec case was added in commit a342031cdd08
> ("ASoC: create pcm for codec2codec links as well") as an extra check
> (e.g. `playback = playback && cpu_playback->channels_min`).

That particular check was there when I worked on that change but I seems
I messed up when I rebased on Kuninori's work regarding
snd_soc_dai_stream_valid() which happened more or less at the same time.

>
> We should be able to simplify the code by checking directly for
> the correct stream type in the loop.
> This also fixes the regression because we check for PLAYBACK for
> both codec and cpu dai again when codec2codec is not used.
>
> Cc: Sameer Pujar <spujar at nvidia.com>
> Cc: Jerome Brunet <jbrunet at baylibre.com>
> Fixes: af4bac11531f ("ASoC: soc-pcm: crash in snd_soc_dapm_new_dai")
> Signed-off-by: Stephan Gerhold <stephan at gerhold.net>

Looks good and works with the codec-to-codec links on Amlogic aiu. Thx !

Reviewed-by: Jerome Brunet <jbrunet at baylibre.com>
Tested-by: Jerome Brunet <jbrunet at baylibre.com>


More information about the Alsa-devel mailing list