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

Commit 4a74772e authored by Evgeny Plehov's avatar Evgeny Plehov Committed by Mauro Carvalho Chehab
Browse files

[media] cxd2820r_t2: Multistream support (MultiPLP)



MultiPLP filtering support for CXD2820r.

Signed-off-by: default avatarEvgeny Plehov <EvgenyPlehov@ukr.net>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 752a62b2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -660,7 +660,8 @@ static const struct dvb_frontend_ops cxd2820r_ops = {
			FE_CAN_GUARD_INTERVAL_AUTO	|
			FE_CAN_HIERARCHY_AUTO		|
			FE_CAN_MUTE_TS			|
			FE_CAN_2G_MODULATION
			FE_CAN_2G_MODULATION		|
			FE_CAN_MULTISTREAM
		},

	.release		= cxd2820r_release,
+17 −0
Original line number Diff line number Diff line
@@ -124,6 +124,23 @@ int cxd2820r_set_frontend_t2(struct dvb_frontend *fe)
	buf[1] = ((if_ctl >>  8) & 0xff);
	buf[2] = ((if_ctl >>  0) & 0xff);

	/* PLP filtering */
	if (c->stream_id < 0 || c->stream_id > 255) {
		dev_dbg(&priv->i2c->dev, "%s: Disable PLP filtering\n", __func__);
		ret = cxd2820r_wr_reg(priv, 0x023ad , 0);
		if (ret)
			goto error;
	} else {
		dev_dbg(&priv->i2c->dev, "%s: Enable PLP filtering = %d\n", __func__,
				c->stream_id);
		ret = cxd2820r_wr_reg(priv, 0x023af , c->stream_id & 0xFF);
		if (ret)
			goto error;
		ret = cxd2820r_wr_reg(priv, 0x023ad , 1);
		if (ret)
			goto error;
	}

	ret = cxd2820r_wr_regs(priv, 0x020b6, buf, 3);
	if (ret)
		goto error;