On Wed, May 13, 2015 at 08:19:59AM +0200, Michael Lawnick wrote: > Am 12.05.2015 um 21:12 schrieb Wolfram Sang: > >Doesn't look right. -EAGAIN means arbitration lost which is not a > >condition to reset the bus in a multi-master setup. > > IMHO in multi-master scenario bus recovery is never save. There is > need of higher level synchronization to find out whether any master > is active. Right. But you might be lucky and it's ok when done on error conditions like "sda is low since 300 ms". But on arbitration loss it's definitely wrong. Consider two masters where one resets the bus while the other does a transfer. That results in a arbitration loss for the latter. So the latter resets the bus and in the meantime the first one does a transfer now that the bus should be free. You see the loop? Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- 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