K 10 svn:author V 3 ian K 8 svn:date V 27 2017-09-11T02:50:24.275619Z K 7 svn:log V 760 MFC r320460, r320461, r320462, r320463: If an i2c transfer ends due to error, issue a stop on the bus even if the nostop option is set, if a start was issued. Add iic_recover_bus(), a helper function that can be used by any i2c driver which is able to manipulate the clock and data lines directly. When an i2c bus is hung by a slave device stuck in the middle of a transaction that didn't complete properly, this function manipulates the clock and data lines in a sequence known to reliably reset slave devices. The most common cause of a hung i2c bus is a system reboot in the middle of an i2c transfer (so it doesnt' happen often, but now there is a way other than power cycling to recover from it). Add bus recovery handling to the imx5/imx6 i2c driver. END