Index: uspace/lib/drv/generic/remote_usbhc.c
===================================================================
--- uspace/lib/drv/generic/remote_usbhc.c	(revision daec5e040866d98092cd5eb8a58caf8a53168566)
+++ uspace/lib/drv/generic/remote_usbhc.c	(revision 735eac35d8b6d981f1176e2406bdb4b970e324f3)
@@ -163,6 +163,8 @@
 		return;
 	}
-
-	int rc = usb_iface->reserve_default_address(device);
+	
+	bool full_speed = DEV_IPC_GET_ARG1(*call);
+	
+	int rc = usb_iface->reserve_default_address(device, full_speed);
 
 	async_answer_0(callid, rc);
@@ -193,7 +195,9 @@
 		return;
 	}
+	
+	bool full_speed = DEV_IPC_GET_ARG1(*call);
 
 	usb_address_t address;
-	int rc = usb_iface->request_address(device, &address);
+	int rc = usb_iface->request_address(device, full_speed, &address);
 	if (rc != EOK) {
 		async_answer_0(callid, rc);
Index: uspace/lib/drv/include/usbhc_iface.h
===================================================================
--- uspace/lib/drv/include/usbhc_iface.h	(revision daec5e040866d98092cd5eb8a58caf8a53168566)
+++ uspace/lib/drv/include/usbhc_iface.h	(revision 735eac35d8b6d981f1176e2406bdb4b970e324f3)
@@ -40,4 +40,5 @@
 #include "driver.h"
 #include <usb/usb.h>
+#include <bool.h>
 
 
@@ -231,7 +232,7 @@
 	int (*tell_address)(device_t *, devman_handle_t, usb_address_t *);
 
-	int (*reserve_default_address)(device_t *);
+	int (*reserve_default_address)(device_t *, bool);
 	int (*release_default_address)(device_t *);
-	int (*request_address)(device_t *, usb_address_t *);
+	int (*request_address)(device_t *, bool, usb_address_t *);
 	int (*bind_address)(device_t *, usb_address_t, devman_handle_t);
 	int (*release_address)(device_t *, usb_address_t);
