]> err.no Git - linux-2.6/commitdiff
V4L/DVB (7737): drx397xD: fix math usage
authorMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Apr 2008 00:43:23 +0000 (21:43 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 23 Jul 2008 11:09:11 +0000 (08:09 -0300)
The previous code were using a div64 math specific to i386. Replace for an
asm-generic one.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/frontends/drx397xD.c

index b0ff77ffc88bf2b014b24db82dee88e946954cc0..af43546621243b88030088ac0ce7deb68b419452 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/delay.h>
 #include <linux/string.h>
 #include <linux/firmware.h>
+#include <asm/div64.h>
 
 #include "dvb_frontend.h"
 #include "drx397xD.h"
@@ -1024,17 +1025,15 @@ static int drx_tune(struct drx397xD_state *s,
        rc = WR16(s, 0x0820050, rc);
 
        {
-               long dummy;
-
                /* Configure bandwidth specific factor */
-               ebx = div_ll_X_l_rem(((u64) (s->f_osc) << 21) + (ebx >> 1),
-                                    ebx, &dummy) - 0x800000;
+               ebx = div64_64(((u64) (s->f_osc) << 21) + (ebx >> 1),
+                                    (u64)ebx) - 0x800000;
                EXIT_RC(WR16(s, 0x0c50010, ebx & 0xffff));
                EXIT_RC(WR16(s, 0x0c50011, ebx >> 16));
 
                /* drx397xD oscillator calibration */
-               ebx = div_ll_X_l_rem(((u64) (s->config.f_if + df_tuner) << 28) +
-                                    (s->f_osc >> 1), s->f_osc, &dummy);
+               ebx = div64_64(((u64) (s->config.f_if + df_tuner) << 28) +
+                                    (s->f_osc >> 1), (u64)s->f_osc);
        }
        ebx &= 0xfffffff;
        if (fep->inversion == INVERSION_ON)