On Mon, Nov 08, 2021 at 12:04:30PM +0100, Marek Vasut wrote: > On 11/8/21 4:37 AM, Dmitry Torokhov wrote: > > Hi Marek, > > Hi, > > [...] > > > > diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c > > > index a3b71a9511eb3..b2d9fe1e1c707 100644 > > > --- a/drivers/input/touchscreen/ili210x.c > > > +++ b/drivers/input/touchscreen/ili210x.c > > > @@ -328,10 +328,13 @@ static irqreturn_t ili210x_irq(int irq, void *irq_data) > > > const struct ili2xxx_chip *chip = priv->chip; > > > u8 touchdata[ILI210X_DATA_SIZE] = { 0 }; > > > bool keep_polling; > > > + ktime_t time_next; > > > + s64 time_delta; > > > bool touch; > > > int error; > > > do { > > > + time_next = ktime_add_ms(ktime_get(), ILI2XXX_POLL_PERIOD); > > > error = chip->get_touch_data(client, touchdata); > > > if (error) { > > > dev_err(&client->dev, > > > @@ -341,8 +344,11 @@ static irqreturn_t ili210x_irq(int irq, void *irq_data) > > > touch = ili210x_report_events(priv, touchdata); > > > keep_polling = chip->continue_polling(touchdata, touch); > > > - if (keep_polling) > > > - msleep(ILI2XXX_POLL_PERIOD); > > > + if (keep_polling) { > > > + time_delta = ktime_us_delta(time_next, ktime_get()); > > > > Do we really need to use exact time, or ktime_get_coarse() is good > > enough, as it is cheaper? > > ktime_get_coarse() introduces multi-millisecond jitter into the samples if > you have low HZ setting, which isn't really nice. That's also why I use > ktime and not jiffies here, jiffies has the same problem. Applied, thank you. -- Dmitry