On Mon, 29 Sep 2008 23:21:00 +0100 "ext Ben Dooks" <ben-linux@xxxxxxxxx> wrote: > On Thu, Sep 25, 2008 at 10:53:47AM +0300, Tony Lindgren wrote: > > From: Jarkko Nikula <jarkko.nikula@xxxxxxxxx> > > > > If there is a signal pending and wait_for_completion_interruptible_timeout > > terminates with -ERESTARTSYS, we return and disable the i2c clocks in > > omap_i2c_xfer. > > > > If we terminate before sending last i2c message with a stop condition, the > > bus remains busy and we are not able to send new messages into bus with > > successive omap_i2c_xfer calls. Therefore a pending signal is not caught > > here and we return only because of timeout or i2c error. > > I assume that this is preferable to aborting an transfer when the > signal is caught (if possible) ? > Most probably yes as long as the stop condition is generated successfully. IRCC bug behind this fix, OMAP I2C went into bus arbitration without code able to recover easily or something like that. Would it be ok to let this fix as now, probably adding FIXME line near wait_for_completion_timeout so that we don't break anything now but note that this is not optimal fix? Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html