Index: uspace/lib/usbhost/include/usb/host/bandwidth.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/bandwidth.h	(revision 41924f3000a0433bb9a3bac4c10f0768464cc2e7)
+++ uspace/lib/usbhost/include/usb/host/bandwidth.h	(revision 0a5833d7deb1adc704e11ca192de1eb20dfecd6a)
@@ -49,7 +49,9 @@
 #define BANDWIDTH_AVAILABLE_USB20  1
 
-extern size_t bandwidth_count_usb11(usb_speed_t, usb_transfer_type_t, size_t, size_t);
+typedef struct endpoint endpoint_t;
 
-extern size_t bandwidth_count_usb20(usb_speed_t, usb_transfer_type_t, size_t, size_t);
+extern size_t bandwidth_count_usb11(endpoint_t *, size_t);
+
+extern size_t bandwidth_count_usb20(endpoint_t *, size_t);
 
 #endif
Index: uspace/lib/usbhost/include/usb/host/hcd.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/hcd.h	(revision 41924f3000a0433bb9a3bac4c10f0768464cc2e7)
+++ uspace/lib/usbhost/include/usb/host/hcd.h	(revision 0a5833d7deb1adc704e11ca192de1eb20dfecd6a)
@@ -58,8 +58,4 @@
 	/** Transfer scheduling, implement in device driver. */
 	schedule_hook_t schedule;
-	/** Hook called upon registering new endpoint. */
-	ep_add_hook_t ep_add_hook;
-	/** Hook called upon removing of an endpoint. */
-	ep_remove_hook_t ep_remove_hook;
 	/** Hook to be called on device interrupt, passes ARG1 */
 	interrupt_hook_t irq_hook;
Index: uspace/lib/usbhost/include/usb/host/usb2_bus.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/usb2_bus.h	(revision 41924f3000a0433bb9a3bac4c10f0768464cc2e7)
+++ uspace/lib/usbhost/include/usb/host/usb2_bus.h	(revision 0a5833d7deb1adc704e11ca192de1eb20dfecd6a)
@@ -50,5 +50,5 @@
 /** Endpoint management structure */
 typedef struct usb2_bus {
-	bus_t bus;			/**< Inheritance - keep this first */
+	bus_t base;			/**< Inheritance - keep this first */
 
 	/* Device bookkeeping */
Index: uspace/lib/usbhost/src/bandwidth.c
===================================================================
--- uspace/lib/usbhost/src/bandwidth.c	(revision 41924f3000a0433bb9a3bac4c10f0768464cc2e7)
+++ uspace/lib/usbhost/src/bandwidth.c	(revision 0a5833d7deb1adc704e11ca192de1eb20dfecd6a)
@@ -35,4 +35,5 @@
 
 #include <usb/host/bandwidth.h>
+#include <usb/host/endpoint.h>
 
 #include <assert.h>
@@ -46,7 +47,10 @@
  * @param max_packet_size Maximum bytes in one packet.
  */
-size_t bandwidth_count_usb11(usb_speed_t speed, usb_transfer_type_t type,
-    size_t size, size_t max_packet_size)
+size_t bandwidth_count_usb11(endpoint_t *ep, size_t size)
 {
+	assert(ep);
+
+	const usb_transfer_type_t type = ep->transfer_type;
+
 	/* We care about bandwidth only for interrupt and isochronous. */
 	if ((type != USB_TRANSFER_INTERRUPT)
@@ -55,4 +59,6 @@
 	}
 
+	const size_t max_packet_size = ep->max_packet_size;
+
 	const unsigned packet_count =
 	    (size + max_packet_size - 1) / max_packet_size;
@@ -60,5 +66,5 @@
 	 * transaction, but I did not find text in USB spec to confirm this */
 	/* NOTE: All data packets will be considered to be max_packet_size */
-	switch (speed)
+	switch (ep->speed)
 	{
 	case USB_SPEED_LOW:
@@ -94,7 +100,10 @@
  * @param max_packet_size Maximum bytes in one packet.
  */
-size_t bandwidth_count_usb20(usb_speed_t speed, usb_transfer_type_t type,
-    size_t size, size_t max_packet_size)
+size_t bandwidth_count_usb20(endpoint_t *ep, size_t size)
 {
+	assert(ep);
+
+	const usb_transfer_type_t type = ep->transfer_type;
+
 	/* We care about bandwidth only for interrupt and isochronous. */
 	if ((type != USB_TRANSFER_INTERRUPT)
Index: uspace/lib/usbhost/src/usb2_bus.c
===================================================================
--- uspace/lib/usbhost/src/usb2_bus.c	(revision 41924f3000a0433bb9a3bac4c10f0768464cc2e7)
+++ uspace/lib/usbhost/src/usb2_bus.c	(revision 0a5833d7deb1adc704e11ca192de1eb20dfecd6a)
@@ -291,8 +291,8 @@
 	assert(bus);
 
-	bus_init(&bus->bus, hcd);
-
-	bus->bus.ops = usb2_bus_ops;
-	bus->bus.ops.count_bw = count_bw;
+	bus_init(&bus->base, hcd);
+
+	bus->base.ops = usb2_bus_ops;
+	bus->base.ops.count_bw = count_bw;
 
 	bus->free_bw = available_bandwidth;
