forked from Minki/linux
[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: Akihiro Tsukada <tskd08@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
cba63cf8f9
commit
906aaf5a19
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user