[linux-dvb] [PATCH 1/3] Fix a problem during the access to the IER and ISR registers of the SA7146

e9hack e9hack at googlemail.com
Sun Dec 17 22:05:21 CET 2006

Dominik Strasser wrote:
> e9hack schrieb:
>> I think that this comes from ves1820_readreg(). 
This was wrong, it comes from ves1820_writereg(). It is the write
sequence from ves1820_init().

>> If your kernel is configured with a timer frequency of 100Hz or if your
>> pc runs with a high load, the timeout value of 10ms may be to small. The
>> second patch increases the timeout value to 50ms.
> This is a standard Suse 10.2 kernel which is built with CONFIG_HZ=250
> The load is rather low, only VDR is running <10% CPU.
> Unfortunately the increased timeout didn't change anything.
> But with CONFIG_HZ=250,  the timeout was still at 10ms. I now changed
> it to 20*HZ/100, now the frequency of the message has decreased, but
> it still occurs.  I'll retry with increased values. 50*HZ seems to
> work. I'll try to find a minimum. No 50 isn't enough. Still messages
> occur ...
I've looked  to saa7146_i2c_writeout() and to
wait_event_interruptible_timeout() again. The timeout value is
calculated after the transfer is started. A high load doesn't shorten
the real timeout. I think that the old value of 10ms is enough. There is
no error message from ves1820_writereg(). The values are written
correctly during the retries. The same timeout messages exist for the
(old) non interrupt transfer. But in this case the message is only
printed if I2C-debugging is enabled.. I think you will see this message
also with the (old) non interrupt transfer, if you change this debug
message to an always printed message.

- Hartmut 

More information about the linux-dvb mailing list