Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: NEWSTRUCT questions



Hi Gerd,

(I knew this question would arise;)

Gerd Knorr wrote:
> 
> What exactly is the point of having two different i2c layers?  Why don't
> you simply use the linux i2c layer for everything?

just because if it's (for our purposes) unnecessairy complexity. Most 
i2c adapter drivers are inconsistent about their probing timeouts, about 
when to set start/stop/restart conditions etc.

The Matrox is a good worst-case example, because of it's buggy probing 
timeouts it takes up to 4 minutes to initialize the DVB driver. Not to 
easy to explain to users that their Matrox driver which worked flawlessy 
all the time should cause problems which their new DVB card.

Another example is the bitbanging algorithm implementation, it's setting 
stop conditions in a way that some frontend demodulators (namely the 
stv0299) with i2c bridge onchip close it too early. This caused many 
problems in communication with the PLL behind this bridge.

Just take a look on our 'dvb i2c' driver. It's not more than only about 
300 lines of code, only a fraction of the almost 1500 lines of the Linux 
i2c core. It could get even less when we use the driver/bus 
infrastructure of the 2.5 kernel.

And it's ways simpler to implement lowlevel drivers, just because we 
don't need all the features provided by the Linux i2c core. A complete 
driver a STB with 2 onchip i2c adapters we have internally needs only 
about 500 lines of code, much less than the common combination of 
algorithm/lowlevel driver.


>> This opens up another question: Is there a required module load
>> order? Frist fe's then adapters or the other way round? Or no
>> required order at all?
> 
> 
> module loading should work in any order (unless symbol dependences
> force some specific ordering).

modprobe should resolve this.

Holger



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index