Index: uspace/drv/uhci-hcd/iface.c
===================================================================
--- uspace/drv/uhci-hcd/iface.c	(revision e2172cf8f7c6235b346cb378aefe924ec3f7c189)
+++ uspace/drv/uhci-hcd/iface.c	(revision 9e809049359908fb13cd4bb5e3a515e55043a2d1)
@@ -128,9 +128,10 @@
     usbhc_iface_transfer_out_callback_t callback, void *arg)
 {
-	assert(dev);
-	uhci_t *hc = dev_to_uhci(dev);
-	assert(hc);
-	return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_SETUP,
-		false, data, size, callback, NULL, arg);
+	tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL,
+	    8, FULL_SPEED, data, size, NULL, callback, arg);
+	if (!tracker)
+		return ENOMEM;
+	tracker_control_setup_old(tracker);
+	return EOK;
 }
 /*----------------------------------------------------------------------------*/
@@ -139,9 +140,10 @@
     usbhc_iface_transfer_out_callback_t callback, void *arg)
 {
-	assert(dev);
-	uhci_t *hc = dev_to_uhci(dev);
-	assert(hc);
-	return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 1, USB_PID_OUT,
-		false, data, size, callback, NULL, arg);
+	tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL,
+	    size, FULL_SPEED, data, size, NULL, callback, arg);
+	if (!tracker)
+		return ENOMEM;
+	tracker_control_write_data_old(tracker);
+	return EOK;
 }
 /*----------------------------------------------------------------------------*/
@@ -149,9 +151,10 @@
     usbhc_iface_transfer_in_callback_t callback, void *arg)
 {
-	assert(dev);
-	uhci_t *hc = dev_to_uhci(dev);
-	assert(hc);
-	return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_IN,
-		false, NULL, 0, NULL, callback, arg);
+	tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL,
+	    0, FULL_SPEED, NULL, 0, callback, NULL, arg);
+	if (!tracker)
+		return ENOMEM;
+	tracker_control_write_status_old(tracker);
+	return EOK;
 }
 /*----------------------------------------------------------------------------*/
@@ -160,9 +163,10 @@
     usbhc_iface_transfer_out_callback_t callback, void *arg)
 {
-	assert(dev);
-	uhci_t *hc = dev_to_uhci(dev);
-	assert(hc);
-	return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_SETUP,
-		false, data, size, callback, NULL, arg);
+	tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL,
+	    8, FULL_SPEED, data, size, NULL, callback, arg);
+	if (!tracker)
+		return ENOMEM;
+	tracker_control_setup_old(tracker);
+	return EOK;
 }
 /*----------------------------------------------------------------------------*/
@@ -171,9 +175,10 @@
     usbhc_iface_transfer_in_callback_t callback, void *arg)
 {
-	assert(dev);
-	uhci_t *hc = dev_to_uhci(dev);
-	assert(hc);
-	return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 1, USB_PID_IN,
-		false, data, size, NULL, callback, arg);
+	tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL,
+	    size, FULL_SPEED, data, size, callback, NULL, arg);
+	if (!tracker)
+		return ENOMEM;
+	tracker_control_read_data_old(tracker);
+	return EOK;
 }
 /*----------------------------------------------------------------------------*/
@@ -181,12 +186,12 @@
     usbhc_iface_transfer_out_callback_t callback, void *arg)
 {
-	assert(dev);
-	uhci_t *hc = dev_to_uhci(dev);
-	assert(hc);
-	return uhci_transfer(hc, dev, target, USB_TRANSFER_CONTROL, 0, USB_PID_OUT,
-		false, NULL, 0, callback, NULL, arg);
-}
-
-
+	tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_CONTROL,
+	    0, FULL_SPEED, NULL, 0, NULL, callback, arg);
+	if (!tracker)
+		return ENOMEM;
+	tracker_control_read_status_old(tracker);
+	return EOK;
+}
+/*----------------------------------------------------------------------------*/
 usbhc_iface_t uhci_iface = {
 	.tell_address = get_address,
