Index: uspace/drv/usbhid/usbhid.h
===================================================================
--- uspace/drv/usbhid/usbhid.h	(revision d0225002b3721b9a95b472cb786542ddff10ab0a)
+++ uspace/drv/usbhid/usbhid.h	(revision a22004f930b56aab3f839f28d580a261729032cb)
@@ -49,9 +49,36 @@
 typedef struct usb_hid_subdriver usb_hid_subdriver_t;
 
+/** Subdriver initialization callback.
+ *
+ * @param dev Backing USB HID device.
+ * @param data Custom subdriver data (pointer where to store them).
+ * @return Error code.
+ */
 typedef int (*usb_hid_driver_init_t)(usb_hid_dev_t *dev, void **data);
+
+/** Subdriver deinitialization callback.
+ *
+ * @param dev Backing USB HID device.
+ * @param data Custom subdriver data.
+ */
 typedef void (*usb_hid_driver_deinit_t)(usb_hid_dev_t *dev, void *data);
+
+/** Subdriver callback on data from device.
+ *
+ * @param dev Backing USB HID device.
+ * @param data Custom subdriver data.
+ * @return Whether to continue polling (typically true always).
+ */
 typedef bool (*usb_hid_driver_poll_t)(usb_hid_dev_t *dev, void *data);
-typedef int (*usb_hid_driver_poll_ended_t)(usb_hid_dev_t *dev, void *data,
-                                         bool reason);
+
+/** Subdriver callback after communication with the device ceased.
+ *
+ * @param dev Backing USB HID device.
+ * @param data Custom subdriver data.
+ * @param ended_due_to_errors Whether communication ended due to errors in
+ *	communication (true) or deliberately by driver (false).
+ */
+typedef void (*usb_hid_driver_poll_ended_t)(usb_hid_dev_t *dev, void *data,
+    bool ended_due_to_errors);
 
 struct usb_hid_subdriver {
