Index: uspace/lib/usbhost/include/usb/host/utility.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/utility.h	(revision c280d7e51f5b91994557a7515f968b6e9c07544c)
+++ uspace/lib/usbhost/include/usb/host/utility.h	(revision 129b821fb30858c35df3ba6ff80bf8ccc51442de)
@@ -48,5 +48,5 @@
 int hc_get_ep0_max_packet_size(uint16_t *, bus_t *, device_t *);
 void hc_reset_toggles(const usb_transfer_batch_t *batch, endpoint_reset_toggle_t);
-int hc_setup_virtual_root_hub(hc_device_t *);
+int hc_setup_virtual_root_hub(hc_device_t *, usb_speed_t);
 int hc_get_device_desc(device_t *, usb_standard_device_descriptor_t *);
 int hc_get_hub_desc(device_t *, usb_hub_descriptor_header_t *);
Index: uspace/lib/usbhost/src/utility.c
===================================================================
--- uspace/lib/usbhost/src/utility.c	(revision c280d7e51f5b91994557a7515f968b6e9c07544c)
+++ uspace/lib/usbhost/src/utility.c	(revision 129b821fb30858c35df3ba6ff80bf8ccc51442de)
@@ -177,5 +177,5 @@
  * @return Error code
  */
-int hc_setup_virtual_root_hub(hc_device_t *hcd)
+int hc_setup_virtual_root_hub(hc_device_t *hcd, usb_speed_t rh_speed)
 {
 	int err;
@@ -183,5 +183,5 @@
 	assert(hcd);
 
-	device_t *dev = hcd_ddf_fun_create(hcd, USB_SPEED_MAX);
+	device_t *dev = hcd_ddf_fun_create(hcd, rh_speed);
 	if (!dev) {
 		usb_log_error("Failed to create function for the root hub.");
