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

Grzegorz Blach magik at back-up.pl
Mon Aug 11 14:19:39 UTC 2008



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



More information about the freebsd-usb mailing list