On Mon, Mar 1, 2010 at 1:24 PM, Luotao Fu <l.fu@xxxxxxxxxxxxxx> wrote: > The start/stop condtions are set in different places repetedly in the i2c-pnx > driver. Beside in i2c_pnx_start and i2c_pnx_stop the start/stop bit are also > set during the transfer of a i2c message in the master_xmit/rcv calls. This is > wrong since we can't set the start/stop condition during the transaction of a > single message any way. As a matter of fact, the driver will sometimes set both > the start and the stop bits at one time. This can be easily reproduced by > sending a simple read request like e.g > struct i2c_msg msgs[] = { > { addr, 0, 1, buf }, > { addr, I2C_M_RD, offset, buf } > }; > While processing the first message the i2c_pnx_master_xmit will set both the > start_bit and the stop_bit, which will eventually confuse the slave. > > Fixed by remove setting start/stop condition from the transmit routines. > > Signed-off-by: Luotao Fu <l.fu@xxxxxxxxxxxxxx> Acked-by: Vitaly Wool <vitalywool@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html