Commit d12b791e authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] cxd2841er: adjust the dB scale for DVB-C

Instead of using a relative frequency range, calibrate it to
show the results in dB. The callibration was done getting
samples with a signal generated from -50dBm to -12dBm,
incremented in steps of 0.5 dB, using 3 frequencies:
175 MHz, 410 MHz and 800 MHz. The modulated signal was
using QAM64, and it was used a linear interpolation of all
the results.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 988bd281
......@@ -1768,8 +1768,13 @@ static void cxd2841er_read_signal_strength(struct dvb_frontend *fe)
case SYS_DVBC_ANNEX_A:
strength = cxd2841er_read_agc_gain_t_t2(priv,
p->delivery_system);
p->strength.stat[0].scale = FE_SCALE_RELATIVE;
p->strength.stat[0].uvalue = strength;
p->strength.stat[0].scale = FE_SCALE_DECIBEL;
/*
* Formula was empirically determinated via linear regression,
* using frequencies: 175 MHz, 410 MHz and 800 MHz, and a
* stream modulated with QAM64
*/
p->strength.stat[0].uvalue = ((s32)strength) * 4045 / 1000 - 85224;
break;
case SYS_ISDBT:
strength = 65535 - cxd2841er_read_agc_gain_i(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment