Re: [bug report] ASoC: tegra: Add Tegra210 based OPE driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 14-06-2022 11:39, Dan Carpenter wrote:
Hello Sameer Pujar,

The patch 7358a803c778: "ASoC: tegra: Add Tegra210 based OPE driver"
from Jun 3, 2022, leads to the following Smatch static checker
warning:

          sound/soc/tegra/tegra210_mbdrc.c:778 tegra210_mbdrc_hw_params()
          warn: bitwise AND condition is false here

sound/soc/tegra/tegra210_mbdrc.c
      769 int tegra210_mbdrc_hw_params(struct snd_soc_component *cmpnt)
      770 {
      771         struct tegra210_ope *ope = snd_soc_component_get_drvdata(cmpnt);
      772         const struct tegra210_mbdrc_config *conf = &mbdrc_init_config;
      773         u32 val = 0;
      774         unsigned int i;
      775
      776         regmap_read(ope->mbdrc_regmap, TEGRA210_MBDRC_CFG, &val);
      777
--> 778         if (val & TEGRA210_MBDRC_CFG_MBDRC_MODE_BYPASS)
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TEGRA210_MBDRC_CFG_MBDRC_MODE_BYPASS is zero so this can't be true.

#define TEGRA210_MBDRC_CFG_MBDRC_MODE_BYPASS            (0 << TEGRA210_MBDRC_CFG_MBDRC_MODE_SHIFT)

The common false positive with this warning is that the macro is
something which depends on the .config and in that case I just add it
to the list in smatch_data/kernel.unconstant_macros.  But in this case
the macro is just always zero...  Is there a plan to make it
configurable or something?
Thanks Dan for reporting this. The device is actually configurable. I will
provide a patch to fix above condition.
What I meant by configurable is:

#ifdef CONFIG_FOO
#define MASK 0x30
#else
#define MASK 0
#endif

Smatch works on the preprocessed source so it doesn't see that there
are two definitions of MASK.

By configurable I meant, the device (OPE in this case) supports different configurations driven by user space control settings. Above if condition (val & TEGRA210_MBDRC_CFG_MBDRC_MODE_BYPASS) is wrong, instead proper mask needs to be used. I have sent a patch to fix this now.



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux