[linux-dvb] saa7146_i2c_writeout: timed out waiting for end of xfer

e9hack e9hack at googlemail.com
Tue Jul 10 23:19:30 CEST 2007

Manfred Petz wrote:
> actually, both patches help. no more timeouts, and the frontend drivers
> get loaded correctly (tried each patch separately). tried with latest hg
> & 2.6.22.

I don't understand why both patches do solve the timeout problem. The message 'timed out waiting for
end of xfer' means, that no i2c-interrupt was delivered. In this case, the return value of
saa7146_i2c_writeout() is -EIO. The first patch has only an effect, if the return value is
-EREMOTEIO. The second patch reduces the i2c bit-rate. Usually, it has nothing to do with the

Independently of this, I've found some strange things. The drivers for the TT-C2300 and the Cinergy
DVB-C cards probe some i2c devices which don't exist. This results in an address error (missing ACK
after the device address). I see three interrupts for this error. The first sets I2C_BUSY and
I2C_APERR within I2C_STATUS. It does not wake-up the waiting thread and may print the message
'unhandled irq: i2c'. The second interrupt is the normal error interrupt which does wake-up the
thread. I2C_BUSSY, I2C_ERR and I2C_APERR are set. The third interrupt has set the same three status
bits. It may print the message 'unexpected irq: i2c', because the thread was already wake-up. If the
chip-set is only able to deliver the first interrupt, the error interrupt will be never delivered
and the timeout occurs.

- Hartmut

More information about the linux-dvb mailing list