
On 2023/8/4 08:35, Alvaro Fernando García wrote:
533ad9dc avoided an overflow but causes compilation failure on 32bit boards (eg. veyron speedy)
this commit uses div_u64 which has a fallback codepath for 32bit platforms
Signed-off-by: Alvaro Fernando García alvarofernandogarcia@gmail.com
Reviewed-by: Kever Yang kever.yang@rock-chips.com
Thanks, - Kever
drivers/video/pwm_backlight.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/video/pwm_backlight.c b/drivers/video/pwm_backlight.c index 46c16a8f44..aa0e292866 100644 --- a/drivers/video/pwm_backlight.c +++ b/drivers/video/pwm_backlight.c @@ -14,6 +14,7 @@ #include <pwm.h> #include <asm/gpio.h> #include <linux/delay.h> +#include <linux/math64.h> #include <power/regulator.h>
/** @@ -59,12 +60,14 @@ struct pwm_backlight_priv {
static int set_pwm(struct pwm_backlight_priv *priv) {
u64 width; uint duty_cycle; int ret;
if (priv->period_ns) {
duty_cycle = (u64)priv->period_ns * (priv->cur_level - priv->min_level) /
(priv->max_level - priv->min_level);
width = priv->period_ns * (priv->cur_level - priv->min_level);
duty_cycle = div_u64(width,
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns, duty_cycle); } else {(priv->max_level - priv->min_level));