From 4fad5c474f9078dd133996cabaffdb5df8a1e28e Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 10 Aug 2012 07:47:25 -0300 Subject: [PATCH] [media] radio-tea5777.c: Get rid of do_div usage freq fits easily into 32 bits until it gets shifted, so make it 32 bits, and cast it to 64 bits before shifting. [mchehab@redhat.com: also remove asm/div64.h header, as this is not needed anymore] Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab --- drivers/media/radio/radio-tea5777.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/media/radio/radio-tea5777.c b/drivers/media/radio/radio-tea5777.c index 5bc9fa62720b..8cfa364b8190 100644 --- a/drivers/media/radio/radio-tea5777.c +++ b/drivers/media/radio/radio-tea5777.c @@ -33,7 +33,6 @@ #include #include #include -#include #include "radio-tea5777.h" MODULE_AUTHOR("Hans de Goede "); @@ -155,18 +154,17 @@ static u32 tea5777_freq_to_v4l2_freq(struct radio_tea5777 *tea, u32 freq) static int radio_tea5777_set_freq(struct radio_tea5777 *tea) { - u64 freq; + u32 freq; int res; freq = clamp_t(u32, tea->freq, - TEA5777_FM_RANGELOW, TEA5777_FM_RANGEHIGH) + 8; - do_div(freq, 16); /* to kHz */ + TEA5777_FM_RANGELOW, TEA5777_FM_RANGEHIGH); + freq = (freq + 8) / 16; /* to kHz */ - freq -= TEA5777_FM_IF; - do_div(freq, TEA5777_FM_FREQ_STEP); + freq = (freq - TEA5777_FM_IF) / TEA5777_FM_FREQ_STEP; tea->write_reg &= ~(TEA5777_W_FM_PLL_MASK | TEA5777_W_FM_FREF_MASK); - tea->write_reg |= freq << TEA5777_W_FM_PLL_SHIFT; + tea->write_reg |= (u64)freq << TEA5777_W_FM_PLL_SHIFT; tea->write_reg |= TEA5777_W_FM_FREF_VALUE << TEA5777_W_FM_FREF_SHIFT; res = tea->ops->write_reg(tea, tea->write_reg); -- 2.30.2