Index: uspace/drv/bus/usb/xhci/hw_struct/trb.h
===================================================================
--- uspace/drv/bus/usb/xhci/hw_struct/trb.h	(revision 928afc8de2b22b210e512572c743aa7975fac188)
+++ uspace/drv/bus/usb/xhci/hw_struct/trb.h	(revision 5bc825040f32e2d34fc1a60dd0dbe3965ffda3d9)
@@ -105,4 +105,9 @@
 #define TRB_COMPLETION_CODE(trb)	XHCI_DWORD_EXTRACT((trb).status, 31, 24)
 
+#define TRB_LINK_SET_TC(trb, val) \
+	xhci_dword_set_bits(&(trb).control, val, 1, 1)
+#define TRB_SET_CYCLE(trb, val) \
+	xhci_dword_set_bits(&(trb).control, val, 0, 0)
+
 #define TRB_CTRL_SET_SETUP_WLENGTH(trb, val) \
 	xhci_qword_set_bits(&(trb).parameter, val, 63, 48)
@@ -153,9 +158,4 @@
 	    || type == XHCI_TRB_TYPE_STATUS_STAGE
 	    || type == XHCI_TRB_TYPE_ISOCH);
-}
-
-static inline void xhci_trb_set_cycle(xhci_trb_t *trb, bool cycle)
-{
-	xhci_dword_set_bits(&trb->control, cycle, 0, 0);
 }
 
Index: uspace/drv/bus/usb/xhci/trb_ring.c
===================================================================
--- uspace/drv/bus/usb/xhci/trb_ring.c	(revision 928afc8de2b22b210e512572c743aa7975fac188)
+++ uspace/drv/bus/usb/xhci/trb_ring.c	(revision 5bc825040f32e2d34fc1a60dd0dbe3965ffda3d9)
@@ -107,5 +107,5 @@
 	xhci_trb_t *last = segment_end(segment) - 1;
 	xhci_trb_link_fill(last, segment->phys);
-	xhci_trb_set_cycle(last, true);
+	TRB_LINK_SET_TC(*last, true);
 
 	ring->enqueue_segment = segment;
@@ -219,5 +219,5 @@
 	trb = first_trb;
 	for (size_t i = 0; i < trbs; ++i, ++trb) {
-		xhci_trb_set_cycle(trb, ring->pcs);
+		TRB_SET_CYCLE(*trb, ring->pcs);
 		xhci_trb_copy(ring->enqueue_trb, trb);
 
@@ -226,6 +226,5 @@
 
 		if (TRB_TYPE(*ring->enqueue_trb) == XHCI_TRB_TYPE_LINK) {
-			// XXX: Check, whether the order here is correct (ambiguous instructions in 4.11.5.1)
-			xhci_trb_set_cycle(ring->enqueue_trb, ring->pcs);
+			TRB_SET_CYCLE(*ring->enqueue_trb, ring->pcs);
 
 			if (TRB_LINK_TC(*ring->enqueue_trb)) {
