I was working on an application that needs the stop condition immediately. So this adds a timer after each byte is received/sent and if the bus is idle at the timeout, send the stop. Also, I noticed when you use the i2c-slave-eeprom, if you read some data and then read some data again, the last byte of the first read will be the first byte of the second read. This is because i2c-slave-eeprom expects a read-ahead. That's what the documentation says, at least. Thanks to Uwe Kleine-König and Oleksij Rempel for reviewing. -corey Changes since v1: * Added a comment on the hrtimer cancel on why the return value didn't need to be checked. * Combine the hrtimer patch into the main timer patch.