Re: [PATCH] Input: ili210x - Improve polled sample spacing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux