Skip to content

Commit

Permalink
[media] dvb:tc90522: fix stats report
Browse files Browse the repository at this point in the history
* report the fixed per-transponder symbolrate instead of per-TS ones
* add output TS-ID report

Signed-off-by: Akihiro Tsukada <tskd08@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
  • Loading branch information
Akihiro Tsukada authored and Mauro Carvalho Chehab committed Nov 3, 2014
1 parent cba63cf commit 906aaf5
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions drivers/media/dvb-frontends/tc90522.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit 906aaf5

Please sign in to comment.