Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 937ad5c1 authored by Soeren Sonnenburg's avatar Soeren Sonnenburg Committed by Dmitry Torokhov
Browse files

Input: appletouch - another fix for idle reset logic



Make sure we reset idlecount when we get a good (non-empty) packet.

Signed-off-by: default avatarSoeren Sonnenburg <kernel@nn7.de>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent aefca8ba
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -502,18 +502,23 @@ static void atp_complete(struct urb* urb)

		/* reset the accumulator on release */
		memset(dev->xy_acc, 0, sizeof(dev->xy_acc));
	}

	/* Geyser 3 will continue to send packets continually after
	   the first touch unless reinitialised. Do so if it's been
	   idle for a while in order to avoid waking the kernel up
	   several hundred times a second */
		if (!key && atp_is_geyser_3(dev)) {

	if (atp_is_geyser_3(dev)) {
		if (!x && !y && !key) {
			dev->idlecount++;
			if (dev->idlecount == 10) {
				dev->valid = 0;
				schedule_work(&dev->work);
			}
		}
		else
			dev->idlecount = 0;
	}

	input_report_key(dev->input, BTN_LEFT, key);