[linux-dvb] [PATCH] Fix the min/max frequencies of some DVB-C frontends

Michael Krufky mkrufky at linuxtv.org
Mon Aug 6 21:37:04 CEST 2007


Oliver Endriss wrote:
> Michael Krufky wrote:
>   
>> Oliver Endriss wrote:
>>     
>>> Michael Krufky wrote:
>>>   
>>>       
>>>> e9hack wrote:
>>>>     
>>>>         
>>>>> Hi,
>>>>>
>>>>> the min frequencies of the DVB-C frontends are wrong. In Europe, the center frequency of the lowest
>>>>> channel is 50.5MHz and not 51MHz. All known cards with the stv0297/tda0002x/ves1820 frontend are
>>>>> able to tune to this frequency. I've changed the range to the lowest channel - 1/2 bandwidth and the
>>>>> highest channel + 1/2 bandwidth. For the design of the dvb driver, the frequency ranges must be part
>>>>> of the tuner and not of the frontend itself. The same frontend may be used for different tuners. The
>>>>> attached patch does only fix the ranges and not the design.
>>>>>       
>>>>>           
>>>> Now I'm beginning to have doubts about Oliver's original patch:
>>>>
>>>> dvb_frontend: Range check of frequency and symbol rate
>>>> http://linuxtv.org/hg/v4l-dvb/rev/8186a34dd0a6
>>>>
>>>> Should we be checking fe->ops.tuner_ops.info.frequency_min|max , instead of
>>>> fe->ops.info.frequency_min|max ???
>>>>     
>>>>         
>>> Hm, I was not aware that there is another info.frequency_min|max
>>> in tuner_ops. :-(
>>>
>>> Do we need both of them?
>>>       
>> I think it's most appropriate to keep tuner_ops.info.frequency_min|max ,
>> since it is the tuner that we're talking about.  If the demodulator
>> itself does not have such limitations, then we should not have such a
>> field in the demod ops.info section.
>>
>> I believe that this is leftover from before Andrew's original dvb tuner
>> refactoring.
>>     
>
> It is an API issue: FE_GET_INFO returns fe->ops.info, so we cannot
> easily drop this field.
>
> What about modifying dvb_pll_attach to override fe->ops.info.frequency?
>   
No, because dvb-pll is only one of many dvb_frontend tuner drivers.  We
would have to modify all dvb_frontend tuner drivers to set this field --
but they are already setting this field, inside tuner_ops.info. 
Instead, we can modify FE_GET_INFO to return
fe->ops.tuner_ops.info.frequency_min|max instead.  The current
demodulator drivers that have the tuning code hardcoded inside should
also set the tuner_ops.info fields as well.


Regards,

Mike




More information about the linux-dvb mailing list