linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Seth Forshee <seth.forshee@canonical.com>
To: Daniel Kurtz <djkurtz@chromium.org>
Cc: linux-input@vger.kernel.org, Dmitry Torokhov <dmitry.torokhov@gmail.com>
Subject: Re: [PATCH] Input: synaptics - Adjust threshold for treating position values as negative
Date: Mon, 10 Sep 2012 09:29:10 -0500	[thread overview]
Message-ID: <20120910142910.GA17662@thinkpad-t410> (raw)
In-Reply-To: <CAGS+omA_bX6FEYP1CU7bD6_UUG3dkpyzbHu1iOQhRWpWpT2tuw@mail.gmail.com>

On Mon, Sep 10, 2012 at 09:31:52PM +0800, Daniel Kurtz wrote:
> On Mon, Sep 10, 2012 at 8:47 PM, Seth Forshee <seth.forshee@canonical.com>wrote:
> 
> > Commit c039450 (Input: synaptics - handle out of bounds values from the
> > hardware) caused any hardware reported values over 7167 to be treated as
> > a wrapped-around negative value. It turns out that some firmware uses
> > the value 8176 to indicate a finger near the edge of the touchpad whose
> > actual position cannot be determined. This value now gets treated as
> > negative, which can cause pointer jumps and broken edge scrolling on
> > these machines.
> 
> 
> > I only know of one touchpad which reports negative values, and this
> > hardware never reports any value lower than -8 (i.e. 8184). Moving the
> > threshold for treating a value as negative up to 8176 should work fine
> > then for any hardware we currently know about, and since we're dealing
> > with unspecified behavior it's probably the best we can do. The special
> > 8176 value is also likely to result in sudden jumps in position, so
> > let's also clamp this to the maximum speicified value for the axis.
> >
> 
> Would 8176 still be reported if it was near the X/Y_MIN edge but cannot be
> determined?

I've been told 0 is reported in that case.

> If we just report MAX, will that warp the position all the way across the
> pad?

I don't follow. How would this have any impact on the other positions?

The only place where I'd expect to see some sort of impact is
immediately above or to the left of the location where the touchpad
starts reporting this value. Reporting MAX seems more reasonable to me
than reporting 8176, since the adjacent position is almost certainly
nowhere near 8176. An argument could be made for using the bezel limits
instead, which probably would be better for devices conforming to the
published documentation, but then we know that some devices operate
outside of these parameters.

Or we could just go back to reporting 8176 directly, which is what we
were doing before my previous patch.

> If this behavior gets too bizarre, instead of making this "one size fits
> all" solution, is it possible to use some quirks?  I recently added a patch
> that reads the board_id for the synaptics pads - we could use this to
> identify a particular type of pad and handle it appropriately.

That could make sense for the touchpad that reports negative values, as
this appears to be a problem isolated to one or a very small number of
machines.

But I've had reports of multiple machines reporting 8176, two of which
I've confirmed and one of which is almost certainly the same issue.
These are all Asus machines, but different models. There's also a report
on an Acer machine that could be the same thing, but it's far less
certain. The bug reports are coming from a 3.2-based kernel, so I don't
have the board and firmware ids printed in dmesg.

Seth


  parent reply	other threads:[~2012-09-10 14:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-10 12:47 [PATCH] Input: synaptics - Adjust threshold for treating position values as negative Seth Forshee
     [not found] ` <CAGS+omA_bX6FEYP1CU7bD6_UUG3dkpyzbHu1iOQhRWpWpT2tuw@mail.gmail.com>
2012-09-10 14:29   ` Seth Forshee [this message]
2012-09-10 16:29     ` Daniel Kurtz
2012-09-10 21:10 ` Dmitry Torokhov
2012-09-10 21:44   ` Seth Forshee

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=20120910142910.GA17662@thinkpad-t410 \
    --to=seth.forshee@canonical.com \
    --cc=djkurtz@chromium.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).