Hi All, I found a small bug in soc-pcm.c. For example, we can see kernel logs as follows:
[ 518.707401] SLIMBUS_0_TX: ASoC: trigger BE MSM8996 Media1 cmd 0 // should be SLIMBUS_0_TX other than MSM8996 Media1 [ 518.707414] MSM8996 Media1: ASoC: post trigger FE MSM8996 Media1 cmd 0
Here is the patch.
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index 60d702f..8c037ef 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -1790,7 +1790,7 @@ int dpcm_be_dai_shutdown(struct snd_soc_pcm_runtime *fe, int stream) continue;
dev_dbg(be->dev, "ASoC: close BE %s\n", - dpcm->fe->dai_link->name); + dpcm->be->dai_link->name);
soc_pcm_close(be_substream); be_substream->runtime = NULL; @@ -1856,7 +1856,7 @@ int dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream) continue;
dev_dbg(be->dev, "ASoC: hw_free BE %s\n", - dpcm->fe->dai_link->name); + dpcm->be->dai_link->name);
soc_pcm_hw_free(be_substream);
@@ -1934,7 +1934,7 @@ int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int stream) continue;
dev_dbg(be->dev, "ASoC: hw_params BE %s\n", - dpcm->fe->dai_link->name); + dpcm->be->dai_link->name);
ret = soc_pcm_hw_params(be_substream, &dpcm->hw_params); if (ret < 0) { @@ -2014,7 +2014,7 @@ static int dpcm_do_trigger(struct snd_soc_dpcm *dpcm, int ret;
dev_dbg(dpcm->be->dev, "ASoC: trigger BE %s cmd %d\n", - dpcm->fe->dai_link->name, cmd); + dpcm->be->dai_link->name, cmd);
ret = soc_pcm_trigger(substream, cmd); if (ret < 0) @@ -2229,7 +2229,7 @@ int dpcm_be_dai_prepare(struct snd_soc_pcm_runtime *fe, int stream) continue;
dev_dbg(be->dev, "ASoC: prepare BE %s\n", - dpcm->fe->dai_link->name); + dpcm->be->dai_link->name);
ret = soc_pcm_prepare(be_substream); if (ret < 0) {
Thanks, Donglin Peng