aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2009-08-01 15:48:41 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:19:08 -0400
commit75b697f747b14b0c6afae48ee0f5e605abd2df4c (patch)
tree3812e853ff3d8758cded2fdfebb58bdec76babfc
parent166987c6987a25a95cef6889d24088f0eb2daa36 (diff)
V4L/DVB (12483): Use DIV_ROUND_CLOSEST
The kernel.h macro DIV_ROUND_CLOSEST performs the computation (x + d/2)/d but is perhaps more readable. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @haskernel@ @@ @depends on haskernel@ expression x,__divisor; @@ - (((x) + ((__divisor) / 2)) / (__divisor)) + DIV_ROUND_CLOSEST(x,__divisor) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/frontends/dib7000p.c2
-rw-r--r--drivers/media/dvb/frontends/stb6100.c4
-rw-r--r--drivers/media/dvb/frontends/tda10021.c2
-rw-r--r--drivers/media/dvb/frontends/ves1820.c2
-rw-r--r--drivers/media/dvb/pluto2/pluto2.c2
-rw-r--r--drivers/media/video/tuner-core.c4
-rw-r--r--drivers/media/video/v4l1-compat.c5
7 files changed, 11 insertions, 10 deletions
diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c
index 8217e5b38f47..fc96fbf03d6d 100644
--- a/drivers/media/dvb/frontends/dib7000p.c
+++ b/drivers/media/dvb/frontends/dib7000p.c
@@ -883,7 +883,7 @@ static void dib7000p_spur_protect(struct dib7000p_state *state, u32 rf_khz, u32
883 255, 255, 255, 255, 255, 255}; 883 255, 255, 255, 255, 255, 255};
884 884
885 u32 xtal = state->cfg.bw->xtal_hz / 1000; 885 u32 xtal = state->cfg.bw->xtal_hz / 1000;
886 int f_rel = ( (rf_khz + xtal/2) / xtal) * xtal - rf_khz; 886 int f_rel = DIV_ROUND_CLOSEST(rf_khz, xtal) * xtal - rf_khz;
887 int k; 887 int k;
888 int coef_re[8],coef_im[8]; 888 int coef_re[8],coef_im[8];
889 int bw_khz = bw; 889 int bw_khz = bw;
diff --git a/drivers/media/dvb/frontends/stb6100.c b/drivers/media/dvb/frontends/stb6100.c
index 1ed5a7db4c5e..60ee18a94f43 100644
--- a/drivers/media/dvb/frontends/stb6100.c
+++ b/drivers/media/dvb/frontends/stb6100.c
@@ -367,7 +367,9 @@ static int stb6100_set_frequency(struct dvb_frontend *fe, u32 frequency)
367 /* N(I) = floor(f(VCO) / (f(XTAL) * (PSD2 ? 2 : 1))) */ 367 /* N(I) = floor(f(VCO) / (f(XTAL) * (PSD2 ? 2 : 1))) */
368 nint = fvco / (state->reference << psd2); 368 nint = fvco / (state->reference << psd2);
369 /* N(F) = round(f(VCO) / f(XTAL) * (PSD2 ? 2 : 1) - N(I)) * 2 ^ 9 */ 369 /* N(F) = round(f(VCO) / f(XTAL) * (PSD2 ? 2 : 1) - N(I)) * 2 ^ 9 */
370 nfrac = (((fvco - (nint * state->reference << psd2)) << (9 - psd2)) + state->reference / 2) / state->reference; 370 nfrac = DIV_ROUND_CLOSEST((fvco - (nint * state->reference << psd2))
371 << (9 - psd2),
372 state->reference);
371 dprintk(verbose, FE_DEBUG, 1, 373 dprintk(verbose, FE_DEBUG, 1,
372 "frequency = %u, srate = %u, g = %u, odiv = %u, psd2 = %u, fxtal = %u, osm = %u, fvco = %u, N(I) = %u, N(F) = %u", 374 "frequency = %u, srate = %u, g = %u, odiv = %u, psd2 = %u, fxtal = %u, osm = %u, fvco = %u, N(I) = %u, N(F) = %u",
373 frequency, srate, (unsigned int)g, (unsigned int)odiv, 375 frequency, srate, (unsigned int)g, (unsigned int)odiv,
diff --git a/drivers/media/dvb/frontends/tda10021.c b/drivers/media/dvb/frontends/tda10021.c
index f5d7b3277a2f..6c1dbf9288d8 100644
--- a/drivers/media/dvb/frontends/tda10021.c
+++ b/drivers/media/dvb/frontends/tda10021.c
@@ -176,7 +176,7 @@ static int tda10021_set_symbolrate (struct tda10021_state* state, u32 symbolrate
176 tmp = ((symbolrate << 4) % FIN) << 8; 176 tmp = ((symbolrate << 4) % FIN) << 8;
177 ratio = (ratio << 8) + tmp / FIN; 177 ratio = (ratio << 8) + tmp / FIN;
178 tmp = (tmp % FIN) << 8; 178 tmp = (tmp % FIN) << 8;
179 ratio = (ratio << 8) + (tmp + FIN/2) / FIN; 179 ratio = (ratio << 8) + DIV_ROUND_CLOSEST(tmp, FIN);
180 180
181 BDR = ratio; 181 BDR = ratio;
182 BDRI = (((XIN << 5) / symbolrate) + 1) / 2; 182 BDRI = (((XIN << 5) / symbolrate) + 1) / 2;
diff --git a/drivers/media/dvb/frontends/ves1820.c b/drivers/media/dvb/frontends/ves1820.c
index 6e78e4865515..550a07a8a997 100644
--- a/drivers/media/dvb/frontends/ves1820.c
+++ b/drivers/media/dvb/frontends/ves1820.c
@@ -165,7 +165,7 @@ static int ves1820_set_symbolrate(struct ves1820_state *state, u32 symbolrate)
165 tmp = ((symbolrate << 4) % fin) << 8; 165 tmp = ((symbolrate << 4) % fin) << 8;
166 ratio = (ratio << 8) + tmp / fin; 166 ratio = (ratio << 8) + tmp / fin;
167 tmp = (tmp % fin) << 8; 167 tmp = (tmp % fin) << 8;
168 ratio = (ratio << 8) + (tmp + fin / 2) / fin; 168 ratio = (ratio << 8) + DIV_ROUND_CLOSEST(tmp, fin);
169 169
170 BDR = ratio; 170 BDR = ratio;
171 BDRI = (((state->config->xin << 5) / symbolrate) + 1) / 2; 171 BDRI = (((state->config->xin << 5) / symbolrate) + 1) / 2;
diff --git a/drivers/media/dvb/pluto2/pluto2.c b/drivers/media/dvb/pluto2/pluto2.c
index 598eaf8acc6e..80d14a065bad 100644
--- a/drivers/media/dvb/pluto2/pluto2.c
+++ b/drivers/media/dvb/pluto2/pluto2.c
@@ -439,7 +439,7 @@ static inline u32 divide(u32 numerator, u32 denominator)
439 if (denominator == 0) 439 if (denominator == 0)
440 return ~0; 440 return ~0;
441 441
442 return (numerator + denominator / 2) / denominator; 442 return DIV_ROUND_CLOSEST(numerator, denominator);
443} 443}
444 444
445/* LG Innotek TDTE-E001P (Infineon TUA6034) */ 445/* LG Innotek TDTE-E001P (Infineon TUA6034) */
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 537594211a90..2816f1839230 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -819,8 +819,8 @@ static int tuner_g_frequency(struct v4l2_subdev *sd, struct v4l2_frequency *f)
819 819
820 fe_tuner_ops->get_frequency(&t->fe, &abs_freq); 820 fe_tuner_ops->get_frequency(&t->fe, &abs_freq);
821 f->frequency = (V4L2_TUNER_RADIO == t->mode) ? 821 f->frequency = (V4L2_TUNER_RADIO == t->mode) ?
822 (abs_freq * 2 + 125/2) / 125 : 822 DIV_ROUND_CLOSEST(abs_freq * 2, 125) :
823 (abs_freq + 62500/2) / 62500; 823 DIV_ROUND_CLOSEST(abs_freq, 62500);
824 return 0; 824 return 0;
825 } 825 }
826 f->frequency = (V4L2_TUNER_RADIO == t->mode) ? 826 f->frequency = (V4L2_TUNER_RADIO == t->mode) ?
diff --git a/drivers/media/video/v4l1-compat.c b/drivers/media/video/v4l1-compat.c
index 02f2a6d18b45..761fbd64db58 100644
--- a/drivers/media/video/v4l1-compat.c
+++ b/drivers/media/video/v4l1-compat.c
@@ -76,9 +76,8 @@ get_v4l_control(struct file *file,
76 dprintk("VIDIOC_G_CTRL: %d\n", err); 76 dprintk("VIDIOC_G_CTRL: %d\n", err);
77 return 0; 77 return 0;
78 } 78 }
79 return ((ctrl2.value - qctrl2.minimum) * 65535 79 return DIV_ROUND_CLOSEST((ctrl2.value-qctrl2.minimum) * 65535,
80 + (qctrl2.maximum - qctrl2.minimum) / 2) 80 qctrl2.maximum - qctrl2.minimum);
81 / (qctrl2.maximum - qctrl2.minimum);
82 } 81 }
83 return 0; 82 return 0;
84} 83}