diff options
-rw-r--r-- | drivers/media/tuners/e4000.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/tuners/e4000.c b/drivers/media/tuners/e4000.c index ad9309da4a91..6c96e4898777 100644 --- a/drivers/media/tuners/e4000.c +++ b/drivers/media/tuners/e4000.c | |||
@@ -19,6 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include "e4000_priv.h" | 21 | #include "e4000_priv.h" |
22 | #include <linux/math64.h> | ||
22 | 23 | ||
23 | /* write multiple registers */ | 24 | /* write multiple registers */ |
24 | static int e4000_wr_regs(struct e4000_priv *priv, u8 reg, u8 *val, int len) | 25 | static int e4000_wr_regs(struct e4000_priv *priv, u8 reg, u8 *val, int len) |
@@ -233,7 +234,7 @@ static int e4000_set_params(struct dvb_frontend *fe) | |||
233 | * or more. | 234 | * or more. |
234 | */ | 235 | */ |
235 | f_vco = c->frequency * e4000_pll_lut[i].mul; | 236 | f_vco = c->frequency * e4000_pll_lut[i].mul; |
236 | sigma_delta = 0x10000UL * (f_vco % priv->cfg->clock) / priv->cfg->clock; | 237 | sigma_delta = div_u64(0x10000ULL * (f_vco % priv->cfg->clock), priv->cfg->clock); |
237 | buf[0] = f_vco / priv->cfg->clock; | 238 | buf[0] = f_vco / priv->cfg->clock; |
238 | buf[1] = (sigma_delta >> 0) & 0xff; | 239 | buf[1] = (sigma_delta >> 0) & 0xff; |
239 | buf[2] = (sigma_delta >> 8) & 0xff; | 240 | buf[2] = (sigma_delta >> 8) & 0xff; |