[linux-dvb] [FIXEd] Bug Report - Twinhan vp-1020, bt_8xx driver + frontend
Alain Turbide
aturbide at rogers.com
Tue Dec 2 20:37:37 CET 2008
Good one Matthias. Your first option seems like the most practical one and
I can also confirm works. 1=HW, any other value will set SW
----- Original Message -----
From: "Matthias Schwarzott" <zzam at gentoo.org>
To: <linux-dvb at linuxtv.org>
Cc: "Alain Turbide" <aturbide at rogers.com>
Sent: Tuesday, December 02, 2008 2:21 PM
Subject: Re: [linux-dvb] [FIXEd] Bug Report - Twinhan vp-1020, bt_8xx driver
+ frontend
> On Dienstag, 2. Dezember 2008, Alain Turbide wrote:
>> Well, it's not a difficult fix now that I see it. The issue was that the
>> original default for FE_ALGO_SW was 0 while FE_ALGO_HW was 1.
>> Since there is an older documented option for the dst module called
>> dst_algo that some people might still be using to force the tuning algo
>> to
>> sofware by setting dst_algo=0, there is no choice but to also make the
>> default of DVBFE_ALGO_SW to also be 0 so that the values will match and
>> the
>> new code will still function with users who force dst_algo=0 on the dst
>> module load.. The fix would thus be to go from: this in dvb_frontend.h
>> enum dvbfe_algo {
>> DVBFE_ALGO_HW = (1 << 0),
>> DVBFE_ALGO_SW = (1 << 1),
>> DVBFE_ALGO_CUSTOM = (1 << 2),
>> DVBFE_ALGO_RECOVERY = (1 << 31)
>> };
>>
>> to this:
>> enum dvbfe_algo {
>> DVBFE_ALGO_HW = (1 << 0),
>> DVBFE_ALGO_SW = 0,
>> DVBFE_ALGO_CUSTOM = (1 << 2),
>> DVBFE_ALGO_RECOVERY = (1 << 31)
>> };
>>
>> This is what I've done now and works well. This is the only change
>> required
>> to fix the issue. In dst.c we could also default dst_algo to
>> DVB_FRONTEND_SW instead of 0 to make it more robust. I can't see any
>> code
>> else where that depends on DVBFE_ALGO_SW being set to 2.
>>
>
> Why should we rely on exact values, and not just modify the only place
> where
> these values are exposed to userspace, and change dst_get_tuning_algo to
> something similar to:
>
> static int dst_get_tuning_algo(struct dvb_frontend *fe)
> {
> return dst_algo ? DVBFE_ALGO_HW : DVBFE_ALGO_SW;
> }
>
> The other (not backward compatible) fix is to adjust the parameter
> description
> and use 1 and 2 as allowed settings.
>
> Regards
> Matthias
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
More information about the linux-dvb
mailing list