Index: uspace/lib/usb/include/usb/host/batch.h
===================================================================
--- uspace/lib/usb/include/usb/host/batch.h	(revision 79c8a964862f0ce14d3cec5fc6a0af2ebf9fa793)
+++ uspace/lib/usb/include/usb/host/batch.h	(revision b0beee8234f973c71ea5675425ade580ec0e65a2)
@@ -46,4 +46,5 @@
 	usb_transfer_type_t transfer_type;
 	usb_speed_t speed;
+	usb_direction_t direction;
 	usbhc_iface_transfer_in_callback_t callback_in;
 	usbhc_iface_transfer_out_callback_t callback_out;
Index: uspace/lib/usb/include/usb/host/device_keeper.h
===================================================================
--- uspace/lib/usb/include/usb/host/device_keeper.h	(revision 79c8a964862f0ce14d3cec5fc6a0af2ebf9fa793)
+++ uspace/lib/usb/include/usb/host/device_keeper.h	(revision b0beee8234f973c71ea5675425ade580ec0e65a2)
@@ -44,5 +44,5 @@
 	usb_speed_t speed;
 	bool occupied;
-	uint16_t toggle_status;
+	uint16_t toggle_status[2];
 	devman_handle_t handle;
 };
@@ -63,10 +63,12 @@
 
 void device_keeper_reset_if_need(
-    device_keeper_t *instance, usb_target_t target, const unsigned char *setup_data);
+    device_keeper_t *instance, usb_target_t target,
+    const unsigned char *setup_data);
 
-int device_keeper_get_toggle(device_keeper_t *instance, usb_target_t target);
+int device_keeper_get_toggle(
+    device_keeper_t *instance, usb_target_t target, usb_direction_t direction);
 
-int device_keeper_set_toggle(
-    device_keeper_t *instance, usb_target_t target, bool toggle);
+int device_keeper_set_toggle(device_keeper_t *instance,
+    usb_target_t target, usb_direction_t direction, bool toggle);
 
 usb_address_t device_keeper_request(
