Re: Logitech Mouseman Dual Optical defaults to 400cpi

Vojtech Pavlik
2002-06-10T21:26:54Z

On Mon, Jun 10, 2002 at 10:57:20AM +1000, Brad Hards wrote:
> On Mon, 10 Jun 2002 01:19, Chris Faherty wrote:
> > On Sunday 09 June 2002 04:07 am, Brad Hards wrote:
> > > Was that using Snoopy?
> >
> > I believe that's what it was called. The program was sniffusb 0.13. I had
> > problems get later versions to work. Then I found a nice treatise on
> > interpreting the log:
> >
> > http://www.toth.demon.co.uk/usb/reverse-0.2.txt
> I'll have to check it out. There are a number of resources (including a nice
> Perl script that gets rid of much of the verbosity).
> Later versions may be W2K, rather than for 98:
> http://sourceforge.net/projects/usbsnoop/
>
> > > Any objections to me taking this to 2.4 and 2.5?
> >
> > Feel free. I wonder if MS Intellimouse 3.0 has the same resolution
> > problem. AFAIK they use the same sensor.
> Probably not, because only low end manufacturers use reference designs
> directly. I have an intellimouse around here somewhere. Don't know anything
> about it, because it wouldn't have occurred to me to read the manual or
> install the windows drivers. Might have to check it out.

Intellimouse 1.0 uses Agilent HDNS-2000, 2.0 uses ADNS-2001, and 3.0
uses a chip made by SGS Thompson, under a secret contract with Microsoft
that has only 400 dpi, but up to one meter per second maximal tracking
speed.

> > > This could have been handled by a blacklist table quirk. Any reason why
> > > you chose to do it this way?
> >
> > How does the blacklist work? Originally I wanted to put the setting in
> > mousedev but I wasn't sure how to access the usb_device from there.
> Basically we declare a quirk (in drivers/usb/hid.h)
> #define HID_QUIRK_LOGITECH_HIRES
>
> and then associate the manufacturer and product IDs for the device with the
> quirk in hid-core.c (in hid_blacklist[])
> { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DOPTICAL,
> HID_QUIRK_LOGITECH_HIRES },
>
> And then use (hid->quirk & HID_QUIRK_LOGITECH_HIRES) as the test instead of
> ((hid->dev->descriptor.idVendor == USB_VENDOR_ID_LOGITECH) &&
> (hid->dev->descriptor.idProduct == USB_DEVICE_ID_LOGITECH_DOPTICAL)) in the
> routine you actually want to vary.
>
> The advantage is really apparent when Logitech brings out another device with
> different product ID (eg a different colour plastic) that has the same
> firmware and needs the same change. Much easier to add to the (now badly
> misnamed) blacklist than to add more and more conditions to the if().
>
> I'll try for a patch later, that might make this a bit clearer.
>
> Brad
>
>
> --
> http://conf.linux.org.au. 22-25Jan2003. Perth, Australia. Birds in Black.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Vojtech Pavlik
SuSE Labs