Index: uspace/drv/bus/usb/ehci/hw_struct/queue_head.c
===================================================================
--- uspace/drv/bus/usb/ehci/hw_struct/queue_head.c	(revision ff14aede529e82477b19f7e9c2e101612709dd67)
+++ uspace/drv/bus/usb/ehci/hw_struct/queue_head.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
@@ -64,13 +64,13 @@
 		return;
 	}
-	assert(ep->speed < ARRAY_SIZE(speed));
+	assert(ep->device->speed < ARRAY_SIZE(speed));
 	EHCI_MEM32_WR(instance->ep_char,
 	    QH_EP_CHAR_ADDR_SET(ep->device->address) |
 	    QH_EP_CHAR_EP_SET(ep->endpoint) |
-	    speed[ep->speed] |
+	    speed[ep->device->speed] |
 	    QH_EP_CHAR_MAX_LENGTH_SET(ep->max_packet_size)
 	);
 	if (ep->transfer_type == USB_TRANSFER_CONTROL) {
-		if (ep->speed != USB_SPEED_HIGH)
+		if (ep->device->speed != USB_SPEED_HIGH)
 			EHCI_MEM32_SET(instance->ep_char, QH_EP_CHAR_C_FLAG);
 		/* Let BULK and INT use queue head managed toggle,
@@ -80,5 +80,5 @@
 	uint32_t ep_cap = QH_EP_CAP_C_MASK_SET(3 << 2) |
 		    QH_EP_CAP_MULTI_SET(ep->packets);
-	if (ep->speed != USB_SPEED_HIGH) {
+	if (ep->device->speed != USB_SPEED_HIGH) {
 		ep_cap |=
 		    QH_EP_CAP_TT_PORT_SET(ep->device->tt.port) |
Index: uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c
===================================================================
--- uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c	(revision ff14aede529e82477b19f7e9c2e101612709dd67)
+++ uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
@@ -88,5 +88,5 @@
 
 	/* Low speed flag */
-	if (ep->speed == USB_SPEED_LOW)
+	if (ep->device->speed == USB_SPEED_LOW)
 		OHCI_MEM32_SET(instance->status, ED_STATUS_S_FLAG);
 
Index: uspace/drv/bus/usb/uhci/hc.c
===================================================================
--- uspace/drv/bus/usb/uhci/hc.c	(revision ff14aede529e82477b19f7e9c2e101612709dd67)
+++ uspace/drv/bus/usb/uhci/hc.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
@@ -475,5 +475,5 @@
 
 	transfer_list_t *list =
-	    instance->transfers[batch->ep->speed][batch->ep->transfer_type];
+	    instance->transfers[batch->ep->device->speed][batch->ep->transfer_type];
 	assert(list);
 	transfer_list_add_batch(list, uhci_batch);
Index: uspace/drv/bus/usb/uhci/uhci_batch.c
===================================================================
--- uspace/drv/bus/usb/uhci/uhci_batch.c	(revision ff14aede529e82477b19f7e9c2e101612709dd67)
+++ uspace/drv/bus/usb/uhci/uhci_batch.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
@@ -233,5 +233,5 @@
 	const usb_packet_id pid = direction_pids[dir];
 	const bool low_speed =
-	    uhci_batch->base.ep->speed == USB_SPEED_LOW;
+	    uhci_batch->base.ep->device->speed == USB_SPEED_LOW;
 	const size_t mps = uhci_batch->base.ep->max_packet_size;
 
@@ -295,5 +295,5 @@
 	const usb_packet_id status_stage_pid = status_stage_pids[dir];
 	const bool low_speed =
-	    uhci_batch->base.ep->speed == USB_SPEED_LOW;
+	    uhci_batch->base.ep->device->speed == USB_SPEED_LOW;
 	const size_t mps = uhci_batch->base.ep->max_packet_size;
 	const usb_target_t target = uhci_batch->base.target;
Index: uspace/drv/bus/usb/xhci/endpoint.c
===================================================================
--- uspace/drv/bus/usb/xhci/endpoint.c	(revision ff14aede529e82477b19f7e9c2e101612709dd67)
+++ uspace/drv/bus/usb/xhci/endpoint.c	(revision 888238e953d747d7f84f15f4b799d4c161b17177)
@@ -141,5 +141,5 @@
 int xhci_endpoint_request_streams(xhci_hc_t *hc, xhci_device_t *dev, xhci_endpoint_t *xhci_ep, unsigned count) {
 	if (xhci_ep->base.transfer_type != USB_TRANSFER_BULK
-		|| xhci_ep->base.speed != USB_SPEED_SUPER) {
+		|| dev->base.speed != USB_SPEED_SUPER) {
 		usb_log_error("Streams are only supported by superspeed bulk endpoints.");
 		return EINVAL;
