si2168: improve scanning performance by setting property 0301 with a value from Windows driver.

Message ID 1405622607-27248-1-git-send-email-olli.salonen@iki.fi (mailing list archive)
State Accepted, archived
Delegated to: Michael Krufky
Headers

Commit Message

Olli Salonen July 17, 2014, 6:43 p.m. UTC
  Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
---
 drivers/media/dvb-frontends/si2168.c | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Luis Alves July 17, 2014, 7:09 p.m. UTC | #1
This would be best done during init and not every time on set_frontend.

Regards,
Luis

On Thu, Jul 17, 2014 at 7:43 PM, Olli Salonen <olli.salonen@iki.fi> wrote:
> Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
> ---
>  drivers/media/dvb-frontends/si2168.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
> index 0422925..56811e1 100644
> --- a/drivers/media/dvb-frontends/si2168.c
> +++ b/drivers/media/dvb-frontends/si2168.c
> @@ -313,6 +313,13 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
>         if (ret)
>                 goto err;
>
> +       memcpy(cmd.args, "\x14\x00\x01\x03\x0c\x00", 6);
> +       cmd.wlen = 6;
> +       cmd.rlen = 4;
> +       ret = si2168_cmd_execute(s, &cmd);
> +       if (ret)
> +               goto err;
> +
>         memcpy(cmd.args, "\x85", 1);
>         cmd.wlen = 1;
>         cmd.rlen = 1;
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Antti Palosaari July 17, 2014, 9:46 p.m. UTC | #2
On 07/17/2014 10:09 PM, Luis Alves wrote:
> This would be best done during init and not every time on set_frontend.

I am perfectly fine it is done during set_frontend(), even it is static 
value. There were earlier tons of these 0x14 commands, including that 
one. I removed all that were same as default (command reports back 
existing value when new is set). It happens that Olli's Si2168-A30 chip 
has different default value than Si2168-B40 I have.

init() is perfect place for enabling chip, power-up blocks, start 
clocks, downloading firmware and loading "inittab". That command seems 
to belong tuning process itself.

I will apply that.

regards
Antti


>
> Regards,
> Luis
>
> On Thu, Jul 17, 2014 at 7:43 PM, Olli Salonen <olli.salonen@iki.fi> wrote:
>> Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
>> ---
>>   drivers/media/dvb-frontends/si2168.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
>> index 0422925..56811e1 100644
>> --- a/drivers/media/dvb-frontends/si2168.c
>> +++ b/drivers/media/dvb-frontends/si2168.c
>> @@ -313,6 +313,13 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
>>          if (ret)
>>                  goto err;
>>
>> +       memcpy(cmd.args, "\x14\x00\x01\x03\x0c\x00", 6);
>> +       cmd.wlen = 6;
>> +       cmd.rlen = 4;
>> +       ret = si2168_cmd_execute(s, &cmd);
>> +       if (ret)
>> +               goto err;
>> +
>>          memcpy(cmd.args, "\x85", 1);
>>          cmd.wlen = 1;
>>          cmd.rlen = 1;
>> --
>> 1.9.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
  

Patch

diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index 0422925..56811e1 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -313,6 +313,13 @@  static int si2168_set_frontend(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
+	memcpy(cmd.args, "\x14\x00\x01\x03\x0c\x00", 6);
+	cmd.wlen = 6;
+	cmd.rlen = 4;
+	ret = si2168_cmd_execute(s, &cmd);
+	if (ret)
+		goto err;
+
 	memcpy(cmd.args, "\x85", 1);
 	cmd.wlen = 1;
 	cmd.rlen = 1;