Skip to content

Commit

Permalink
[media] drxd: fix divide error
Browse files Browse the repository at this point in the history
Fix division by zero in drxd triggered by running "femon" before any DVB
tuning has been done (by "scandvb" or anything else).

Signed-off-by: Edward Sheldrake <ejsheldrake@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Edward Sheldrake authored and Mauro Carvalho Chehab committed Sep 4, 2011
1 parent 133a9fe commit f8a26f0
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions drivers/media/dvb/frontends/drxd_hard.c
Original file line number Diff line number Diff line change
Expand Up @@ -889,10 +889,15 @@ static int ReadIFAgc(struct drxd_state *state, u32 * pValue)
u32 R2 = state->if_agc_cfg.R2;
u32 R3 = state->if_agc_cfg.R3;

u32 Vmax = (3300 * R2) / (R1 + R2);
u32 Rpar = (R2 * R3) / (R3 + R2);
u32 Vmin = (3300 * Rpar) / (R1 + Rpar);
u32 Vout = Vmin + ((Vmax - Vmin) * Value) / 1024;
u32 Vmax, Rpar, Vmin, Vout;

if (R2 == 0 && (R1 == 0 || R3 == 0))
return 0;

Vmax = (3300 * R2) / (R1 + R2);
Rpar = (R2 * R3) / (R3 + R2);
Vmin = (3300 * Rpar) / (R1 + Rpar);
Vout = Vmin + ((Vmax - Vmin) * Value) / 1024;

*pValue = Vout;
}
Expand Down

0 comments on commit f8a26f0

Please sign in to comment.