Commit 511da457 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab

V4L/DVB (11877): lgdt3305: fix 64bit division in function lgdt3305_set_if

Signed-off-by: Michael Krufky <kernellabs.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent a5beb7b3
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* *
*/ */
#include <asm/div64.h>
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
#include "dvb_math.h" #include "dvb_math.h"
#include "lgdt3305.h" #include "lgdt3305.h"
...@@ -496,27 +497,15 @@ static int lgdt3305_set_if(struct lgdt3305_state *state, ...@@ -496,27 +497,15 @@ static int lgdt3305_set_if(struct lgdt3305_state *state,
nco = if_freq_khz / 10; nco = if_freq_khz / 10;
#define LGDT3305_64BIT_DIVISION_ENABLED 0
/* FIXME: 64bit division disabled to avoid linking error:
* WARNING: "__udivdi3" [lgdt3305.ko] undefined!
*/
switch (param->u.vsb.modulation) { switch (param->u.vsb.modulation) {
case VSB_8: case VSB_8:
#if LGDT3305_64BIT_DIVISION_ENABLED
nco <<= 24; nco <<= 24;
nco /= 625; do_div(nco, 625);
#else
nco *= ((1 << 24) / 625);
#endif
break; break;
case QAM_64: case QAM_64:
case QAM_256: case QAM_256:
#if LGDT3305_64BIT_DIVISION_ENABLED
nco <<= 28; nco <<= 28;
nco /= 625; do_div(nco, 625);
#else
nco *= ((1 << 28) / 625);
#endif
break; break;
default: default:
return -EINVAL; return -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment