From owner-freebsd-bugs@FreeBSD.ORG Tue Feb 19 14:30:02 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0206716A473 for ; Tue, 19 Feb 2008 14:30:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id CFF5C13C469 for ; Tue, 19 Feb 2008 14:30:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m1JEU1St090542 for ; Tue, 19 Feb 2008 14:30:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m1JEU192090541; Tue, 19 Feb 2008 14:30:01 GMT (envelope-from gnats) Resent-Date: Tue, 19 Feb 2008 14:30:01 GMT Resent-Message-Id: <200802191430.m1JEU192090541@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Eygene Ryabinkin Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9EA1F16A417; Tue, 19 Feb 2008 14:28:16 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) Received: from 0.mx.codelabs.ru (0.mx.codelabs.ru [144.206.177.45]) by mx1.freebsd.org (Postfix) with ESMTP id 4D62E13C469; Tue, 19 Feb 2008 14:28:16 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) Received: from void.codelabs.ru (void.codelabs.ru [144.206.177.25]) by 0.mx.codelabs.ru with esmtps (TLSv1:CAMELLIA256-SHA:256) id 1JRTSA-00032F-Rf; Tue, 19 Feb 2008 17:28:15 +0300 Message-Id: <20080219142814.A9ACE1AF41E@void.codelabs.ru> Date: Tue, 19 Feb 2008 17:28:14 +0300 (MSK) From: Eygene Ryabinkin To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: rik@FreeBSD.org, njl@FreeBSD.org Subject: kern/120833: [patch] psm: try to detect Synaptics touchpad before IntelliMouse X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Eygene Ryabinkin List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Feb 2008 14:30:02 -0000 >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: 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: