diff options
author | Hans de Goede <hdegoede@redhat.com> | 2012-08-10 07:47:25 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-09-13 17:42:09 -0300 |
commit | 4fad5c474f9078dd133996cabaffdb5df8a1e28e (patch) | |
tree | a41eb2d3470ee04d4031a12a7333c6d434ed81e8 /drivers/media/radio | |
parent | fc488517cc0d50bcc9e4ffa90fee5755f9c914fc (diff) |
[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 <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/radio')
-rw-r--r-- | drivers/media/radio/radio-tea5777.c | 12 |
1 files 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 <media/v4l2-fh.h> #include <media/v4l2-ioctl.h> #include <media/v4l2-event.h> -#include <asm/div64.h> #include "radio-tea5777.h" MODULE_AUTHOR("Hans de Goede <perex@perex.cz>"); @@ -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); |