>Number:         125264
>Category:       usb
>Synopsis:       [patch] sysctl for set usb mouse rate (very useful for gamers 
>- FPS games)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 04 15:00:09 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     VVD <[EMAIL PROTECTED]>
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
no
>Environment:
System: FreeBSD vvd.home 7.0-STABLE FreeBSD 7.0-STABLE #0: Tue Jul 1 04:39:52 
MSD 2008 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/VVD2 i386
Platform independent patch.
Tested on: i386, motherboard ASUS P4P8X, mice Logitech MX300 and Logitech G5, 
game ezQuake 1.9.

>Description:
Add "options UMS_HZ=<INT_VALUE>" in kernel config.
USB mouse rate: value from 1 to 1000, other values set default rate - mouse 
specific.
Most mice suport till 250Hz and 500Hz. Greater value - smoother movements.
Some of "professional gaming" mice support 1000Hz and have default rate 500Hz.
User can to change this value using sysctl hw.usb.ums.hz.
For applying it user must take out mouse and insert it back.

>How-To-Repeat:
Use usb mouse. :-D

>Fix:

--- ums_hz.diff begins here ---
--- sys/conf/options.orig       2008-07-01 04:22:39.000000000 +0400
+++ sys/conf/options    2008-07-01 04:22:45.000000000 +0400
@@ -621,6 +621,7 @@
 UPLCOM_INTR_INTERVAL   opt_uplcom.h
 UVSCOM_DEFAULT_OPKTSIZE        opt_uvscom.h
 UVSCOM_INTR_INTERVAL   opt_uvscom.h
+UMS_HZ                 opt_ums.h
 
 # Embedded system options
 INIT_PATH
--- sys/dev/usb/ums.c.orig      2008-06-16 19:51:35.000000000 +0400
+++ sys/dev/usb/ums.c   2008-07-01 04:23:41.000000000 +0400
@@ -69,6 +69,13 @@
 
 #include <sys/mouse.h>
 
+#include "opt_ums.h"
+#ifdef UMS_HZ
+static int ums_hz = UMS_HZ;
+SYSCTL_NODE(_hw_usb, OID_AUTO, ums, CTLFLAG_RW, 0, "USB ums");
+SYSCTL_INT(_hw_usb_ums, OID_AUTO, hz, CTLFLAG_RW, &ums_hz, 0, "");
+#endif
+
 #ifdef USB_DEBUG
 #define DPRINTF(x)     if (umsdebug) printf x
 #define DPRINTFN(n,x)  if (umsdebug>(n)) printf x
@@ -700,7 +707,12 @@
        err = usbd_open_pipe_intr(sc->sc_iface, sc->sc_ep_addr,
                                USBD_SHORT_XFER_OK, &sc->sc_intrpipe, sc,
                                sc->sc_ibuf, sc->sc_isize, ums_intr,
-                               USBD_DEFAULT_INTERVAL);
+#ifdef UMS_HZ
+                               (ums_hz > 0 && ums_hz <= 1000) ? 1000 / ums_hz 
: USBD_DEFAULT_INTERVAL
+#else
+                               USBD_DEFAULT_INTERVAL
+#endif
+                               );
        if (err) {
                DPRINTF(("ums_enable: usbd_open_pipe_intr failed, error=%d\n",
                         err));
--- sys/conf/NOTES.orig 2008-07-02 01:00:01.000000000 +0400
+++ sys/conf/NOTES      2008-07-02 01:06:12.000000000 +0400
@@ -2431,6 +2431,12 @@
 device         umodem
 # USB mouse
 device         ums
+# USB mouse rate (1 to 1000, other values set default rate - mouse specific).
+# Most mice suport till 250Hz and 500Hz. Greater value - smoother movements.
+# Some of "professional gaming" mice support 1000Hz and have default rate 
500Hz.
+# You can to change this value using sysctl hw.usb.ums.hz.
+# For applying it you must take out mouse and insert it back.
+options                UMS_HZ=-1
 # Diamond Rio 500 MP3 player
 device         urio
 # USB scanners
>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to