Messages in this thread | | | Date | Wed, 24 Aug 2022 07:32:18 +1000 | Subject | Re: [PATCH v2] ASoC: codes: src4xxx: Avoid clang -Wsometimes-uninitialized in src4xxx_hw_params() | From | Matt Flax <> |
| |
This patch looks good.
On 24/8/22 01:19, Nathan Chancellor wrote: > Clang warns: > > sound/soc/codecs/src4xxx.c:280:3: error: variable 'd' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized] > default: > ^~~~~~~ > sound/soc/codecs/src4xxx.c:298:59: note: uninitialized use occurs here > ret = regmap_write(src4xxx->regmap, SRC4XXX_RCV_PLL_11, d); > ^ > sound/soc/codecs/src4xxx.c:223:20: note: initialize the variable 'd' to silence this warning > int val, pj, jd, d; > ^ > = 0 > sound/soc/codecs/src4xxx.c:280:3: error: variable 'jd' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized] > default: > ^~~~~~~ > sound/soc/codecs/src4xxx.c:293:59: note: uninitialized use occurs here > ret = regmap_write(src4xxx->regmap, SRC4XXX_RCV_PLL_10, jd); > ^~ > sound/soc/codecs/src4xxx.c:223:17: note: initialize the variable 'jd' to silence this warning > int val, pj, jd, d; > ^ > = 0 > sound/soc/codecs/src4xxx.c:280:3: error: variable 'pj' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized] > default: > ^~~~~~~ > sound/soc/codecs/src4xxx.c:288:59: note: uninitialized use occurs here > ret = regmap_write(src4xxx->regmap, SRC4XXX_RCV_PLL_0F, pj); > ^~ > sound/soc/codecs/src4xxx.c:223:13: note: initialize the variable 'pj' to silence this warning > int val, pj, jd, d; > ^ > = 0 > 3 errors generated. > > The datasheet does not have any default values for these regmap values > so pick some arbitrary values and print to the user that this is the > case to silence the warnings. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1691 > Reported-by: kernel test robot <lkp@intel.com> > Reported-by: "Sudip Mukherjee (Codethink)" <sudipm.mukherjee@gmail.com> > Suggested-by: Matt Flax <flatmax@flatmax.com> > Signed-off-by: Nathan Chancellor <nathan@kernel.org> > --- > > v1 -> v2: https://lore.kernel.org/20220822183101.1115095-1-nathan@kernel.org/ > > * Don't return early, just initialize the values to some arbitrary > numbers and try to hobble along, as other parts of the chip may be > functional. > > * Add message and comment to describe this situation. > > sound/soc/codecs/src4xxx.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/sound/soc/codecs/src4xxx.c b/sound/soc/codecs/src4xxx.c > index a8f143057b41..db4e280dd055 100644 > --- a/sound/soc/codecs/src4xxx.c > +++ b/sound/soc/codecs/src4xxx.c > @@ -280,9 +280,14 @@ static int src4xxx_hw_params(struct snd_pcm_substream *substream, > default: > /* don't error out here, > * other parts of the chip are still functional > + * Dummy initialize variables to avoid > + * -Wsometimes-uninitialized from clang. > */ > dev_info(component->dev, > - "Couldn't set the RCV PLL as this master clock rate is unknown\n"); > + "Couldn't set the RCV PLL as this master clock rate is unknown. Chosen regmap values may not match real world values.\n"); > + pj = 0x0; > + jd = 0xff; > + d = 0xff; > break; > } > ret = regmap_write(src4xxx->regmap, SRC4XXX_RCV_PLL_0F, pj); > > base-commit: 94f072748337424c9cf92cd018532a34db3a5516
| |