summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends/lgdt3305.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/frontends/lgdt3305.c')
-rw-r--r--linux/drivers/media/dvb/frontends/lgdt3305.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/linux/drivers/media/dvb/frontends/lgdt3305.c b/linux/drivers/media/dvb/frontends/lgdt3305.c
index aeb34e924..b16410c64 100644
--- a/linux/drivers/media/dvb/frontends/lgdt3305.c
+++ b/linux/drivers/media/dvb/frontends/lgdt3305.c
@@ -19,6 +19,7 @@
*
*/
+#include <asm/div64.h>
#include "compat.h"
#include <linux/dvb/frontend.h>
#include "dvb_math.h"
@@ -497,27 +498,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;
@@ -936,7 +925,7 @@ static int lgdt3305_read_snr(struct dvb_frontend *fe, u16 *snr)
/* convert from 8.24 fixed-point to 8.8 */
*snr = (state->snr) >> 16;
#else
- /*report SNR in dB * 10 */
+ /* report SNR in dB * 10 */
*snr = (state->snr / ((1 << 24) / 10));
#endif
lg_dbg("noise = 0x%08x, snr = %d.%02d dB\n", noise,
@@ -1075,7 +1064,6 @@ struct dvb_frontend *lgdt3305_attach(const struct lgdt3305_config *config,
return &state->frontend;
fail:
lg_warn("unable to detect LGDT3305 hardware\n");
- state->frontend.demodulator_priv = NULL;
kfree(state);
return NULL;
}
@@ -1105,8 +1093,9 @@ static struct dvb_frontend_ops lgdt3305_ops = {
};
MODULE_DESCRIPTION("LG Electronics LGDT3305 ATSC/QAM-B Demodulator Driver");
-MODULE_AUTHOR("Michael Krufky");
+MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>");
MODULE_LICENSE("GPL");
+MODULE_VERSION("0.1");
/*
* Local variables: