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);