[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: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Родитель
988bd281d3
Коммит
d12b791e3d
|
@ -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(
|
||||
|
|
Загрузка…
Ссылка в новой задаче