From: Derek Foreman <derek@collabora.co.uk>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: Derek Foreman <derek.foreman@collabora.co.uk>,
linux-input@vger.kernel.org
Subject: Re: [PATCH 2/4] Input: Report defuzzed event once before filtering for devices with the INCONSISTENT_RATE property
Date: Mon, 13 Jun 2011 10:19:58 -0400 [thread overview]
Message-ID: <4DF61C8E.3060708@collabora.co.uk> (raw)
In-Reply-To: <20110610205621.GB5925@polaris.bitmath.org>
On 06/10/11 16:56, Henrik Rydberg wrote:
> On Fri, Jun 10, 2011 at 03:55:02PM -0400, Derek Foreman wrote:
>> Some input devices have a non-uniform report rate, which can make it difficult for a userspace driver to distinguish between a lack of motion or a lack of new input.
>>
>> With this patch, if multiple duplicate events (after defuzz) are received in a row, the first duplicate is posted to userspace.
>
> Every change is already propagated exactly once, which seems to amount
> to the same thing your patch is aiming at. The evdev event signifies
> the change itself (and when it occurs), so there is actually no
> difference between the lack of motion and the lack of input.
Hi Henrik,
Thank you for all your input.
The specific problem that this patch aims to solve is that a certain
family of synaptics devices drops from 80Hz to 40Hz reporting when 2 or
more fingers are on the pad. As the screen refresh rate for a modern PC
is generally 60Hz, input feels subjectively much less interactive.
It is possible - by maintaining a short history of past events and
predicting where the cursor would be in the future - to do a reasonable
job of creating 60Hz motion from this lower input rate. This is where
the difference between lack of motion and lack of input is key.
If I receive an event, then 1/80th of a second later I do NOT receive
another one, I don't know whether the device has dropped to a lower
reporting rate (lack of input), or whether the device reported the same
event 2 times in a row, and the kernel "defuzz" code filtered it (lack
of motion).
In the "lack of input" case, I want to fabricate a synthetic event to
keep the pointer motion fluid. In the "lack of motion" case, I want
pointer motion to stop.
Currently, the kernel knows it has started to filter unchanging input,
but userspace has no mechanism to detect that this filtering has begun.
As two identical events in a row is an impossibility in the face of
the defuzz code, I had thought this would be a good way to expose this
information without confusing any existing applications...
Thanks,
Derek
next prev parent reply other threads:[~2011-06-13 14:27 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-10 19:55 [PATCH 0/4] Some synaptics tweaks Derek Foreman
2011-06-10 19:55 ` [PATCH 1/4] Input: New property to indicate that a device's report rate may not be consistent Derek Foreman
2011-06-10 20:49 ` Henrik Rydberg
2011-06-10 19:55 ` [PATCH 2/4] Input: Report defuzzed event once before filtering for devices with the INCONSISTENT_RATE property Derek Foreman
2011-06-10 20:56 ` Henrik Rydberg
2011-06-13 14:19 ` Derek Foreman [this message]
2011-06-10 19:55 ` [PATCH 3/4] Input: Synaptics: Some touchpads can sense the complete locations of two fingers rather than just the bounding box, so for these pads, report the co-ordinates directly Derek Foreman
2011-06-10 21:07 ` Henrik Rydberg
2011-06-10 19:55 ` [PATCH 4/4] Input: Synaptics: Add INPUT_PROP_SYNAPTICS_T3R2 property Derek Foreman
2011-06-10 21:13 ` Henrik Rydberg
2011-06-13 14:36 ` Derek Foreman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DF61C8E.3060708@collabora.co.uk \
--to=derek@collabora.co.uk \
--cc=derek.foreman@collabora.co.uk \
--cc=linux-input@vger.kernel.org \
--cc=rydberg@euromail.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.