On Tue, Jul 19, 2022 at 6:34 PM David Laight <David.Laight@xxxxxxxxxx> wrote: > From: Mark Brown > > Sent: 19 July 2022 11:17 > > > > On Tue, Jul 19, 2022 at 10:01:54AM +0000, David Laight wrote: > > > From: Shengjiu Wang > > > > > > - 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. > > > > That's casting one pointer type to another pointer type. > > It is casting the address of some type to a 'u32 *'. > This will then be dereferenced by the called function. > So the original type better be 32 bits. > > I'm also guessing that sparse was complaining about endianness? > It isn't at all clear that these casts actually fix it. > > The sparse is complaining about the snd_pcm_format_t cast to u32/int type. The code in include/sound/pcm.h also does such __force cast. #define _SNDRV_PCM_FMTBIT(fmt) (1ULL << (__force int)SNDRV_PCM_FORMAT_##fmt) The change I have made does not cause an issue. Best regards Wang shengjiu > (Mark: You'll be glad to hear that the office aircon is > broken again - two weeks lead time on the spare part.) > > David > > - > Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 > 1PT, UK > Registration No: 1397386 (Wales) > >