> My description seems to be a little misleading.
> WITHOUT the force_reinit() my SPI driver reports transmission errors if the
> I2C bus has longer disturbances.
> WITH the force_reinit() my SPI driver works fine.
> This sounds like the I2C allocates a new buffer for every timed-out
> transmision. If all I2C buffers are full, the SPI buffers get overwritten
> !?
> I did not really trace back the problem, this is only my suspicion.
> Because the  force_reinit() resets all the buffer pointer to their init
> values the problem with the SPI does not occur.
> 
> Cajus

I think the problem is that the CPM is still waiting on the SCL long after the 
timeout has happen.
A complete reinit will reset the I2C part of the CPM.

I think you should be able to get away with less, maybe it will enough to 
disable
I2C (i2c->i2c_i2mod &= ~1) and/or clear internal state (iip->iic_rstate   = 0; 
iip->iic_tstate   = 0;)
after a timeout?

 Jocke

Reply via email to