Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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(