lkml.org 
[lkml]   [2005]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] hid-core: Configurable USB HID Mouse Interrupt Polling Interval
On Sun, Dec 19, 2004 at 01:52:06AM +0000, Mikkel Krautz wrote:
> On Sat, 18 Dec 2004 08:53:31 -0800, Greg KH <greg@kroah.com> wrote:
> > On Sat, Dec 18, 2004 at 05:39:25PM +0000, Mikkel Krautz wrote:
> > > On Fri, 17 Dec 2004 18:59:48 -0800, Greg KH <greg@kroah.com> wrote:
> > > > What about makeing it a module paramater then, that is exported to
> > > > sysfs? That makes it easier to adjust on the fly (before the mouse is
> > > > inserted), and doesn't require the kernel to be rebuilt.
> > >
> > > I really like the idea. I'm start to think that this is the ideal way to
> > > accomplish this.
> > >
> > > Here's a new patch. Let's hope it doesn't wrap!
> >
> > It was eaten :(
> >
> > > module_init(hid_init);
> > > module_exit(hid_exit);
> > > +module_param(hid_mouse_polling_interval, int, 644);
> >
> > 0644, or use the proper #defines instead.
> >
> > thanks,
> >
> > greg k-h
> >
>
> Here's an updated version, with your and Marcel's suggestions:

Some more suggestions:

A MODULE_PARM_DESC() would be good, as well as a patch to
kernel-parameters.txt.

Also, it'd be better instead of changing the bInterval in the endpoint
descriptor to change the "interval" variable. This way one wouldn't need
to think about whether the device is Full-speed or High-speed when
setting the parameter. Also the endpoint descriptor should be considered
read only.

> Signed-off-by: Mikkel Krautz <krautz@gmail.com>
> ---
>
>
> hid-core.c | 9 ++++++++-
> 1 files changed, 8 insertions(+), 1 deletion(-)
>
>
> --- clean/drivers/usb/input/hid-core.c
> +++ dirty/drviers/usb/input/hid-core.c
> @@ -37,11 +37,12 @@
> * Version Information
> */
>
> -#define DRIVER_VERSION "v2.0"
> +#define DRIVER_VERSION "v2.01"
> #define DRIVER_AUTHOR "Andreas Gal, Vojtech Pavlik"
> #define DRIVER_DESC "USB HID core driver"
> #define DRIVER_LICENSE "GPL"
>
> +static unsigned int hid_mousepoll_interval;
> static char *hid_types[] = {"Device", "Pointer", "Mouse", "Device", "Joystick",
> "Gamepad", "Keyboard", "Keypad", "Multi-Axis Controller"};
>
> @@ -1663,6 +1664,11 @@
> if ((endpoint->bmAttributes & 3) != 3) /* Not an interrupt endpoint */
> continue;
>
> + /* Change the polling interval of mice. */
> + if (hid->collection->usage == HID_GD_MOUSE
> + && hid_mousepoll_interval > 0)
> + endpoint->bInterval = hid_mousepoll_interval;
> +
> /* handle potential highspeed HID correctly */
> interval = endpoint->bInterval;
> if (dev->speed == USB_SPEED_HIGH)
> @@ -1910,6 +1916,7 @@
>
> module_init(hid_init);
> module_exit(hid_exit);
> +module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
>
> MODULE_AUTHOR(DRIVER_AUTHOR);
> MODULE_DESCRIPTION(DRIVER_DESC);
>

--
Vojtech Pavlik
SuSE Labs, SuSE CR
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:10    [W:0.046 / U:0.316 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site