module_param_named(jspoll, hid_jspoll_interval, uint, 0644);
 MODULE_PARM_DESC(jspoll, "Polling interval of joysticks");
 
+static unsigned int hid_kbpoll_interval;
+module_param_named(kbpoll, hid_kbpoll_interval, uint, 0644);
+MODULE_PARM_DESC(kbpoll, "Polling interval of keyboards");
+
 static unsigned int ignoreled;
 module_param_named(ignoreled, ignoreled, uint, 0644);
 MODULE_PARM_DESC(ignoreled, "Autosuspend with active leds");
                                hid->name, endpoint->bInterval, interval);
                }
 
-               /* Change the polling interval of mice and joysticks. */
+               /* Change the polling interval of mice, joysticks
+                * and keyboards.
+                */
                switch (hid->collection->usage) {
                case HID_GD_MOUSE:
                        if (hid_mousepoll_interval > 0)
                        if (hid_jspoll_interval > 0)
                                interval = hid_jspoll_interval;
                        break;
+               case HID_GD_KEYBOARD:
+                       if (hid_kbpoll_interval > 0)
+                               interval = hid_kbpoll_interval;
+                       break;
                }
 
                ret = -ENOMEM;