Comment 3 for bug 1046512

Revision history for this message
Anca Emanuel (anca-emanuel) wrote : Re: [regression][precise] synaptics: Touchpad unresponsive in the latest kernel 3.2.0-30.48

uname -a
Linux asus 3.6.0-030600rc4-generic #201209011435 SMP Sat Sep 1 18:36:00 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Kernel 3.6-rc4 have the same behavior.
3.2.0-29.46 is working ok. I think this patch was added later:

Ben Hutchings - Aug. 7, 2012, 3:28 a.m.
3.2-stable review patch. If anyone has any objections, please let me know.

------------------

From: Seth Forshee <email address hidden>

commit c0394506e69b37c47d391c2a7bbea3ea236d8ec8 upstream.

The touchpad on the Acer Aspire One D250 will report out of range values
in the extreme lower portion of the touchpad. These appear as abrupt
changes in the values reported by the hardware from very low values to
very high values, which can cause unexpected vertical jumps in the
position of the mouse pointer.

What seems to be happening is that the value is wrapping to a two's
compliment negative value of higher resolution than the 13-bit value
reported by the hardware, with the high-order bits being truncated. This
patch adds handling for these values by converting them to the
appropriate negative values.

The only tricky part about this is deciding when to treat a number as
negative. It stands to reason that if out of range values can be
reported on the low end then it could also happen on the high end, so
not all out of range values should be treated as negative. The approach
taken here is to split the difference between the maximum legitimate
value for the axis and the maximum possible value that the hardware can
report, treating values greater than this number as negative and all
other values as positive. This can be tweaked later if hardware is found
that operates outside of these parameters.

BugLink: http://bugs.launchpad.net/bugs/1001251
Signed-off-by: Seth Forshee <email address hidden>
Reviewed-by: Daniel Kurtz <email address hidden>
Signed-off-by: Dmitry Torokhov <email address hidden>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <email address hidden>