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

Commit 906aaf5a authored by Akihiro Tsukada's avatar Akihiro Tsukada Committed by Mauro Carvalho Chehab
Browse files

[media] dvb:tc90522: fix stats report



* report the fixed per-transponder symbolrate instead of per-TS ones
* add output TS-ID report

Signed-off-by: default avatarAkihiro Tsukada <tskd08@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent cba63cf8
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -216,32 +216,30 @@ static int tc90522s_get_frontend(struct dvb_frontend *fe)
	c->delivery_system = SYS_ISDBS;

	layers = 0;
	ret = reg_read(state, 0xe8, val, 3);
	ret = reg_read(state, 0xe6, val, 5);
	if (ret == 0) {
		int slots;
		u8 v;

		c->stream_id = val[0] << 8 | val[1];

		/* high/single layer */
		v = (val[0] & 0x70) >> 4;
		v = (val[2] & 0x70) >> 4;
		c->modulation = (v == 7) ? PSK_8 : QPSK;
		c->fec_inner = fec_conv_sat[v];
		c->layer[0].fec = c->fec_inner;
		c->layer[0].modulation = c->modulation;
		c->layer[0].segment_count = val[1] & 0x3f; /* slots */
		c->layer[0].segment_count = val[3] & 0x3f; /* slots */

		/* low layer */
		v = (val[0] & 0x07);
		v = (val[2] & 0x07);
		c->layer[1].fec = fec_conv_sat[v];
		if (v == 0)  /* no low layer */
			c->layer[1].segment_count = 0;
		else
			c->layer[1].segment_count = val[2] & 0x3f; /* slots */
			c->layer[1].segment_count = val[4] & 0x3f; /* slots */
		/* actually, BPSK if v==1, but not defined in fe_modulation_t */
		c->layer[1].modulation = QPSK;
		layers = (v > 0) ? 2 : 1;

		slots =  c->layer[0].segment_count +  c->layer[1].segment_count;
		c->symbol_rate = 28860000 * slots / 48;
	}

	/* statistics */