From owner-freebsd-hardware@FreeBSD.ORG Fri Feb 1 09:35:37 2008 Return-Path: Delivered-To: freebsd-hardware@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7908316A41A; Fri, 1 Feb 2008 09:35:37 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from falcon.cybervisiontech.com (falcon.cybervisiontech.com [217.20.163.9]) by mx1.freebsd.org (Postfix) with ESMTP id B59F713C46E; Fri, 1 Feb 2008 09:35:36 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from localhost (localhost [127.0.0.1]) by falcon.cybervisiontech.com (Postfix) with ESMTP id EC82843DF8C; Fri, 1 Feb 2008 11:35:34 +0200 (EET) X-Virus-Scanned: Debian amavisd-new at falcon.cybervisiontech.com Received: from falcon.cybervisiontech.com ([127.0.0.1]) by localhost (falcon.cybervisiontech.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OZaeYI7kWk22; Fri, 1 Feb 2008 11:35:34 +0200 (EET) Received: from [10.2.1.87] (gateway.cybervisiontech.com.ua [88.81.251.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by falcon.cybervisiontech.com (Postfix) with ESMTP id 5B19443DA44; Fri, 1 Feb 2008 11:35:34 +0200 (EET) Message-ID: <47A2E7E5.1040307@icyb.net.ua> Date: Fri, 01 Feb 2008 11:35:33 +0200 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.9 (X11/20080123) MIME-Version: 1.0 To: Vojtech Pavlik References: <4799D78F.6000405@icyb.net.ua> <47A097FA.3090303@icyb.net.ua> <20080130164508.GC6257@suse.cz> In-Reply-To: <20080130164508.GC6257@suse.cz> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Cc: mikeh@freebsd.org, freebsd-stable@freebsd.org, freebsd-hardware@freebsd.org Subject: Re: mouse problems [A4 Tech OP-3D] X-BeenThere: freebsd-hardware@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General discussion of FreeBSD hardware List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Feb 2008 09:35:37 -0000 on 30/01/2008 18:45 Vojtech Pavlik said the following: > On Wed, Jan 30, 2008 at 05:30:02PM +0200, Andriy Gapon wrote: [snip] >> I see that Linux driver and FreeBSD driver are (mostly) equivalent in >> "IntelliMouse Explorer" detection. I wonder if Linux handles this mouse >> well, and if yes, then how. > > I don't know, honestly, I never tried this specific mouse. A4-Tech is > infamous of producing mice with all kinds of strange quirks and bugs. But not this time :) I tried to boot Knoppix live CD and it recognized the mouse as having ImExPS/2 protocol which the same as I found by try-and-error. I compared FreeBSD and Linux sources more thoroughly and found the following: http://lxr.linux.no/linux+v2.6.24/drivers/input/mouse/psmouse-base.c#L464 static int im_explorer_detect(struct psmouse *psmouse, int set_properties) { struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param[2]; intellimouse_detect(psmouse, 0); I.e., first thing the explorer probe does is massaging a mouse with IntelliMouse magic commands. I did the same in FreeBSD psm.c, i.e., added a call to enable_msintelli() at the very start of enable_msexplorer(). And voilą - everything is perfect, correct ID is returned, probing succeeds, the mouse works great. I think that this change is quite safe to make in FreeBSD, because with Linux user-base we can be 99% percent sure that this change won't break anything. >> on 25/01/2008 14:35 Andriy Gapon said the following: >>> I've recently got a cheap PS/2 mouse A4 Tech OP-3D: >>> http://www.a4tech.com/EN/product2.asp?CID=114&SCID=115&MNO=OP-3D >>> >>> It looks like your regular mouse with a combined >>> middle-button/scroll-wheel. The only unusual feature is an additional >>> button for "double-click" - I am not sure if it's simulated within the >>> mouse itself or if it is reported to controller/driver. >>> >>> There is a problem with this mouse though: if I don't do anything >>> special then this mouse acts very erratically and misbehaves all it can >>> - movements are ignored or reported as button clicks, button clicks get >>> reported as movements or clicks of different buttons, etc. >>> One cure that I initially found was to kill moused, disconnect and >>> reconnect the mouse and restart moused, after that moused worked well. >>> Then, I found out that I could achieve the same if I specify 0x200 flag >>> (no id probing). >>> Judging from verbose dmesg the mouse is detected as a generic ps/2 mouse >>> with or without this flag, there is no difference whatsoever. So it >>> seems that probing for various mouse models somehow hoses this mouse. >>> >>> Question #1: maybe some kind of additional mouse reset should be >>> performed after all probes failed and we settle on generic? >>> >>> Well, while flag 0x200 makes the mouse behave reasonably, it seems that >>> the presence of the wheel is not detected (or mouse is configured to >>> ignore it?), so I can not use it. >>> >>> Question #2: what are the further steps to debug this issue so that this >>> mouse is properly recognized? I really would like to get the wheel working. >>> >>> I can provide any additional information needed. >>> Thank you. >>> >> >> -- >> Andriy Gapon >> > -- Andriy Gapon