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

Michael Krufky mkrufky at linuxtv.org
Thu Aug 9 04:37:36 CEST 2007


Oliver Endriss wrote:

>Manu Abraham wrote:
>  
>
>>On 8/6/07, Michael Krufky <mkrufky at linuxtv.org> wrote:
>>    
>>
>>>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 ???
>>>      
>>>
>>Ideally, what's provided by the demod and not the tuner max/min. The
>>tuners max/min should be checked by the demod on setting params.
>>
>>The upper/lower limits in the demodulator drivers, came from the
>>concept of a frontend as a whole. Independant bounds do not make sense
>>(except internally -- It is the demod driver that which sets
>>parameters for the tuner. The external world doesn't need to know
>>what's the limit of the tuner, but only of the frontend as a whole).
>>
>>Ideally, the demodulator should just demodulate only. There are some
>>cases, there are some cases which are not.
>>    
>>
>
>Ok, I'm trying to put all pieces together:
>There might be cases where demod and tuner have different limits.
>
>So FE_GET_INFO and dvb_frontend_check_parameters() should use the
>'smallest common bandwidth':
>
>freq_min = max(fe->ops.info.frequency_min, fe->ops.tuner_ops.info.frequency_min);
>
>if (fe->ops.info.frequency_max == 0)
>	freq_max = fe->ops.tuner_ops.info.frequency_max;
>else if (fe->ops.tuner_ops.info.frequency_max == 0)
>	freq_max = fe->ops.info.frequency_max;
>else
>	freq_max = min(fe->ops.info.frequency_max, fe->ops.tuner_ops.info.frequency_max);
>
>if (freq_min == 0 || freq_max == 0)
>	printk(KERN_WARNING "frequency limits undefined - please fix the driver\n");
>
>Conclusions:
>- A tuner-only driver must set fe->ops.tuner_ops.info.
>- Monolithic drivers must set fe->ops.tuner_ops.info or fe->ops.info
>  (or both).
>  
>
I apologize for my delayed response -- I had to leave town unexpectedly.

The above is OK with me.  As I understand it, we cannot remove 
fe->ops.info.frequency_max|min because it is part of the userspace API.  
I wasn't thinking about that fact when I wrote my last email in this 
thread.  We should keep this in mind, for whenever the time comes that 
we do have to break API compat.

Regards,

Mike




More information about the linux-dvb mailing list