Date: Tue, 19 Feb 2008 17:28:14 +0300 (MSK) From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> To: FreeBSD-gnats-submit@FreeBSD.org Cc: rik@FreeBSD.org, njl@FreeBSD.org Subject: kern/120833: [patch] psm: try to detect Synaptics touchpad before IntelliMouse Message-ID: <20080219142814.A9ACE1AF41E@void.codelabs.ru> Resent-Message-ID: <200802191430.m1JEU192090541@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080219142814.A9ACE1AF41E>