Index: uspace/lib/usbhost/include/usb/host/bus.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/bus.h	(revision 4c25c2fb2df98f402ead06e842c2077acddf081e)
+++ uspace/lib/usbhost/include/usb/host/bus.h	(revision 3f44312e5bf1bf8a8d8349900eb281a7310ef0c3)
@@ -140,6 +140,7 @@
 	const bus_ops_t *ops;
 
-	/* Reserving default address - USB_SPEED_MAX when free. */
-	usb_speed_t default_address_speed;
+	/* Reserving default address */
+	device_t *default_address_owner;
+	fibril_condvar_t default_address_cv;
 
 	/* This structure is meant to be extended by overriding. */
@@ -169,6 +170,6 @@
 int bus_endpoint_remove(endpoint_t *);
 
-int bus_reserve_default_address(bus_t *, usb_speed_t);
-void bus_release_default_address(bus_t *);
+int bus_reserve_default_address(bus_t *, device_t *);
+void bus_release_default_address(bus_t *, device_t *);
 
 #endif
Index: uspace/lib/usbhost/include/usb/host/ddf_helpers.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision 4c25c2fb2df98f402ead06e842c2077acddf081e)
+++ uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision 3f44312e5bf1bf8a8d8349900eb281a7310ef0c3)
@@ -48,5 +48,5 @@
 int hcd_setup_virtual_root_hub(hc_device_t *);
 
-device_t *hcd_ddf_fun_create(hc_device_t *);
+device_t *hcd_ddf_fun_create(hc_device_t *, usb_speed_t);
 void hcd_ddf_fun_destroy(device_t *);
 
