Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Jul 2008 17:53:15 +0400 (MSD)
From:      vvd@quakeworld.ru
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   usb/125264: [patch] sysctl for set usb mouse rate (very useful for gamers - FPS games)
Message-ID:  <200807041353.m64DrFdM030252@gw.unislabs.com>
Resent-Message-ID: <200807041500.m64F0B9F080563@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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 <vvd@quakeworld.ru>
>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 root@vvd.home:/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:



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