diff --git a/sound/soc/tegra/tegra210_mbdrc.c b/sound/soc/tegra/tegra210_mbdrc.c index 0bc14c98..961c8495 100644 --- a/sound/soc/tegra/tegra210_mbdrc.c +++ b/sound/soc/tegra/tegra210_mbdrc.c @@ -145,7 +145,8 @@ static int tegra210_mbdrc_get(struct snd_kcontrol *kcontrol, (struct soc_mixer_control *)kcontrol->private_value; struct snd_soc_component *cmpnt = snd_soc_kcontrol_component(kcontrol); struct tegra210_ope *ope = snd_soc_component_get_drvdata(cmpnt); - unsigned int mask = (1 << fls(mc->max)) - 1; + unsigned long long fls_val = 1 << fls(mc->max); + unsigned int mask = fls_val - 1; unsigned int val; regmap_read(ope->mbdrc_regmap, mc->reg, &val); @@ -164,7 +165,8 @@ static int tegra210_mbdrc_put(struct snd_kcontrol *kcontrol, (struct soc_mixer_control *)kcontrol->private_value; struct snd_soc_component *cmpnt = snd_soc_kcontrol_component(kcontrol); struct tegra210_ope *ope = snd_soc_component_get_drvdata(cmpnt); - unsigned int mask = (1 << fls(mc->max)) - 1; + unsigned long long fls_val = 1 << fls(mc->max); + unsigned int mask = fls_val - 1; unsigned int val; val = (ucontrol->value.integer.value[0] & mask);