Messages in this thread | | | From | Brad Hards <> | Subject | Re: Logitech Mouseman Dual Optical defaults to 400cpi | Date | Mon, 10 Jun 2002 10:57:20 +1000 |
| |
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.
> > 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/
| |