[linux-dvb] 2.6.20 -> saa i2c messages

e9hack e9hack at googlemail.com
Thu Feb 15 17:44:09 CET 2007

Udo van den Heuvel wrote:
> Hello,
> Kernel 2.6.20 gives me the messages like at the end of this email.
> I found the patch at
> http://www.linuxtv.org/pipermail/linux-dvb/2006-December/014951.html
> which should help but does not fix my problem.
> I have a HZ of 250 (I think) and am using a VIA Epia EN12000 (1.2 Ghz C3
> Esther CPU)
> Any ideas about a fix?
> Udo
> Velocity is AUTO mode
> eth0: Link autonegation speed 100M bps full duplex
> saa7146_i2c_writeout(153b,1157): timed out waiting for end of xfer
> EIO after saa7146_i2c_writeout: count=0(1), data=0xa00000c0, addr=0x50,
> R/W=W, len=0, buf[0]=0x00, buf[1]=0x00
> saa7146_i2c_writeout(153b,1157): timed out waiting for end of xfer
> hwmon-vid: Unknown VRM version of your x86 CPU
> [root at recorder ~]#
> _______________________________________________
It is possible a bug in the i2c functions of the saa7146. Someone tries
to check, if an i2c device exist in the range of 0x50..0x57 on the i2c
bus of an Cinergy 1200 DVB-T. This request doesn't come from the dvb
driver. The check is done by a write request without a data byte. The
saa7146 can't handle such a request. Each byte of a request can only get
one of the attributes START, STOP or CONT. The driver sets the attribute
of the last byte always to STOP. The first byte has already got the
START attribute, which cannot be overwritten by STOP, because START is 3
and STOP is 1. The request timed out, because it wasn't send a STOP
condition on the i2c bus. I think, such a request without data, should
be always convert to a read request of one byte.

- Hartmut

More information about the linux-dvb mailing list