Skip to content

Commit

Permalink
V4L/DVB (13337): Change str snr scale for stv0900/903 and Netup Dual …
Browse files Browse the repository at this point in the history
…DVB-S2 card.

Signed-off-by: Igor M. Liplianin <liplianin@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Igor M. Liplianin authored and Mauro Carvalho Chehab committed Dec 5, 2009
1 parent 29372a8 commit 502cd96
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions drivers/media/dvb/frontends/stv0900_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,8 @@ static s32 stv0900_get_rf_level(struct stv0900_internal *i_params,
break;
}

dprintk("%s: AGC Gain = 0x%x\n", __func__, agc_gain);

imin = 0;
imax = lookup->size - 1;
if (INRANGE(lookup->table[imin].regval, agc_gain, lookup->table[imax].regval)) {
Expand Down Expand Up @@ -634,7 +636,14 @@ static int stv0900_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
s32 rflevel = stv0900_get_rf_level(internal, &stv0900_rf,
state->demod);

*strength = (rflevel + 100) * (16383 / 105);
rflevel = (rflevel + 100) * (65535 / 70);
if (rflevel < 0)
rflevel = 0;

if (rflevel > 65535)
rflevel = 65535;

*strength = rflevel;

return 0;
}
Expand Down Expand Up @@ -709,6 +718,8 @@ static s32 stv0900_carr_get_quality(struct dvb_frontend *fe,
}
}

dprintk("%s: Quality = %d\n", __func__, c_n);

return c_n;
}

Expand Down Expand Up @@ -752,10 +763,16 @@ static int stv0900_read_ucblocks(struct dvb_frontend *fe, u32 * ucblocks)

static int stv0900_read_snr(struct dvb_frontend *fe, u16 *snr)
{
*snr = stv0900_carr_get_quality(fe,
s32 snrlcl = stv0900_carr_get_quality(fe,
(const struct stv0900_table *)&stv0900_s2_cn);
*snr += 30;
*snr *= (16383 / 1030);
snrlcl = (snrlcl + 30) * 384;
if (snrlcl < 0)
snrlcl = 0;

if (snrlcl > 65535)
snrlcl = 65535;

*snr = snrlcl;

return 0;
}
Expand Down

0 comments on commit 502cd96

Please sign in to comment.