BYD TouchPad driver (4.8.1) misdetects a Logitech mouse

From: Michael Shell
Date: Sun Oct 16 2016 - 05:34:45 EST



Not a big deal, but something nonetheless ...

I recently upgraded my kernel from 4.3 to 4.8.1 (this is a Linux From
Scratch build). There was only one obvious hiccup - X would not
start because it no longer saw the mouse.

I have a Logitech RX250 PS2/USB mouse on the PS/2 port (via a USB->PS2
adapter):

http://support.logitech.com/en_gb/product/rx250-mouse

The RX250 is a wheel mouse, but with an added left/right scroll wheel
"tilt" feature to provide for horizontal scrolling.

In my xorg.conf I had:


Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "Name" "ImExPS/2 Logitech Explorer Mouse"
EndSection


However, under the 4.8.1 kernel, cat /proc/bus/input/devices shows:


I: Bus=0011 Vendor=0002 Product=0006 Version=0073
N: Name="ImExPS/2 BYD TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input3
U: Uniq=
H: Handlers=mouse0 event2
B: PROP=1
B: EV=7
B: KEY=1f0000 0 0 0 0 0 0 0 0
B: REL=143


and dmesg shows the lines:


psmouse serio1: logips2pp: Detected unknown Logitech mouse model 115
input: ImExPS/2 BYD TouchPad as /devices/platform/i8042/serio1/input/input3


Changing the mouse name in xorg.conf to "ImExPS/2 BYD TouchPad" did
allow the mouse to work correctly under X, including the tilt buttons.
FWIW, in the 4.8.1 kernel config, the byd.c driver does default to
"Yes", a default which I accepted under make oldconfig.

Apparently, the detection code (byd_detect) in the new byd.c driver,
which did not even exist in 4.3, (drivers/input/mouse/byd.c) falsely
sees the Logitech RX250 as being a BYD TouchPad and thus alters the
vendor and model names.

I do not know if it is also desirable to add an entry for a Logitech
model 115 in get_model_info in logips2pp.c
(drivers/input/mouse/logips2pp.c). But if so, I would be willing to
test any such new code. Even as an unknown Logitech model, it does
work just fine. I am curious as to how the tilt feature buttons would
be declared in the model info (would these be PS2PP_EXTRA_BTN,
or PS2PP_NAV_BTN, etc.?)



Cheers and thanks in advance,

Mike Shell