summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2009-12-11 13:11:05 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-16 09:27:50 -0200
commit3ab1b9cecdc6540a5b79500b1c10c4362a9cc5f1 (patch)
treea9234df481a15630ab50f734a8a55db3310633ec /drivers/media
parent5bf583473813530c1bf82051a35fac8d5045f4f7 (diff)
downloadlinux-3.10-3ab1b9cecdc6540a5b79500b1c10c4362a9cc5f1.tar.gz
linux-3.10-3ab1b9cecdc6540a5b79500b1c10c4362a9cc5f1.tar.bz2
linux-3.10-3ab1b9cecdc6540a5b79500b1c10c4362a9cc5f1.zip
V4L/DVB: lgs8gxx: Use shifts rather than multiply/divide when possible
If val is a u64, then following: val *= (u64)1 << 32; val /= (u64)1 << 32; should surely be better represented as: val <<= 32; val >>= 32; Especially as, for the division, the compiler might want to actually do a division: drivers/built-in.o: In function `lgs8gxx_get_afc_phase': drivers/media/dvb/frontends/lgs8gxx.c:250: undefined reference to `__udivdi3' Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/frontends/lgs8gxx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/lgs8gxx.c b/drivers/media/dvb/frontends/lgs8gxx.c
index eabcadc425d..dee53960e7e 100644
--- a/drivers/media/dvb/frontends/lgs8gxx.c
+++ b/drivers/media/dvb/frontends/lgs8gxx.c
@@ -199,7 +199,7 @@ static int lgs8gxx_set_if_freq(struct lgs8gxx_state *priv, u32 freq /*in kHz*/)
val = freq;
if (freq != 0) {
- val *= (u64)1 << 32;
+ val <<= 32;
if (if_clk != 0)
do_div(val, if_clk);
v32 = val & 0xFFFFFFFF;
@@ -246,7 +246,7 @@ static int lgs8gxx_get_afc_phase(struct lgs8gxx_state *priv)
val = v32;
val *= priv->config->if_clk_freq;
- val /= (u64)1 << 32;
+ val >>= 32;
dprintk("AFC = %u kHz\n", (u32)val);
return 0;
}