video: avoid build failure on veyron board
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>
Tested-by: Simon Glass <sjg@chromium.org> # chromebook_jerry
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:

committed by
Kever Yang

parent
bb38db086c
commit
8300cebcd6
@@ -14,6 +14,7 @@
|
|||||||
#include <pwm.h>
|
#include <pwm.h>
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
#include <linux/math64.h>
|
||||||
#include <power/regulator.h>
|
#include <power/regulator.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -59,12 +60,14 @@ struct pwm_backlight_priv {
|
|||||||
|
|
||||||
static int set_pwm(struct pwm_backlight_priv *priv)
|
static int set_pwm(struct pwm_backlight_priv *priv)
|
||||||
{
|
{
|
||||||
|
u64 width;
|
||||||
uint duty_cycle;
|
uint duty_cycle;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (priv->period_ns) {
|
if (priv->period_ns) {
|
||||||
duty_cycle = (u64)priv->period_ns * (priv->cur_level - priv->min_level) /
|
width = priv->period_ns * (priv->cur_level - priv->min_level);
|
||||||
(priv->max_level - priv->min_level);
|
duty_cycle = div_u64(width,
|
||||||
|
(priv->max_level - priv->min_level));
|
||||||
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
|
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
|
||||||
duty_cycle);
|
duty_cycle);
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user