On Fri, Sep 06, 2024 at 07:27:01PM +0100, Mark Brown wrote:
> Are these just warnings introduced by recent versions of the toolchains?
> These commits passed an x86 allmodconfig with GCC 12 at each step (I did
> catch one warning there with another patch in the series that didn't get
> applied) and 0day didn't say anything at any point.
Not sure, I did not look too hard. At cursory glance, I am not sure x86
allmodconfig would catch these, as this code depends on ARCH_MEDIATEK
(not COMPILE_TEST), which only exists for arm and arm64.
> > Clang 19:
>
> That's relatively modern, though some of the warnings don't look
> particularly new and exciting.
Fair although I still see some of them on old versions too:
https://github.com/ClangBuiltLinux/continuous-integration2/actions/runs/10738441894
> > sound/soc/mediatek/mt8365/mt8365-dai-adda.c:93:8: error: implicit conversion from 'unsigned long' to 'unsigned int' changes value from 18446744073709551614 to 4294967294 [-Werror,-Wconstant-conversion]
> > 91 | regmap_update_bits(afe->regmap, AFE_ADDA_UL_DL_CON0,
> > | ~~~~~~~~~~~~~~~~~~
> > 92 | AFE_ADDA_UL_DL_ADDA_AFE_ON,
> > 93 | ~AFE_ADDA_UL_DL_ADDA_AFE_ON);
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> > 1 error generated.
>
> That's a bit surprising, regmap_update_bits() takes an unsigned long? I
> suspect the constants need to be defined as unsigned.
Does it? I see it taking 'unsigned int' for all of its parameters.
$ sed -n '1242,1250p' include/linux/regmap.h
int regmap_update_bits_base(struct regmap *map, unsigned int reg,
unsigned int mask, unsigned int val,
bool *change, bool async, bool force);
static inline int regmap_update_bits(struct regmap *map, unsigned int reg,
unsigned int mask, unsigned int val)
{
return regmap_update_bits_base(map, reg, mask, val, NULL, false, false);
}
Cheers,
Nathan
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]