Hello Johannes,
As a first attempt, I changed i2c_writeout() in CVS to use a waitqueue and the irq handler instead of busy waiting. Currently it does this for each i2c writeout, not for the whole transaction.One other thing I noticed: The new I2C driver causes a higher system load, most visible when you pull out the SAT cable and let the kdvb-fe thread do its zig-zag scanning work. In theory the approach with schedule() should perform better than the old mdelay() stuff, but it seems it doesn't. Maybe not enough to worry about, but maybe we could use one of the saa's register sequencers for I2C timing?
It decreases the load dramatically for long i2c transactions in my tests.
(Of course it would be better to write something like:
- prepare the i2c message, then fire it off
- let the irq handler directly handle all following i2c transactions
- only wake up the waiting process if the whole transaction is finished
)
Regards, Johannes
CU Michael.
-- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.