usb/125941: not working wheel on my microsoft notebook optical mouse 3000

Grzegorz Blach magik at back-up.pl
Mon Aug 11 17:40:04 UTC 2008


The following reply was made to PR usb/125941; it has been noted by GNATS.

From: Grzegorz Blach <magik at back-up.pl>
To: Kai Wang <kaiwang27 at gmail.com>
Cc: FreeBSD-gnats-submit at FreeBSD.org, freebsd-usb at FreeBSD.org
Subject: Re: usb/125941: not working wheel on my microsoft notebook optical mouse
 3000
Date: Mon, 11 Aug 2008 13:30:57 -0400

 On Mon, 11 Aug 2008 17:19:41 +0200, Kai Wang <kaiwang27 at gmail.com> 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 <kaiwang27 at gmail.com>
 > wrote:
 >> > On Tue, Aug 05, 2008 at 10:03:15AM -0400, magik at back-up.pl wrote:
 >> >> 
 >> >> 
 >> >> On Thu, 24 Jul 2008 23:30:07 GMT, FreeBSD-gnats-submit at 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: <Microsoft Microsoft Notebook Optical Mouse with Tilt 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: <Microsoft Microsoft Notebook Optical Mouse with Tilt 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: <Microsoft Microsoft Notebook Optical Mouse with Tilt Wheel, class
 0/0, rev 2.00/1.20, addr 4> on uhub0
 -ums1: 3 buttons and Z dir and a TILT dir.
 +ums0: <Microsoft Microsoft Notebook Optical Mouse with Tilt 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.
 
 


More information about the freebsd-usb mailing list