On Mon, 2019-07-01 at 19:03 +0300, Andriy Gapon wrote: > iicbb driver has a hardcoded timeout that defines how long the driver waits for > SCL line to go high after the driver releases it to float. Sometimes slaves > hold the line low until they are ready to continue with the communication. > As a side note, the timeout means that the driver just goes on as if the line > became high. Maybe it should produce an error instead. > > Anyway, I would like to increase the current timeout of 100 x 10us to 1000 x > 10us. The rationale is that there are many slave devices, like sensors, that > take about 10 ms to return a result. So, I think that it makes sense to play > nice with such devices by default. > > Probably I'll add a sysctl for that parameter while I'll be there. > > Any objections? Many (perhaps most?) modern i2c slave devices are both i2c and smbus compatible, and the smbus slave timeout is 35ms, so that wouldn't be a bad default value. I don't think ignoring the error and forging ahead is a good idea. It should return an error, and perhaps it should use the bitbang bus- recovery sequence (from iic_recover_bus.c) to unwedge the slave device. -- IanReceived on Mon Jul 01 2019 - 14:27:53 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC