video: backlight: pwm: avoid integer overflow in duty cycle calculation

The intermediate value could overflow for large periods and levels.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Matthias Schiffer 2023-06-30 14:30:07 +02:00 committed by Anatolij Gustschin
parent 6a0b888580
commit 533ad9dcda

View file

@ -63,7 +63,7 @@ static int set_pwm(struct pwm_backlight_priv *priv)
int ret;
if (priv->period_ns) {
duty_cycle = priv->period_ns * (priv->cur_level - priv->min_level) /
duty_cycle = (u64)priv->period_ns * (priv->cur_level - priv->min_level) /
(priv->max_level - priv->min_level);
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
duty_cycle);