linux_dsm_epyc7002/drivers/input/mouse
Hans de Goede 4dd2657307 Input: alps - use more accurate coordinates for first touch in semi-mt mode
All alps semi-mt touchpads give us the following data when 2 (or more)
fingers are touching: 1 more or less accurate touch for the first finger
down, and a bitmap with columns and rows in which 1 or more fingers are
seen resulting in a crude (low res) bounding box.

So far for v3, rushmore and v4 touchpads we've been reporting the
coordinates of 2 opposite corners of the box when 2 fingers are touching.
Ignoring the much better resolution data given in the normal position
packet.

This commit actually uses this data for the first touch, figures out which
corner of the bounding box is closest to the first touch, and reports the
coordinates of the opposite corner for the second touch, resulting in
much better data for the first touch and for the single touch
pointer-emulation events.

This approach is similar to the one in alps_process_bitmap_dolphin, that
function takes the single accurate touch info, calculates the distance to
the center of the bounding box, and then puts the 2nd touch mirrored to
the center. The downside of that approach is that if both touches move
slowly in the same direction, the bounding box will stay the same for a
while (as it is low res) and the second touch will thus been seen moving
in the opposite direction until the bounding box actually changes, and
then the second touch snaps to its new position resulting in a saw tooth
pattern in the coordinates for the second touch, hence this new approach.

This commit fixes 2 finger scrolling being choppy / jumpy on these
touchpads.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2015-05-20 14:45:44 -07:00
..
alps.c Input: alps - use more accurate coordinates for first touch in semi-mt mode 2015-05-20 14:45:44 -07:00
alps.h Input: alps - use more accurate coordinates for first touch in semi-mt mode 2015-05-20 14:45:44 -07:00
amimouse.c input: mouse: drop owner assignment from platform_drivers 2014-10-20 16:20:40 +02:00
appletouch.c Input: appletouch - fix jumps when additional fingers are detected 2014-03-30 23:44:17 -07:00
atarimouse.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bcm5974.c Input: MT - add support for balanced slot assignment 2015-02-01 11:50:35 -08:00
cyapa_gen3.c Input: cyapa - fix unaligned functions redefinition error 2015-03-02 13:31:32 -08:00
cyapa_gen5.c Input: cyapa - remove superfluous type check in cyapa_gen5_read_idac_data() 2015-03-02 13:31:33 -08:00
cyapa.c Input: cyapa - fix setting suspend scan rate 2015-04-20 10:30:09 -07:00
cyapa.h Input: cyapa - add gen5 trackpad read baseline support 2015-01-18 00:10:32 -08:00
cypress_ps2.c Input: psmouse - use IS_ENABLED instead of homegrown code 2015-02-15 16:08:35 -08:00
cypress_ps2.h Input: psmouse - use IS_ENABLED instead of homegrown code 2015-02-15 16:08:35 -08:00
elan_i2c_core.c Input: elan_i2c - report hovering contacts 2015-04-20 10:28:30 -07:00
elan_i2c_i2c.c Input: elan_i2c - fix calculating number of x and y traces. 2015-04-20 10:30:09 -07:00
elan_i2c_smbus.c Input: elan_i2c - fix calculating number of x and y traces. 2015-04-20 10:30:09 -07:00
elan_i2c.h Input: elan_i2c - adjust for newer firmware pressure reporting 2015-04-14 10:21:42 -07:00
elantech.c Input: elantech - add more Fujtisu notebooks to force crc_enabled 2015-02-01 11:51:26 -08:00
elantech.h Input: elantech - add support for trackpoint found on some v3 models 2014-08-26 15:17:41 -07:00
focaltech.c Input: psmouse - disable "palm detection" in the focaltech driver 2015-03-07 13:40:21 -08:00
focaltech.h Input: psmouse - use IS_ENABLED instead of homegrown code 2015-02-15 16:08:35 -08:00
gpio_mouse.c input: mouse: drop owner assignment from platform_drivers 2014-10-20 16:20:40 +02:00
hgpk.c Input: hgpk - use %*ph to dump small buffer 2012-09-12 21:57:13 -07:00
hgpk.h Input: psmouse - switch to using dev_*() for messages 2011-10-10 18:28:16 -07:00
inport.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
Kconfig Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
lifebook.c Input: lifebook - fix tabbing issue 2015-03-20 09:45:51 -07:00
lifebook.h Input: lifebook - use "static inline" instead of "inline" in lifebook.h 2014-11-09 22:59:25 -08:00
logibm.c Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
logips2pp.c Input: logips2pp - fix spelling s/reciver/receiver/ 2014-01-12 11:41:38 -08:00
logips2pp.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
Makefile Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
maplemouse.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
navpoint.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-17 10:06:02 -08:00
pc110pad.c Input: switch to input_abs_*() access functions 2010-08-02 20:29:56 -07:00
psmouse-base.c Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
psmouse.h Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
pxa930_trkball.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
rpcmouse.c input: rpcmouse: use __iomem pointers for MMIO 2012-09-19 15:37:13 +02:00
sentelic.c Input: sentelic - only report position of first finger as ST coordinates 2012-12-24 09:51:21 -08:00
sentelic.h Input: sentelic - report device's production serial number 2012-05-10 20:39:04 -07:00
sermouse.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
synaptics_i2c.c Input: mouse - use __maybe_unused instead of ifdef around suspend/resume 2014-11-02 00:10:07 -07:00
synaptics_usb.c Input: add missing POINTER / DIRECT properties to a bunch of drivers 2014-09-08 14:58:12 -07:00
synaptics.c Linux 4.0-rc7 2015-04-07 08:46:23 -07:00
synaptics.h Linux 4.0-rc5 2015-03-23 09:18:27 -07:00
touchkit_ps2.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
touchkit_ps2.h Input: psmouse - use boolean type 2009-09-10 22:11:38 -07:00
trackpoint.c Input: psmouse - expose drift duration for IBM trackpoints 2014-12-17 15:46:51 -08:00
trackpoint.h Input: psmouse - expose drift duration for IBM trackpoints 2014-12-17 15:46:51 -08:00
vmmouse.c Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
vmmouse.h Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
vsxxxaa.c Input: vsxxxaa - fix code dropping bytes from queue 2014-10-28 10:33:48 -07:00