kern/120833: [patch] psm: try to detect Synaptics touchpad before
IntelliMouse
Eygene Ryabinkin
rea-fbsd at codelabs.ru
Tue Feb 19 14:30:02 UTC 2008
>Number: 120833
>Category: kern
>Synopsis: [patch] psm: try to detect Synaptics touchpad before IntelliMouse
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Feb 19 14:30:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Eygene Ryabinkin
>Release: FreeBSD 6.3-RELEASE amd64
>Organization:
Code Labs
>Environment:
System: FreeBSD XXX 6.3-RELEASE FreeBSD 6.3-RELEASE #15: Tue Feb 19 16:24:48 MSK 2008 root at XXX:/usr/obj/usr/src/sys/XXX amd64
>Description:
On HP/Compaq 6910p (GB951EA) notebook, psm driver detects Synaptics
touchpad as the IntelliMouse:
-----
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse, device ID 3-00, 3 buttons
-----
>How-To-Repeat:
Get HP 6910p (the one at hand was the rik@'s one), enable Synaptics
hw.psm.synaptics_support, boot FreeBSD and look at dmesg. Additionally,
one can try to use synaptics driver for Xorg (from ports): it will
refuse to find the device.
>Fix:
The simplest fix is to reorder touchpad detection in dev/atkbdc/psm.c:
--- patch-try_synaptics_earlier begins here ---
--- psm.c.orig 2008-02-19 16:59:05.000000000 +0300
+++ psm.c 2008-02-19 16:59:56.000000000 +0300
@@ -357,6 +357,8 @@
0x08, MOUSE_4D_PACKETSIZE, enable_4dmouse, },
{ MOUSE_MODEL_4DPLUS, /* A4 Tech 4D+ Mouse */
0xc8, MOUSE_4DPLUS_PACKETSIZE, enable_4dplus, },
+ { MOUSE_MODEL_SYNAPTICS, /* Synaptics Touchpad */
+ 0xc0, MOUSE_SYNAPTICS_PACKETSIZE, enable_synaptics, },
{ MOUSE_MODEL_INTELLI, /* Microsoft IntelliMouse */
0x08, MOUSE_PS2INTELLI_PACKETSIZE, enable_msintelli, },
{ MOUSE_MODEL_GLIDEPOINT, /* ALPS GlidePoint */
@@ -365,8 +367,6 @@
0x80, MOUSE_PS2_PACKETSIZE, enable_kmouse, },
{ MOUSE_MODEL_VERSAPAD, /* Interlink electronics VersaPad */
0xe8, MOUSE_PS2VERSA_PACKETSIZE, enable_versapad, },
- { MOUSE_MODEL_SYNAPTICS, /* Synaptics Touchpad */
- 0xc0, MOUSE_SYNAPTICS_PACKETSIZE, enable_synaptics, },
{ MOUSE_MODEL_GENERIC,
0xc0, MOUSE_PS2_PACKETSIZE, NULL, },
};
--- patch-try_synaptics_earlier ends here ---
This works: FreeBSD's psm(4) detects the touchpad and Xorg happily
works with both touchpad and stick. I don't know if it will break
something: it seems to me that Synaptics detection routine is rather
specific to the Synaptics itself, but the reality can be different.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list