Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: Slow i2c problem -- temporary patch
Andrew de Quincey wrote:
Here's a temporary patch (for dvb-kernel CVS head) for those trying out the
tda10045h driver. As per Robert's suggestion, I have upped the i2c bitrate to
275kHz, and I've reduced the delay while waiting for the i2c status.
Issues:
1) Is there a reason for the i2c bitrate to be set to 10kHz right now? Perhaps
some cards have very slow i2c components? It is fine on the tda10045h-based
cards
no, most DVB i2c components work up to 400kHz, some work up to 1MHz.
2) I've changed the wait-for-status-delay to use mdelay()... which is not
ideal as we are now effectively busy waiting, but the current 1 jiffy delay
is WAY too much at the new speed. At 275kHz, it doesn't delay for long
enough for this to be significant though.
I modified your patch so that we use busy waiting only the first 10
trials, thenafter we call the scheduler so that the system won't lock up
for some 1/10s seconds in the worst case.
Please play a little with the actual number of trials we should to
busy-waiting, I can't test this since I neither have a desktop PC with
PCI slots nor a DVB card here.
3) If you reduce the i2c bitrate again (say back to 10kHz), your machine will
appear to hang. This is because it is having to delay for much longer for the
transmission to complete, and therefore the busy wait implied by mdelay()
becomes significant
Later, I'll submit a better patch with rate-adaptive delays, but for now, I'd
definitely recommend using this if you're testing the tda driver.
Please create your patches in the future using 'cvs -q diff -pu',
context patches are much easier to review.
As said above, I was not able to test the changes I commited, please
test and report if there are problems.
many thanks,
Holger
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index