Input: ALPS - do not mix trackstick and external PS/2 mouse data
authorPali Rohár <pali.rohar@gmail.com>
Wed, 14 Jan 2015 21:18:30 +0000 (13:18 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 15 Feb 2015 23:44:19 +0000 (15:44 -0800)
commit04aae283ba6a8cd4851d937bf9c6d6ef0361d794
tree98fa424384af30ad1ceb63be9d88e85e291375d1
parenta09221e83e13e09a33109b9b037484eade901cea
Input: ALPS - do not mix trackstick and external PS/2 mouse data

Previously dev2 device was used for both external PS/2 mouse and internal
trackstick device (if available). This change introduces dev3 device which
is used for external PS/2 mouse data and dev2 is now used only for
trackstick.

In case that trackstick is not present dev2 is not created, so userspace
does not see non existent device in system.

Because laptops with ALPS devices often do not use i8042 active
multiplexing all data (from touchpad, trackstick and external PS/2 mouse)
come to one port.  So it is not possible to know if external PS/2 mouse is
connected or not. In most cases external PS/2 mouse is not connected so
driver will create dev3 input device after first bare PS/2 packet will be
received. So there will not be "ghost" input device.

This change also helps in identifying possible problems in future if driver
decides to report 6-bytes trackstick packets as 3-bytes bare PS/2 (data
will be reported to dev3 instead dev2).

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/alps.c
drivers/input/mouse/alps.h