ASoC: nau8824: use 64-bit arithmetic instead of 32-bit
Add suffix ULL to constant 256 in order to give the compiler complete information about the proper arithmetic to use. Notice that such constant is used in a context that expects an expression of type u64 (64 bits, unsigned) and the following expression is currently being evaluated using 32-bit arithmetic: 256 * fs * 2 * mclk_src_scaling[i].param Addresses-Coverity-ID: 1432039 ("Unintentional integer overflow") Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
90eb6b59d3
commit
f7ddff54d0
1 changed files with 1 additions and 1 deletions
|
@ -1274,7 +1274,7 @@ static int nau8824_calc_fll_param(unsigned int fll_in,
|
||||||
fvco_max = 0;
|
fvco_max = 0;
|
||||||
fvco_sel = ARRAY_SIZE(mclk_src_scaling);
|
fvco_sel = ARRAY_SIZE(mclk_src_scaling);
|
||||||
for (i = 0; i < ARRAY_SIZE(mclk_src_scaling); i++) {
|
for (i = 0; i < ARRAY_SIZE(mclk_src_scaling); i++) {
|
||||||
fvco = 256 * fs * 2 * mclk_src_scaling[i].param;
|
fvco = 256ULL * fs * 2 * mclk_src_scaling[i].param;
|
||||||
if (fvco > NAU_FVCO_MIN && fvco < NAU_FVCO_MAX &&
|
if (fvco > NAU_FVCO_MIN && fvco < NAU_FVCO_MAX &&
|
||||||
fvco_max < fvco) {
|
fvco_max < fvco) {
|
||||||
fvco_max = fvco;
|
fvco_max = fvco;
|
||||||
|
|
Loading…
Reference in a new issue