Fix for hanging si2168 in PCTV 292e, making the code match

Message ID 59C10A00.2070000@googlemail.com (mailing list archive)
State Rejected, archived
Headers

Commit Message

Nigel Kettlewell Sept. 19, 2017, 12:13 p.m. UTC
  [re-sending as plain text]

Fix for hanging si2168 in PCTV 292e USB, making the code match the comment.

Using firmware v4.0.11 the 292e would work once and then hang on 
subsequent attempts to view DVB channels, until physically unplugged and 
plugged back in.

With this patch, the warm state is reset for v4.0.11 and it appears to 
work both on the first attempt and on subsequent attempts.

(Patch basis Linux 4.11.9 f82a53b87594f460f2dd9983eeb851a5840e8df8)

---
  drivers/media/dvb-frontends/si2168.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

--
2.9.4
  

Comments

Mauro Carvalho Chehab Dec. 14, 2017, 2:48 p.m. UTC | #1
Em Tue, 19 Sep 2017 13:13:52 +0100
Nigel Kettlewell <nigel.kettlewell@googlemail.com> escreveu:

> [re-sending as plain text]
> 
> Fix for hanging si2168 in PCTV 292e USB, making the code match the comment.
> 
> Using firmware v4.0.11 the 292e would work once and then hang on 
> subsequent attempts to view DVB channels, until physically unplugged and 
> plugged back in.
> 
> With this patch, the warm state is reset for v4.0.11 and it appears to 
> work both on the first attempt and on subsequent attempts.
> 
> (Patch basis Linux 4.11.9 f82a53b87594f460f2dd9983eeb851a5840e8df8)

Patch is missing a Signed-off-by. See:
	https://elinux.org/Developer_Certificate_Of_Origin).


> 
> ---
>   drivers/media/dvb-frontends/si2168.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/dvb-frontends/si2168.c 
> b/drivers/media/dvb-frontends/si2168.c
> index 680ba06..523acd1 100644
> --- a/drivers/media/dvb-frontends/si2168.c
> +++ b/drivers/media/dvb-frontends/si2168.c
> @@ -582,7 +582,7 @@ static int si2168_sleep(struct dvb_frontend *fe)
>          dev->active = false;
> 
>          /* Firmware B 4.0-11 or later loses warm state during sleep */
> -       if (dev->version > ('B' << 24 | 4 << 16 | 0 << 8 | 11 << 0))
> +       if (dev->version >= ('B' << 24 | 4 << 16 | 0 << 8 | 11 << 0))
>                  dev->warm = false;
> 
>          memcpy(cmd.args, "\x13", 1);
> --
> 2.9.4
> 



Thanks,
Mauro
  
Antti Palosaari March 7, 2018, 1:23 p.m. UTC | #2
On 12/14/2017 04:48 PM, Mauro Carvalho Chehab wrote:
> Em Tue, 19 Sep 2017 13:13:52 +0100
> Nigel Kettlewell <nigel.kettlewell@googlemail.com> escreveu:
> 
>> [re-sending as plain text]
>>
>> Fix for hanging si2168 in PCTV 292e USB, making the code match the comment.
>>
>> Using firmware v4.0.11 the 292e would work once and then hang on
>> subsequent attempts to view DVB channels, until physically unplugged and
>> plugged back in.
>>
>> With this patch, the warm state is reset for v4.0.11 and it appears to
>> work both on the first attempt and on subsequent attempts.

It is comment which is wrong. With firmware 4.0.11 it works well without 
need of download it every time. But firmware 4.0.19 needs to be 
downloaded every time after device is put to sleep.
Probably your issue is coming from some other reason.


>>
>> (Patch basis Linux 4.11.9 f82a53b87594f460f2dd9983eeb851a5840e8df8)
> 
> Patch is missing a Signed-off-by. See:
> 	https://elinux.org/Developer_Certificate_Of_Origin).
> 
> 
>>
>> ---
>>    drivers/media/dvb-frontends/si2168.c | 2 +-
>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/dvb-frontends/si2168.c
>> b/drivers/media/dvb-frontends/si2168.c
>> index 680ba06..523acd1 100644
>> --- a/drivers/media/dvb-frontends/si2168.c
>> +++ b/drivers/media/dvb-frontends/si2168.c
>> @@ -582,7 +582,7 @@ static int si2168_sleep(struct dvb_frontend *fe)
>>           dev->active = false;
>>
>>           /* Firmware B 4.0-11 or later loses warm state during sleep */
>> -       if (dev->version > ('B' << 24 | 4 << 16 | 0 << 8 | 11 << 0))
>> +       if (dev->version >= ('B' << 24 | 4 << 16 | 0 << 8 | 11 << 0))
>>                   dev->warm = false;
>>
>>           memcpy(cmd.args, "\x13", 1);
>> --
>> 2.9.4
>>
> 
> 
> 
> Thanks,
> Mauro
> 

regards
Antti
  

Patch

diff --git a/drivers/media/dvb-frontends/si2168.c 
b/drivers/media/dvb-frontends/si2168.c
index 680ba06..523acd1 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -582,7 +582,7 @@  static int si2168_sleep(struct dvb_frontend *fe)
         dev->active = false;

         /* Firmware B 4.0-11 or later loses warm state during sleep */
-       if (dev->version > ('B' << 24 | 4 << 16 | 0 << 8 | 11 << 0))
+       if (dev->version >= ('B' << 24 | 4 << 16 | 0 << 8 | 11 << 0))
                 dev->warm = false;

         memcpy(cmd.args, "\x13", 1);