ASoC: tegra: Fix MBDRC bypass mode check
authorSameer Pujar <spujar@nvidia.com>
Wed, 15 Jun 2022 04:38:34 +0000 (10:08 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 15 Jun 2022 08:24:38 +0000 (09:24 +0100)
MBDRC supports different modes of operation. There is no configuration
required for bypass mode. The hw_params() call does not filter bypass
mode correctly and it leads to following Smatch static checker warning:

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

Fix this condition by using proper mode mask and just return for bypass
mode.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: 7358a803c778 ("ASoC: tegra: Add Tegra210 based OPE driver")
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1655267914-24702-1-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/tegra/tegra210_mbdrc.c

index 7d9da33..d786daa 100644 (file)
@@ -775,7 +775,9 @@ int tegra210_mbdrc_hw_params(struct snd_soc_component *cmpnt)
 
        regmap_read(ope->mbdrc_regmap, TEGRA210_MBDRC_CFG, &val);
 
-       if (val & TEGRA210_MBDRC_CFG_MBDRC_MODE_BYPASS)
+       val &= TEGRA210_MBDRC_CFG_MBDRC_MODE_MASK;
+
+       if (val == TEGRA210_MBDRC_CFG_MBDRC_MODE_BYPASS)
                return 0;
 
        for (i = 0; i < MBDRC_NUM_BAND; i++) {