diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 20:43:23 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-23 07:09:11 -0400 |
commit | 29e031d5b09ae60d0ecdb6a1d869d591d63e893a (patch) | |
tree | 9f1a516ffa0380b1e4ac2191a985602925d058e6 /drivers/media/dvb/frontends/drx397xD.c | |
parent | 89f9257c06cb635ef140bd1acf21fb067ed4ed34 (diff) |
V4L/DVB (7737): drx397xD: fix math usage
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>
Diffstat (limited to 'drivers/media/dvb/frontends/drx397xD.c')
-rw-r--r-- | drivers/media/dvb/frontends/drx397xD.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/media/dvb/frontends/drx397xD.c b/drivers/media/dvb/frontends/drx397xD.c index b0ff77ffc88b..af4354662124 100644 --- a/drivers/media/dvb/frontends/drx397xD.c +++ b/drivers/media/dvb/frontends/drx397xD.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/string.h> | 27 | #include <linux/string.h> |
28 | #include <linux/firmware.h> | 28 | #include <linux/firmware.h> |
29 | #include <asm/div64.h> | ||
29 | 30 | ||
30 | #include "dvb_frontend.h" | 31 | #include "dvb_frontend.h" |
31 | #include "drx397xD.h" | 32 | #include "drx397xD.h" |
@@ -1024,17 +1025,15 @@ static int drx_tune(struct drx397xD_state *s, | |||
1024 | rc = WR16(s, 0x0820050, rc); | 1025 | rc = WR16(s, 0x0820050, rc); |
1025 | 1026 | ||
1026 | { | 1027 | { |
1027 | long dummy; | ||
1028 | |||
1029 | /* Configure bandwidth specific factor */ | 1028 | /* Configure bandwidth specific factor */ |
1030 | ebx = div_ll_X_l_rem(((u64) (s->f_osc) << 21) + (ebx >> 1), | 1029 | ebx = div64_64(((u64) (s->f_osc) << 21) + (ebx >> 1), |
1031 | ebx, &dummy) - 0x800000; | 1030 | (u64)ebx) - 0x800000; |
1032 | EXIT_RC(WR16(s, 0x0c50010, ebx & 0xffff)); | 1031 | EXIT_RC(WR16(s, 0x0c50010, ebx & 0xffff)); |
1033 | EXIT_RC(WR16(s, 0x0c50011, ebx >> 16)); | 1032 | EXIT_RC(WR16(s, 0x0c50011, ebx >> 16)); |
1034 | 1033 | ||
1035 | /* drx397xD oscillator calibration */ | 1034 | /* drx397xD oscillator calibration */ |
1036 | ebx = div_ll_X_l_rem(((u64) (s->config.f_if + df_tuner) << 28) + | 1035 | ebx = div64_64(((u64) (s->config.f_if + df_tuner) << 28) + |
1037 | (s->f_osc >> 1), s->f_osc, &dummy); | 1036 | (s->f_osc >> 1), (u64)s->f_osc); |
1038 | } | 1037 | } |
1039 | ebx &= 0xfffffff; | 1038 | ebx &= 0xfffffff; |
1040 | if (fep->inversion == INVERSION_ON) | 1039 | if (fep->inversion == INVERSION_ON) |