Index: uspace/drv/ohci/hc.c
===================================================================
--- uspace/drv/ohci/hc.c	(revision f1be95c8d8aa7901c8ba3471400099d9c1a10b06)
+++ uspace/drv/ohci/hc.c	(revision 4c28d176409a75c11df92e60041565d595505d04)
@@ -132,6 +132,7 @@
 		return rh_request(&instance->rh, batch);
 	}
-	/* TODO: implement */
-	return ENOTSUP;
+	transfer_list_add_batch(
+	    instance->transfers[batch->transfer_type], batch);
+	return EOK;
 }
 /*----------------------------------------------------------------------------*/
@@ -145,4 +146,18 @@
 
 	usb_log_info("OHCI interrupt: %x.\n", status);
+
+	LIST_INITIALIZE(done);
+	transfer_list_remove_finished(&instance->transfers_interrupt, &done);
+	transfer_list_remove_finished(&instance->transfers_isochronous, &done);
+	transfer_list_remove_finished(&instance->transfers_control, &done);
+	transfer_list_remove_finished(&instance->transfers_bulk, &done);
+
+	while (!list_empty(&done)) {
+		link_t *item = done.next;
+		list_remove(item);
+		usb_transfer_batch_t *batch =
+		    list_get_instance(item, usb_transfer_batch_t, link);
+		usb_transfer_batch_finish(batch);
+	}
 
 	/* TODO: Check for further interrupt causes */
Index: uspace/drv/uhci-hcd/hc.c
===================================================================
--- uspace/drv/uhci-hcd/hc.c	(revision f1be95c8d8aa7901c8ba3471400099d9c1a10b06)
+++ uspace/drv/uhci-hcd/hc.c	(revision 4c28d176409a75c11df92e60041565d595505d04)
@@ -240,7 +240,6 @@
 	usb_log_debug("Initialized device manager.\n");
 
-	ret =
-	    usb_endpoint_manager_init(&instance->ep_manager,
-	        BANDWIDTH_AVAILABLE_USB11);
+	ret = usb_endpoint_manager_init(&instance->ep_manager,
+	    BANDWIDTH_AVAILABLE_USB11);
 	assert(ret == EOK);
 
