Index: uspace/lib/usb/include/usb/request.h
===================================================================
--- uspace/lib/usb/include/usb/request.h	(revision 95c675b4aa3fea7b424b73892a90b052c673cfd3)
+++ uspace/lib/usb/include/usb/request.h	(revision 89cefe78104a9899cd4c4c6cf51bd28046178d7c)
@@ -109,5 +109,12 @@
 int assert[(sizeof(usb_device_request_setup_packet_t) == 8) ? 1: -1];
 
-int usb_request_needs_toggle_reset(
+/** How much toggles needs to be reset */
+typedef enum {
+	RESET_NONE,
+	RESET_EP,
+	RESET_ALL
+} toggle_reset_mode_t;
+
+toggle_reset_mode_t usb_request_get_toggle_reset_mode(
     const usb_device_request_setup_packet_t *request);
 
Index: uspace/lib/usb/src/usb.c
===================================================================
--- uspace/lib/usb/src/usb.c	(revision 95c675b4aa3fea7b424b73892a90b052c673cfd3)
+++ uspace/lib/usb/src/usb.c	(revision 89cefe78104a9899cd4c4c6cf51bd28046178d7c)
@@ -128,5 +128,5 @@
  *
  */
-int usb_request_needs_toggle_reset(
+toggle_reset_mode_t usb_request_get_toggle_reset_mode(
     const usb_device_request_setup_packet_t *request)
 {
@@ -139,5 +139,5 @@
 		if ((request->request_type == 0x2) &&
 		    (request->value == USB_FEATURE_ENDPOINT_HALT))
-			return uint16_usb2host(request->index);
+			return RESET_EP;
 		break;
 	case USB_DEVREQ_SET_CONFIGURATION:
@@ -149,10 +149,11 @@
 		 * interface of an already setup device. */
 		if (!(request->request_type & SETUP_REQUEST_TYPE_DEVICE_TO_HOST))
-			return 0;
+			return RESET_ALL;
 		break;
 	default:
 		break;
 	}
-	return -1;
+
+	return RESET_NONE;
 }
 
