[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f2609401c8834e8bbe926200bfc87971@AcuMS.aculab.com>
Date: Tue, 19 Jul 2022 10:01:54 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Shengjiu Wang' <shengjiu.wang@....com>,
"shengjiu.wang@...il.com" <shengjiu.wang@...il.com>,
"Xiubo.Lee@...il.com" <Xiubo.Lee@...il.com>,
"festevam@...il.com" <festevam@...il.com>,
"nicoleotsuka@...il.com" <nicoleotsuka@...il.com>,
"lgirdwood@...il.com" <lgirdwood@...il.com>,
"broonie@...nel.org" <broonie@...nel.org>,
"perex@...ex.cz" <perex@...ex.cz>,
"tiwai@...e.com" <tiwai@...e.com>,
"alsa-devel@...a-project.org" <alsa-devel@...a-project.org>,
"linuxppc-dev@...ts.ozlabs.org" <linuxppc-dev@...ts.ozlabs.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH -next 2/5] ASoC: fsl_asrc: force cast the asrc_format type
From: Shengjiu Wang
> Sent: 19 July 2022 10:28
>
> Fix sparse warning:
> sound/soc/fsl/fsl_asrc.c:1177:60: sparse: warning: incorrect type in argument 3 (different base types)
> sound/soc/fsl/fsl_asrc.c:1177:60: sparse: expected unsigned int [usertype] *out_value
> sound/soc/fsl/fsl_asrc.c:1177:60: sparse: got restricted snd_pcm_format_t *
> sound/soc/fsl/fsl_asrc.c:1200:47: sparse: warning: restricted snd_pcm_format_t degrades to integer
>
> Fixes: 4520af41fd21 ("ASoC: fsl_asrc: Support new property fsl,asrc-format")
> Signed-off-by: Shengjiu Wang <shengjiu.wang@....com>
> ---
> sound/soc/fsl/fsl_asrc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
> index 20a9f8e924b3..544395efd605 100644
> --- a/sound/soc/fsl/fsl_asrc.c
> +++ b/sound/soc/fsl/fsl_asrc.c
> @@ -1174,7 +1174,7 @@ static int fsl_asrc_probe(struct platform_device *pdev)
> return ret;
> }
>
> - ret = of_property_read_u32(np, "fsl,asrc-format", &asrc->asrc_format);
> + ret = of_property_read_u32(np, "fsl,asrc-format", (u32 *)&asrc->asrc_format);
Ugg, you really shouldn't need to do that.
It means that something is badly wrong somewhere.
Casting pointers to integer types is just asking for a bug.
> if (ret) {
> ret = of_property_read_u32(np, "fsl,asrc-width", &width);
> if (ret) {
> @@ -1197,7 +1197,7 @@ static int fsl_asrc_probe(struct platform_device *pdev)
> }
> }
>
> - if (!(FSL_ASRC_FORMATS & (1ULL << asrc->asrc_format))) {
> + if (!(FSL_ASRC_FORMATS & (1ULL << (__force u32)asrc->asrc_format))) {
Ditto.
David
> dev_warn(&pdev->dev, "unsupported width, use default S24_LE\n");
> asrc->asrc_format = SNDRV_PCM_FORMAT_S24_LE;
> }
> --
> 2.34.1
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists