[media] drx39xyj: fix 64 bit division on 32 bit arch
authorGianluca Gennari <gennarone@gmail.com>
Tue, 11 Mar 2014 13:41:47 +0000 (10:41 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 11 Mar 2014 13:50:36 +0000 (10:50 -0300)
Fix this linker warning:
WARNING: "__divdi3" [media_build/v4l/drx39xyj.ko] undefined!

[m.chehab@samsung.com: add include for asm/div64.h]
Signed-off-by: Gianluca Gennari <gennarone@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/dvb-frontends/drx39xyj/drxj.c

index b8c5a851c29e954aa82ae2e03749b95861334f04..9482954fd453bbda66805a40a6b1aceab6adbfb9 100644 (file)
@@ -59,6 +59,7 @@ INCLUDE FILES
 #include <linux/init.h>
 #include <linux/string.h>
 #include <linux/slab.h>
+#include <asm/div64.h>
 
 #include "dvb_frontend.h"
 #include "drx39xxj.h"
@@ -12002,13 +12003,16 @@ static int drx39xxj_read_signal_strength(struct dvb_frontend *fe,
 static int drx39xxj_read_snr(struct dvb_frontend *fe, u16 *snr)
 {
        struct dtv_frontend_properties *p = &fe->dtv_property_cache;
+       u64 tmp64;
 
        if (p->cnr.stat[0].scale == FE_SCALE_NOT_AVAILABLE) {
                *snr = 0;
                return 0;
        }
 
-       *snr = p->cnr.stat[0].svalue / 10;
+       tmp64 = p->cnr.stat[0].svalue;
+       do_div(tmp64, 10);
+       *snr = tmp64;
        return 0;
 }