On Monday, October 29, 2018 2:04:13 PM CET Peter Korsgaard wrote: > > I think that something like this could be better > > > > (2) usleep_range(sleep_min, sleep_min * XXX); > > > > But. > > Since it is better to make this patch ready for xfer_irqless, then I will > > definitively go for udelay(). The reason is that, xfer_irqless may run in > > atomic context where we can't sleep at all. > > Great! BTW I noticed that your sleep_min calculation looked odd: > > int sleep_min = (8/i2c->bus_clock_khz) * 1000; /* us for 8bits > > bus_clock_khz almost certainly will be bigger than 8 (E.G. likely > 100KHz), so the above set sleep_min to 0. Please move the * 1000 before > the division. True, oops