Hi, > None of that seems to model the inability to perform atomic transactions > within the SMBus timeout. This is either a bug of this specific driver > or maybe the expressiveness of I2C_FUNC_* is not sufficient. > > https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/i2c.h#L88 > > What flag do you think we could check to find out whether the bus is > able to obey the SMBus timeout or not? While not perfect, you can reasonably assume that the bus cannot obey to SMBus timings when I2C_FUNC_I2C is set. Because in the vast majority of all cases with I2C_FUNC_I2C, SMBus commands are emulated which is prone to the latency you described. You'd need a native SMBus controller to avoid that which usually has not I2C_FUNC_I2C set. Happy hacking, Wolfram