V4L/DVB (11877): lgdt3305: fix 64bit division in function lgdt3305_set_if
Signed-off-by: Michael Krufky <kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
a5beb7b323
commit
511da45734
|
@ -19,6 +19,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <asm/div64.h>
|
||||
#include <linux/dvb/frontend.h>
|
||||
#include "dvb_math.h"
|
||||
#include "lgdt3305.h"
|
||||
|
@ -496,27 +497,15 @@ static int lgdt3305_set_if(struct lgdt3305_state *state,
|
|||
|
||||
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) {
|
||||
case VSB_8:
|
||||
#if LGDT3305_64BIT_DIVISION_ENABLED
|
||||
nco <<= 24;
|
||||
nco /= 625;
|
||||
#else
|
||||
nco *= ((1 << 24) / 625);
|
||||
#endif
|
||||
do_div(nco, 625);
|
||||
break;
|
||||
case QAM_64:
|
||||
case QAM_256:
|
||||
#if LGDT3305_64BIT_DIVISION_ENABLED
|
||||
nco <<= 28;
|
||||
nco /= 625;
|
||||
#else
|
||||
nco *= ((1 << 28) / 625);
|
||||
#endif
|
||||
do_div(nco, 625);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
|
Loading…
Reference in a new issue