diff mbox

si2168: DVB-T2 PLP selection implemented

Message ID 7423442.VCBAbZjIjj@computer (mailing list archive)
State New, archived
Headers show

Commit Message

CrazyCat Aug. 16, 2014, 9:33 p.m. UTC
DVB-T2 PLP selection implemented for Si2168 demod.
Tested with PCTV 292e.

Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net>
---
 drivers/media/dvb-frontends/si2168.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

Comments

Antti Palosaari Aug. 21, 2014, 8:52 a.m. UTC | #1
Acked-by: Antti Palosaari <crope@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>


On 08/17/2014 12:33 AM, CrazyCat wrote:
> DVB-T2 PLP selection implemented for Si2168 demod.
> Tested with PCTV 292e.
>
> Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net>
> ---
>   drivers/media/dvb-frontends/si2168.c | 16 ++++++++++++++--
>   1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
> index 37f3f92..9c41281 100644
> --- a/drivers/media/dvb-frontends/si2168.c
> +++ b/drivers/media/dvb-frontends/si2168.c
> @@ -168,10 +168,10 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
>   	u8 bandwidth, delivery_system;
>
>   	dev_dbg(&s->client->dev,
> -			"%s: delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u\n",
> +			"%s: delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u, stream_id=%d\n",
>   			__func__, 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;
> @@ -235,6 +235,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;
>
diff mbox

Patch

diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index 37f3f92..9c41281 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -168,10 +168,10 @@  static int si2168_set_frontend(struct dvb_frontend *fe)
 	u8 bandwidth, delivery_system;
 
 	dev_dbg(&s->client->dev,
-			"%s: delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u\n",
+			"%s: delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u, stream_id=%d\n",
 			__func__, 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;
@@ -235,6 +235,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;