On 21/09/2022 17:25, Pierre-Louis Bossart wrote:
Wait, no, this is correct. Please point to what is wrong in kernel doc. I don't see it. :(
the TRIGGER_STOP and TRIGGER_PAUSE_PUSH do the same thing. There is no specific mapping of disable() to TRIGGER_STOP and unprepare() to TRIGGER_PAUSE_PUSH as the documentation hints at.
Which TRIGGER_STOP and TRIGGER_PAUSE_PUSH? In one specific codec driver? If yes, I don't think Slimbus documentation should care how actual users implement it (e.g. coalesce states).
In both of the patches you just modified :-)
Yeah, but this is just some implementation. How this implementation calls, e.g. whether they split STOP from PAUSE is not the concern of Slimbus.
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c index 06c6adbe5920..d2548fdf9ae5 100644 --- a/sound/soc/codecs/wcd9335.c +++ b/sound/soc/codecs/wcd9335.c @@ -1972,8 +1972,8 @@ static int wcd9335_trigger(struct snd_pcm_substream *substream, int cmd, case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
slim_stream_disable(dai_data->sruntime);slim_stream_unprepare(dai_data->sruntime);
break; default:slim_stream_unprepare(dai_data->sruntime);
diff --git a/sound/soc/codecs/wcd934x.c b/sound/soc/codecs/wcd934x.c index f56907d0942d..28175c746b9a 100644 --- a/sound/soc/codecs/wcd934x.c +++ b/sound/soc/codecs/wcd934x.c @@ -1913,8 +1913,8 @@ static int wcd934x_trigger(struct snd_pcm_substream *substream, int cmd, case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
slim_stream_disable(dai_data->sruntime);slim_stream_unprepare(dai_data->sruntime);
break; default: break;slim_stream_unprepare(dai_data->sruntime);
the bus provides helpers to be used in well-defined transitions. A codec driver doing whatever it wants whenever it wants would create chaos for the bus.
True, but it's the problem of the codec, not the Slimbus.
Best regards, Krzysztof