Re: [PATCH v2] ASoC: SOF: sof-audio: pcm_id is __le32

From: Péter Ujfalusi

Date: Tue Mar 10 2026 - 09:33:37 EST




On 10/03/2026 13:40, Ben Dooks wrote:
> The pcm_id value is __le32 so convert it before passing to the dev_dbg
> function to be printed. Picked up by sparse prototype for variadic and printf
> function checking.
>
> Fixes a large number of sparse warnings, such as:
>
> sound/soc/sof/pcm.c:84:25: warning: incorrect type in argument 4 (different base types)
> sound/soc/sof/pcm.c:84:25: expected unsigned int
> sound/soc/sof/pcm.c:84:25: got restricted __le32 [usertype] pcm_id

I do wonder how this could worked over the years :o
Can you update the patch to fix the other instances as well?
sound/soc/sof/compress.c
sound/soc/sof/ipc4-topology.c

Thank you, with that please add my
Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxxxxxxxx>

>
> Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
> ---
> v2: fix missing __le32 conversions
> ---
> sound/soc/sof/pcm.c | 4 ++--
> sound/soc/sof/sof-audio.h | 11 +++++++----
> 2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
> index 5b598d0940eb..16c194b4851b 100644
> --- a/sound/soc/sof/pcm.c
> +++ b/sound/soc/sof/pcm.c
> @@ -361,7 +361,7 @@ static int sof_pcm_prepare(struct snd_soc_component *component,
> ret = sof_widget_list_setup(sdev, spcm, params, platform_params, dir);
> if (ret < 0) {
> dev_err(sdev->dev, "failed widget list set up for pcm %d dir %d\n",
> - spcm->pcm.pcm_id, dir);
> + le32_to_cpu(spcm->pcm.pcm_id), dir);
> spcm->stream[dir].list = NULL;
> snd_soc_dapm_dai_free_widgets(&list);
> return ret;
> @@ -652,7 +652,7 @@ static int sof_pcm_new(struct snd_soc_component *component,
> }
>
> dev_dbg(spcm->scomp->dev, "pcm%u (%s): Entry: pcm_construct\n",
> - spcm->pcm.pcm_id, spcm->pcm.pcm_name);
> + le32_to_cpu(spcm->pcm.pcm_id), spcm->pcm.pcm_name);
>
> /* do we need to pre-allocate playback audio buffer pages */
> if (!spcm->pcm.playback)
> diff --git a/sound/soc/sof/sof-audio.h b/sound/soc/sof/sof-audio.h
> index 36082e764bf9..cf6499464a64 100644
> --- a/sound/soc/sof/sof-audio.h
> +++ b/sound/soc/sof/sof-audio.h
> @@ -641,17 +641,20 @@ void snd_sof_pcm_init_elapsed_work(struct work_struct *work);
> */
> #define spcm_dbg(__spcm, __dir, __fmt, ...) \
> dev_dbg((__spcm)->scomp->dev, "pcm%u (%s), dir %d: " __fmt, \
> - (__spcm)->pcm.pcm_id, (__spcm)->pcm.pcm_name, __dir, \
> + le32_to_cpu((__spcm)->pcm.pcm_id), \
> + (__spcm)->pcm.pcm_name, __dir, \
> ##__VA_ARGS__)
>
> #define spcm_dbg_ratelimited(__spcm, __dir, __fmt, ...) \
> dev_dbg_ratelimited((__spcm)->scomp->dev, "pcm%u (%s), dir %d: " __fmt, \
> - (__spcm)->pcm.pcm_id, (__spcm)->pcm.pcm_name, __dir, \
> - ##__VA_ARGS__)
> + le32_to_cpu((__spcm)->pcm.pcm_id), \
> + (__spcm)->pcm.pcm_name, __dir, \
> + ##__VA_ARGS__)
>
> #define spcm_err(__spcm, __dir, __fmt, ...) \
> dev_err((__spcm)->scomp->dev, "%s: pcm%u (%s), dir %d: " __fmt, \
> - __func__, (__spcm)->pcm.pcm_id, (__spcm)->pcm.pcm_name, __dir, \
> + __func__, le32_to_cpu((__spcm)->pcm.pcm_id) \
> + , (__spcm)->pcm.pcm_name, __dir, \
> ##__VA_ARGS__)
>
> #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMPRESS)

--
Péter