diff mbox

[2/4] cxd2841er: provide signal strength for DVB-C

Message ID 61dea922c711592c5bf13a2ced7da4b31fa8a9fc.1467381792.git.mchehab@s-opensource.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mauro Carvalho Chehab July 1, 2016, 2:03 p.m. UTC
Currently, there's no stats for DVB-C. Let's at least return
signal strength. The scale is different than on DVB-T, so let's
use a relative scale, for now.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/media/dvb-frontends/cxd2841er.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Abylai Ospan July 14, 2016, 8:27 p.m. UTC | #1
Hi Mauro,

Here is a mistake. Instead of 'cxd2841er_read_agc_gain_t_t2' should
'cxd2841er_read_agc_gain_c' be used for SYS_DVBC_ANNEX_ case.

and should we use all DVB-C variants (  case SYS_DVBC_ANNEX_A, case
SYS_DVBC_ANNEX_B, case SYS_DVBC_ANNEX_C ) here ?


2016-07-01 10:03 GMT-04:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> Currently, there's no stats for DVB-C. Let's at least return
> signal strength. The scale is different than on DVB-T, so let's
> use a relative scale, for now.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> ---
>  drivers/media/dvb-frontends/cxd2841er.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/media/dvb-frontends/cxd2841er.c b/drivers/media/dvb-frontends/cxd2841er.c
> index 543b20155efc..e35f5d0d3f34 100644
> --- a/drivers/media/dvb-frontends/cxd2841er.c
> +++ b/drivers/media/dvb-frontends/cxd2841er.c
> @@ -1752,6 +1752,12 @@ static void cxd2841er_read_signal_strength(struct dvb_frontend *fe)
>                 /* Formula was empirically determinated @ 410 MHz */
>                 p->strength.stat[0].uvalue = ((s32)strength) * 366 / 100 - 89520;
>                 break;  /* Code moved out of the function */
> +       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;
> +               break;
>         case SYS_ISDBT:
>                 strength = 65535 - cxd2841er_read_agc_gain_i(
>                                 priv, p->delivery_system);
> --
> 2.7.4
>
diff mbox

Patch

diff --git a/drivers/media/dvb-frontends/cxd2841er.c b/drivers/media/dvb-frontends/cxd2841er.c
index 543b20155efc..e35f5d0d3f34 100644
--- a/drivers/media/dvb-frontends/cxd2841er.c
+++ b/drivers/media/dvb-frontends/cxd2841er.c
@@ -1752,6 +1752,12 @@  static void cxd2841er_read_signal_strength(struct dvb_frontend *fe)
 		/* Formula was empirically determinated @ 410 MHz */
 		p->strength.stat[0].uvalue = ((s32)strength) * 366 / 100 - 89520;
 		break;	/* Code moved out of the function */
+	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;
+		break;
 	case SYS_ISDBT:
 		strength = 65535 - cxd2841er_read_agc_gain_i(
 				priv, p->delivery_system);