[1/1] si2168: Set symbol_rate in set_frontend for DVB-C delivery system.

Message ID 1405618288-28317-1-git-send-email-ljalvs@gmail.com (mailing list archive)
State Superseded, archived
Delegated to: Michael Krufky
Headers

Commit Message

Luis Alves July 17, 2014, 5:31 p.m. UTC
  This patch adds symbol rate setting to the driver.

Signed-off-by: Luis Alves <ljalvs@gmail.com>
---
 drivers/media/dvb-frontends/si2168.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
  

Comments

Antti Palosaari July 17, 2014, 9:32 p.m. UTC | #1
Looks sane, I will apply that.

regards
Antti

On 07/17/2014 08:31 PM, Luis Alves wrote:
> This patch adds symbol rate setting to the driver.
>
> Signed-off-by: Luis Alves <ljalvs@gmail.com>
> ---
>   drivers/media/dvb-frontends/si2168.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
>
> diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
> index 0422925..7980741 100644
> --- a/drivers/media/dvb-frontends/si2168.c
> +++ b/drivers/media/dvb-frontends/si2168.c
> @@ -278,6 +278,18 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
>   	if (ret)
>   		goto err;
>
> +	/* set DVB-C symbol rate */
> +	if (c->delivery_system == SYS_DVBC_ANNEX_A) {
> +		memcpy(cmd.args, "\x14\x00\x02\x11", 4);
> +		cmd.args[4] = (c->symbol_rate / 1000) & 0xff;
> +		cmd.args[5] = ((c->symbol_rate / 1000) >> 8) & 0xff;
> +		cmd.wlen = 6;
> +		cmd.rlen = 4;
> +		ret = si2168_cmd_execute(s, &cmd);
> +		if (ret)
> +			goto err;
> +	}
> +
>   	memcpy(cmd.args, "\x14\x00\x0f\x10\x10\x00", 6);
>   	cmd.wlen = 6;
>   	cmd.rlen = 4;
>
  

Patch

diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index 0422925..7980741 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -278,6 +278,18 @@  static int si2168_set_frontend(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
+	/* set DVB-C symbol rate */
+	if (c->delivery_system == SYS_DVBC_ANNEX_A) {
+		memcpy(cmd.args, "\x14\x00\x02\x11", 4);
+		cmd.args[4] = (c->symbol_rate / 1000) & 0xff;
+		cmd.args[5] = ((c->symbol_rate / 1000) >> 8) & 0xff;
+		cmd.wlen = 6;
+		cmd.rlen = 4;
+		ret = si2168_cmd_execute(s, &cmd);
+		if (ret)
+			goto err;
+	}
+
 	memcpy(cmd.args, "\x14\x00\x0f\x10\x10\x00", 6);
 	cmd.wlen = 6;
 	cmd.rlen = 4;