Date: Tue, 17 Feb 2009 22:20:03 +0200 From: Giorgos Keramidas <keramida@freebsd.org> To: Hans Petter Selasky <hselasky@freebsd.org> Cc: freebsd-current@freebsd.org, Andrew Thompson <thompsa@freebsd.org> Subject: Re: usb2 moused issue (Microsoft Wireless Optical) Message-ID: <87k57oeryk.fsf@kobe.laptop> In-Reply-To: <200902172040.06348.hselasky@freebsd.org> (Hans Petter Selasky's message of "Tue, 17 Feb 2009 20:40:05 %2B0100") References: <87mycme9wc.fsf@kobe.laptop> <87tz6sdhb1.fsf@kobe.laptop> <87tz6sj2aw.fsf@kobe.laptop> <200902172040.06348.hselasky@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 17 Feb 2009 20:40:05 +0100, Hans Petter Selasky <hselasky@freebsd.org> wrote: > On Tuesday 17 February 2009, Giorgos Keramidas wrote: >> On Tue, 17 Feb 2009 20:55:30 +0200, Giorgos Keramidas <keramida@FreeBSD.org> > wrote: >> > The code of hid_report_size() is similar in old usb and the new usb >> > stack, but I am not sure about all the differences I see. The >> > calculation of `size' is done correctly with old usb code, so I am >> > testing the patch attached below now. It essentially pulls in the >> > hid_report_size() from the old usb code, with the if (h.kind == k) check >> > reversed to remove one spurious indentation level: >> >> No luck with the old usb code for hid_report_size() either. We may be >> looking at the wrong place. I'll build a kernel with a pre-usb2 stack >> and see what ums debugging shows for this mouse. If it used to work >> with size=2 then we might have to look elsewhere for the bug. > > I don't think that will help. Can you try the following. > > XYZ information includes: (64+8-40)/8 = 4 bytes > > Then you need add one PD byte, so size should be 5 bytes. Yep. Before kldloading usb2_quirk.ko this is the X/Y/Z information: kernel: ums_attach:583: X 48/8 kernel: ums_attach:584: Y 56/8 kernel: ums_attach:585: Z 64/8 After kldloading the quirks, I now see: kernel: ugen4.2: <Microsoft> at usbus4 kernel: ums0: <Microsoft Wireless Optical Mouse 3000 (Model 1056), class 0/0, rev 2.00/0.07, addr 2> on usbus4 kernel: ums0: 3 buttons and [XYZ] coordinates kernel: ums_attach:582: sc=0xc662f000 kernel: ums_attach:583: X 16/8 kernel: ums_attach:584: Y 24/8 kernel: ums_attach:585: Z 32/8 kernel: ums_attach:586: T 0/0 kernel: ums_attach:587: W 0/0 kernel: ums_attach:591: B1 8/1 kernel: ums_attach:591: B2 9/1 kernel: ums_attach:591: B3 10/1 kernel: ums_attach:593: size=5, id=0 kernel: Symlink: ums0 -> usb4.2.0.16 and AFAICT the mouse seems to work now. Thanks! :)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87k57oeryk.fsf>