Index: uspace/lib/usbhost/include/usb/host/hcd.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/hcd.h	(revision 709986181d79d64cbed458a50b00455f6433a17a)
+++ uspace/lib/usbhost/include/usb/host/hcd.h	(revision 933b0d760aedebe826978c54aa34c8620f237fb8)
@@ -53,9 +53,10 @@
 };
 /*----------------------------------------------------------------------------*/
-static inline int hcd_init(hcd_t *hcd, size_t bandwidth)
+static inline int hcd_init(hcd_t *hcd, size_t bandwidth,
+    size_t (*bw_count)(usb_speed_t, usb_transfer_type_t, size_t, size_t))
 {
 	assert(hcd);
 	usb_device_keeper_init(&hcd->dev_manager);
-	return usb_endpoint_manager_init(&hcd->ep_manager, bandwidth);
+	return usb_endpoint_manager_init(&hcd->ep_manager, bandwidth, bw_count);
 }
 /*----------------------------------------------------------------------------*/
Index: uspace/lib/usbhost/include/usb/host/usb_endpoint_manager.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/usb_endpoint_manager.h	(revision 709986181d79d64cbed458a50b00455f6433a17a)
+++ uspace/lib/usbhost/include/usb/host/usb_endpoint_manager.h	(revision 933b0d760aedebe826978c54aa34c8620f237fb8)
@@ -53,4 +53,5 @@
 	fibril_mutex_t guard;
 	size_t free_bw;
+	size_t (*bw_count)(usb_speed_t, usb_transfer_type_t, size_t, size_t);
 } usb_endpoint_manager_t;
 
@@ -59,5 +60,6 @@
 
 int usb_endpoint_manager_init(usb_endpoint_manager_t *instance,
-    size_t available_bandwidth);
+    size_t available_bandwidth,
+    size_t (*bw_count)(usb_speed_t, usb_transfer_type_t, size_t, size_t));
 
 void usb_endpoint_manager_destroy(usb_endpoint_manager_t *instance);
Index: uspace/lib/usbhost/src/usb_endpoint_manager.c
===================================================================
--- uspace/lib/usbhost/src/usb_endpoint_manager.c	(revision 709986181d79d64cbed458a50b00455f6433a17a)
+++ uspace/lib/usbhost/src/usb_endpoint_manager.c	(revision 933b0d760aedebe826978c54aa34c8620f237fb8)
@@ -140,9 +140,11 @@
 /*----------------------------------------------------------------------------*/
 int usb_endpoint_manager_init(usb_endpoint_manager_t *instance,
-    size_t available_bandwidth)
+    size_t available_bandwidth,
+    size_t (*bw_count)(usb_speed_t, usb_transfer_type_t, size_t, size_t))
 {
 	assert(instance);
 	fibril_mutex_initialize(&instance->guard);
 	instance->free_bw = available_bandwidth;
+	instance->bw_count = bw_count;
 	const bool ht =
 	    hash_table_create(&instance->ep_table, BUCKET_COUNT, MAX_KEYS, &op);
@@ -158,8 +160,9 @@
     endpoint_t *ep, size_t data_size)
 {
+	assert(instance);
+	assert(instance->bw_count);
 	assert(ep);
-	const size_t bw = bandwidth_count_usb11(ep->speed, ep->transfer_type,
+	const size_t bw = instance->bw_count(ep->speed, ep->transfer_type,
 	    data_size, ep->max_packet_size);
-	assert(instance);
 
 	fibril_mutex_lock(&instance->guard);
