[media] si2168: DVB-T2 PLP selection implemented
authorCrazyCat <crazycat69@narod.ru>
Sat, 16 Aug 2014 21:33:14 +0000 (18:33 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 2 Sep 2014 18:45:36 +0000 (15:45 -0300)
DVB-T2 PLP selection implemented for Si2168 demod.
Tested with PCTV 292e.

Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/dvb-frontends/si2168.c

index 97614db4d9b3888d2bcc49ab2e364055aa2210ed..55a4212aea750c739ea5b075c25110fbd52e2f34 100644 (file)
@@ -167,10 +167,10 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
        u8 bandwidth, delivery_system;
 
        dev_dbg(&s->client->dev,
-                       "delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u\n",
+                       "delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u, stream_id=%d\n",
                        c->delivery_system, c->modulation,
                        c->frequency, c->bandwidth_hz, c->symbol_rate,
-                       c->inversion);
+                       c->inversion, c->stream_id);
 
        if (!s->active) {
                ret = -EAGAIN;
@@ -234,6 +234,18 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
        if (ret)
                goto err;
 
+       if (c->delivery_system == SYS_DVBT2) {
+               /* select PLP */
+               cmd.args[0] = 0x52;
+               cmd.args[1] = c->stream_id & 0xff;
+               cmd.args[2] = c->stream_id == NO_STREAM_ID_FILTER ? 0 : 1;
+               cmd.wlen = 3;
+               cmd.rlen = 1;
+               ret = si2168_cmd_execute(s, &cmd);
+               if (ret)
+                       goto err;
+       }
+
        memcpy(cmd.args, "\x51\x03", 2);
        cmd.wlen = 2;
        cmd.rlen = 12;