Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Mar 2006 10:04:06 +0100
From:      Nenad Kljajic <nenad.k@yubc.net>
To:        freebsd-current@www.freebsd.org, freebsd-usb@freebsd.org
Subject:   Logitech USB Receiver mouse workaround patch
Message-ID:  <440BFB06.3060103@yubc.net>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------020101070204080206010109
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

There is some problem with hid_report_size() function
and Logitech USB receiver in /usr/src/sys/dev/usb/ums.c.
The returned value is 14 but it should be 8.
This results in subsamling mouse data and jerky cursor movement.

I have tested this workaround patch for
Logitech® Cordless Desktop® MX™ 3100
and it works fine now.


Nenad

--------------020101070204080206010109
Content-Type: text/x-patch;
 name="ums.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ums.diff"

*** ums.c.1.80	2006-03-06 09:41:19.000000000 +0100
--- ums.c.1.81	2006-03-06 09:47:27.000000000 +0100
***************
*** 313,318 ****
--- 313,325 ----
  				hid_input, &sc->sc_loc_btn[i-1], 0);
  
  	sc->sc_isize = hid_report_size(desc, size, hid_input, &sc->sc_iid);
+ #define LOGITECH_STRING "Logitech USB Receiver"
+ #define LOGITECH_STRLEN 21
+ #define LOGITECH_SC_ISIZE 8
+         if(!strncmp(devinfo,LOGITECH_STRING, LOGITECH_STRLEN)){
+         printf("%s: Logitech USB Receiver workaround\n", USBDEVNAME(sc->sc_dev));
+         sc->sc_isize=LOGITECH_SC_ISIZE; /* Logitech Wireless USB Receiver reports 14, it should be 8! */
+         }
  	sc->sc_ibuf = malloc(sc->sc_isize, M_USB, M_NOWAIT);
  	if (!sc->sc_ibuf) {
  		printf("%s: no memory\n", USBDEVNAME(sc->sc_dev));

--------------020101070204080206010109--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?440BFB06.3060103>