From owner-freebsd-usb@FreeBSD.ORG Tue Aug 12 14:53:38 2008 Return-Path: Delivered-To: freebsd-usb@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD7B91065689; Tue, 12 Aug 2008 14:53:38 +0000 (UTC) (envelope-from magik@back-up.pl) Received: from chi.fastbighost.com (chi.fastbighost.com [65.98.102.73]) by mx1.freebsd.org (Postfix) with ESMTP id A85C68FC22; Tue, 12 Aug 2008 14:53:38 +0000 (UTC) (envelope-from magik@back-up.pl) Received: from admc214.neoplus.adsl.tpnet.pl ([79.185.32.214] helo=silver.doors) by chi.fastbighost.com with esmtpa (Exim 4.69) (envelope-from ) id 1KSvFd-0004DY-Om; Tue, 12 Aug 2008 10:53:34 -0400 Date: Tue, 12 Aug 2008 16:53:29 +0200 From: Grzegorz Blach To: Kai Wang Message-ID: <20080812165329.47bc22d8@silver.doors> In-Reply-To: <20080812133029.GA9576@plan0> References: <200807242330.m6ONU70T091921@freefall.freebsd.org> <5d252c1d8f1ddaed55d2467adea536ca@chi.fastbighost.com> <20080811133434.GA4224@plan0> <0ed513c9800b730fff47034b86526e5d@chi.fastbighost.com> <20080811151941.GA4590@plan0> <310aef2cb8e5bbcc7cf345f962cb102b@chi.fastbighost.com> <20080812022710.GA7527@plan0> <20080812143016.2ac5a7a4@silver.doors> <20080812133029.GA9576@plan0> X-Mailer: Claws Mail 3.5.0 (GTK+ 2.12.11; i386-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - chi.fastbighost.com X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - back-up.pl X-Source: X-Source-Args: X-Source-Dir: Cc: FreeBSD-gnats-submit@FreeBSD.org, freebsd-usb@FreeBSD.org Subject: Re: usb/125941: not working wheel on my microsoft notebook optical mouse 3000 X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2008 14:53:39 -0000 On Tue, 12 Aug 2008 15:30:29 +0200 Kai Wang wrote: > On Tue, Aug 12, 2008 at 02:30:16PM +0200, Grzegorz Blach wrote: > > On Tue, 12 Aug 2008 04:27:10 +0200 > > Kai Wang wrote: > > > > > On Mon, Aug 11, 2008 at 01:30:57PM -0400, Grzegorz Blach wrote: > > > > On Mon, 11 Aug 2008 17:19:41 +0200, Kai Wang > > > > wrote: > > > > > On Mon, Aug 11, 2008 at 10:19:35AM -0400, Grzegorz Blach > > > > > wrote: > > > > >> > > > > >> > > > > >> On Mon, 11 Aug 2008 15:34:34 +0200, Kai Wang > > > > >> > > > > > wrote: > > > > >> > On Tue, Aug 05, 2008 at 10:03:15AM -0400, magik@back-up.pl > > > > >> > wrote: > > > > >> >> > > > > >> >> > > > > >> >> On Thu, 24 Jul 2008 23:30:07 GMT, > > > > >> >> FreeBSD-gnats-submit@FreeBSD.org > > > > >> > wrote: > > > > >> >> > Thank you very much for your problem report. > > > > >> >> > It has the internal identification `usb/125941'. > > > > >> >> > The individual assigned to look at your > > > > >> >> > report is: freebsd-usb. > > > > >> >> > > > > > >> >> > You can access the state of your problem report at any > > > > >> >> > time via this link: > > > > >> >> > > > > > >> >> > http://www.freebsd.org/cgi/query-pr.cgi?pr=125941 > > > > >> >> > > > > > >> >> >>Category: usb > > > > >> >> >>Responsible: freebsd-usb > > > > >> >> >>Synopsis: not working wheel on my microsoft > > > > >> >> >>notebook optical > > > > >> > mouse > > > > >> >> > 3000 > > > > >> >> >>Arrival-Date: Thu Jul 24 23:30:07 UTC 2008 > > > > >> >> > > > > >> >> I just fixed problem with wheel on my mouse > > > > >> >> and I'm sending in attachment patch > > > > >> >> for /usr/src/sys/dev/usb/ums.c > > > > > file. > > > > >> > > > > > >> >> --- ums.c.orig 2008-08-05 17:24:21.815936911 +0200 > > > > >> >> +++ ums.c 2008-08-05 17:24:51.885277111 +0200 > > > > >> >> @@ -402,6 +402,7 @@ > > > > >> >> sc->sc_loc_x.pos = 8; > > > > >> >> sc->sc_loc_y.pos = 16; > > > > >> >> sc->sc_loc_z.pos = 24; > > > > >> >> + sc->sc_loc_z.size = 8; > > > > >> >> sc->sc_loc_btn[0].pos = 0; > > > > >> >> sc->sc_loc_btn[1].pos = 1; > > > > >> >> sc->sc_loc_btn[2].pos = 2; > > > > >> > > > > > >> > > > > > >> > Hi, > > > > >> > > > > > >> > Thanks for submitting the patch. It'd be great if you could > > > > >> > also test the patch below for us and paste the result here, > > > > >> > just for better understanding the problem. > > > > >> > > > > > >> > The patch adds some debug printfs: > > > > >> > > > > > >> > --- /sys/dev/usb/ums.c 2008-05-05 20:25:42.000000000 > > > > >> > +0200 +++ ums.c 2008-08-11 15:25:44.000000000 +0200 > > > > >> > @@ -284,6 +284,7 @@ > > > > >> > wheel = hid_locate(desc, size, > > > > >> > HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_WHEEL), > > > > >> > hid_input, &sc->sc_loc_z, > > > > >> > &flags); > > > > >> > + printf("wheel=%d\n", wheel); > > > > >> > > > > > >> > if (wheel) { > > > > >> > if ((flags & MOUSE_FLAGS_MASK) != > > > > >> > MOUSE_FLAGS) { @@ -323,6 +324,7 @@ > > > > >> > sc->flags |= UMS_Z; > > > > >> > } > > > > >> > } > > > > >> > + printf("sc->flags=0x%04x\n", sc->flags); > > > > >> > > > > > >> > /* > > > > >> > * The Microsoft Wireless Intellimouse 2.0 reports > > > > >> > it's wheel @@ -402,6 +404,7 @@ > > > > >> > sc->sc_loc_x.pos = 8; > > > > >> > sc->sc_loc_y.pos = 16; > > > > >> > sc->sc_loc_z.pos = 24; > > > > >> > + printf("sc->sc_loc_z.size=%u\n", > > > > >> > sc->sc_loc_z.size); sc->sc_loc_btn[0].pos = 0; > > > > >> > sc->sc_loc_btn[1].pos = 1; > > > > >> > sc->sc_loc_btn[2].pos = 2; > > > > >> > > > > >> this, what I see: > > > > >> > > > > >> ums0: > > > >> Wheel, class 0/0, rev 2.00/1.20, addr 2> on uhub0 > > > > >> wheel=0 > > > > >> sc->flags=0x0000 > > > > >> ums0: 3 buttons and a TILT dir. > > > > >> sc->sc_loc_z.size=0 > > > > >> > > > > > > > > > > Interesting. Now I suspect that Optical Mouse 3000 model 1049 > > > > > got different > > > > > versions. > > > > > > > > > > Could you please get krepdump > > > > > (http://people.freebsd.org/~kaiw/tools/krepdump.tgz) > > > > > > > > > > # tar xzvf krepdump.tgz > > > > > # cd krepdump > > > > > # make > > > > > # kldload ./krepdump.ko > > > > > > > > > > Then plug in your mouse and paste the result here? > > > > > > > > > > There is one version of report desc of this mouse here: > > > > > http://lists.freebsd.org/pipermail/freebsd-usb/2008-February/004617.html > > > > > > > > > > and my guess is your mouse's report desc is different than > > > > > that... > > > > > > > > > > > > > > > Thanks, > > > > > Kai > > > > > > > > ---- my krepdump ---- > > > > ums0: at uhub0 port 2 (addr 2) disconnected > > > > ums0: detached > > > > > > > > [report desc size=196] > > > > USAGE PAGE Consumer(0xc) > > > > USAGE Consumer Control(0x1)[Consumer(0xc)] > > > > COLLECTION Application(1) > > > > USAGE PAGE Generic Desktop(0x1) > > > > USAGE Mouse(0x2)[Generic Desktop(0x1)] > > > > COLLECTION Logical(2) > > > > REPORT ID 19 > > > > USAGE PAGE Consumer(0xc) > > > > USAGE AC Pan(0x238)[Consumer(0xc)] > > > > REPORT COUNT 1 > > > > REPORT SIZE 8 > > > > LOGICAL MINIMUM -127 > > > > LOGICAL MAXIMUM 127 > > > > INPUT ( Data Variable Relative ) (6) > > > > REPORT ID 23 > > > > USAGE PAGE Microsoft(0xff00) > > > > USAGE Unknown Usage(0xff06)[Microsoft(0xff00)] > > > > LOGICAL MINIMUM 0 > > > > LOGICAL MAXIMUM 1 > > > > PHYSICAL MINIMUM 1 > > > > PHYSICAL MAXIMUM 4 > > > > REPORT COUNT 1 > > > > REPORT SIZE 2 > > > > FEATURE ( Data Variable Absolute ) (2) > > > > PHYSICAL MINIMUM 0 > > > > PHYSICAL MAXIMUM 0 > > > > FEATURE ( Const Array Absolute ) (1) > > > > USAGE Unknown Usage(0xff04)[Microsoft(0xff00)] > > > > REPORT SIZE 1 > > > > FEATURE ( Data Variable Absolute ) (2) > > > > REPORT SIZE 3 > > > > FEATURE ( Const Array Absolute ) (1) > > > > REPORT ID 24 > > > > USAGE Unknown Usage(0xff08)[Microsoft(0xff00)] > > > > REPORT SIZE 1 > > > > FEATURE ( Data Variable Absolute ) (2) > > > > REPORT SIZE 7 > > > > FEATURE ( Const Array Absolute ) (1) > > > > END COLLECTION > > > > END COLLECTION > > > > USAGE PAGE Generic Desktop(0x1) > > > > USAGE Mouse(0x2)[Generic Desktop(0x1)] > > > > COLLECTION Application(1) > > > > USAGE PAGE Generic Desktop(0x1) > > > > USAGE Mouse(0x2)[Generic Desktop(0x1)] > > > > COLLECTION Logical(2) > > > > REPORT ID 17 > > > > USAGE Pointer(0x1)[Generic Desktop(0x1)] > > > > COLLECTION Physical(0) > > > > USAGE PAGE Button(0x9) > > > > USAGE MINIMUM Button1(1) > > > > USAGE MAXIMUM Button3(3) > > > > REPORT COUNT 3 > > > > REPORT SIZE 1 > > > > LOGICAL MAXIMUM 1 > > > > INPUT ( Data Variable Absolute ) (2) > > > > REPORT COUNT 1 > > > > INPUT ( Const Array Absolute ) (1) > > > > USAGE Button5(0x5)[Button(0x9)] > > > > INPUT ( Data Variable Absolute ) (2) > > > > REPORT COUNT 3 > > > > INPUT ( Const Array Absolute ) (1) > > > > USAGE PAGE Generic Desktop(0x1) > > > > USAGE X(0x30)[Generic Desktop(0x1)] > > > > USAGE Y(0x31)[Generic Desktop(0x1)] > > > > REPORT COUNT 2 > > > > REPORT SIZE 8 > > > > LOGICAL MINIMUM -127 > > > > LOGICAL MAXIMUM 127 > > > > INPUT ( Data Variable Relative ) (6) > > > > COLLECTION Logical(2) > > > > REPORT ID 18 > > > > USAGE Resolution Multiplier(0x48)[Generic Desktop(0x1)] > > > > REPORT COUNT 1 > > > > REPORT SIZE 2 > > > > LOGICAL MINIMUM 0 > > > > LOGICAL MAXIMUM 1 > > > > PHYSICAL MINIMUM 1 > > > > PHYSICAL MAXIMUM 4 > > > > FEATURE ( Data Variable Absolute ) (2) > > > > PHYSICAL MINIMUM 0 > > > > PHYSICAL MAXIMUM 0 > > > > REPORT SIZE 6 > > > > FEATURE ( Const Array Absolute ) (1) > > > > REPORT ID 17 > > > > USAGE Wheel(0x38)[Generic Desktop(0x1)] > > > > LOGICAL MINIMUM -127 > > > > LOGICAL MAXIMUM 127 > > > > REPORT SIZE 8 > > > > INPUT ( Data Variable Relative ) (6) > > > > END COLLECTION > > > > USAGE PAGE Consumer(0xc) > > > > REPORT SIZE 8 > > > > USAGE AC Pan(0x238)[Consumer(0xc)] > > > > INPUT ( Data Variable Relative ) (6) > > > > END COLLECTION > > > > END COLLECTION > > > > END COLLECTION > > > > [hexdump] > > > > 0000 05 0C 09 01 A1 01 05 01 09 02 A1 02 85 13 05 0C > > > > 0010 0A 38 02 95 01 75 08 15 81 25 7F 81 06 85 17 06 > > > > 0020 00 FF 0A 06 FF 15 00 25 01 35 01 45 04 95 01 75 > > > > 0030 02 B1 02 35 00 45 00 B1 01 0A 04 FF 75 01 B1 02 > > > > 0040 75 03 B1 01 85 18 0A 08 FF 75 01 B1 02 75 07 B1 > > > > 0050 01 C0 C0 05 01 09 02 A1 01 05 01 09 02 A1 02 85 > > > > 0060 11 09 01 A1 00 05 09 19 01 29 03 95 03 75 01 25 > > > > 0070 01 81 02 95 01 81 01 09 05 81 02 95 03 81 01 05 > > > > 0080 01 09 30 09 31 95 02 75 08 15 81 25 7F 81 06 A1 > > > > 0090 02 85 12 09 48 95 01 75 02 15 00 25 01 35 01 45 > > > > 00A0 04 B1 02 35 00 45 00 75 06 B1 01 85 11 09 38 15 > > > > 00B0 81 25 7F 75 08 81 06 C0 05 0C 75 08 0A 38 02 81 > > > > 00C0 06 C0 C0 C0 > > > > ums0: > > > Wheel, class 0/0, rev 2.00/1.20, addr 2> on uhub0 > > > > wheel=0 > > > > sc->flags=0x0000 > > > > ums0: 3 buttons and a TILT dir. > > > > sc->sc_loc_z.size=0 > > > > ---- end of krepdump ---- > > > > > > > > > > > > ---- diff between my report and this from > > > > lists.freebsd.org/.../004617.html ---- > > > > --- 1.txt 2008-08-11 19:25:56.496820730 +0200 > > > > +++ dump.txt 2008-08-11 19:25:59.156847633 +0200 > > > > @@ -1,7 +1,7 @@ > > > > -ums1: at uhub0 port 4 (addr 4) disconnected > > > > -ums1: detached > > > > - > > > > -[report desc size=3D196] > > > > +ums0: at uhub0 port 2 (addr 2) disconnected > > > > +ums0: detached > > > > + > > > > +[report desc size=196] > > > > USAGE PAGE Consumer(0xc) > > > > USAGE Consumer Control(0x1)[Consumer(0xc)] > > > > COLLECTION Application(1) > > > > @@ -114,6 +114,9 @@ > > > > 00A0 04 B1 02 35 00 45 00 75 06 B1 01 85 11 09 38 15 > > > > 00B0 81 25 7F 75 08 81 06 C0 05 0C 75 08 0A 38 02 81 > > > > 00C0 06 C0 C0 C0 > > > > -ums1: > > > Wheel, class 0/0, rev 2.00/1.20, addr 4> on uhub0 > > > > -ums1: 3 buttons and Z dir and a TILT dir. > > > > +ums0: > > > Wheel, class 0/0, rev 2.00/1.20, addr 2> on uhub0 > > > > +wheel=0 > > > > +sc->flags=0x0000 > > > > +ums0: 3 buttons and a TILT dir. > > > > +sc->sc_loc_z.size=0 > > > > ---- end of diff ---- > > > > > > > > and short info: > > > > > > > > When I use RELENG_7_0, driver reports that my mouse have Z dir, > > > > but on RELENG_7 not. > > > > > > The report descriptor is the same. After some experiments, I think > > > the actual problem is inside our hid parser. > > > > > > Could you please try the patch attached against /sys/dev/usb/hid.c > > > along with the debug printf patch for ums.c, and see what the > > > result will be? > > > > > > > > > > kernel with appiled this two patches reports that: > > > > ums0: > class 0/0, rev 2.00/1.20, addr 2> on uhub0 ums0: mouse has no Y > > report device_attach: ums0 attach returned 6 > > > > Sorry I made a mistake in previous patch. > > How about this one? > Again, the same message as above: ums0: on uhub0 ums0: mouse has no Y report device_attach: ums0 attach returned 6