[linux-dvb] [RFC] Hybrid tuner refactoring, phase 1

Manu Abraham abraham.manu at gmail.com
Tue Aug 21 04:06:53 CEST 2007


Johannes Stezenbach wrote:
> On Mon, Aug 20, 2007, Manu Abraham wrote:
>> Michael Krufky wrote:
>>
>>>  -- this is a system-wide addition to the
>>> dvb_frontend structure, because we are adding analog tuning
>>> functionality to the dvb_frontend.
>> Analog tuning is public to DVB core ? I don't think so. It would've been
>> correct, if DVB core does analog operations, but DVB core doesn't do any
>> Analog operations.
> 
> Well, supporting hybrid tuners means that analog and digital
> worlds have to touch somewhere...
> 
>>> I agree that elegance is very important, and that is why I disagree with
>>> the extra layers of complexity that you are proposing here.
>> Every DVB demodulator driver that you write does this.
>>
>> struct dvb_frontend {
>> 	struct dvb_frontend_ops ops;
>> 	struct dvb_adapter *dvb;
>> 	void* demodulator_priv;
>> 	void* tuner_priv;
>> 	void* frontend_priv;
>> 	void* sec_priv;
>> 	void* hybrid_priv;
>> };
>>
>>
>> So whatever that which dvb_core doesn't handle is "private". I don't
>> understand what you mean by extra complex layer.
> 
> I think the rule of thumb is to use void* only when it points
> to different things for each driver (e.g. struct tda8083_state*,
> struct ves1820_state* etc.). If we know it will always point to
> struct analog_parameters (or set_analog_params) then using
> void* is IMHO wrong.


When you have integrated analog decoders, you have more than
set_analog_parameters. And it is coming.
So you keep piling them up in dvb_frontend.h, that which belongs elsewhere.




More information about the linux-dvb mailing list