Index: uspace/drv/bus/usb/xhci/hc.c
===================================================================
--- uspace/drv/bus/usb/xhci/hc.c	(revision 955e988184f35371ca5972be335fa318b9989b03)
+++ uspace/drv/bus/usb/xhci/hc.c	(revision 12fba858e2cc980700a8f16e4a0199684dc81c9a)
@@ -320,8 +320,9 @@
 
 	uint64_t erstptr = addr_to_phys(hc->event_ring.erst);
+	uint64_t erdp = hc->event_ring.dequeue_ptr;
 	xhci_interrupter_regs_t *intr0 = &hc->rt_regs->ir[0];
 	XHCI_REG_WR(intr0, XHCI_INTR_ERSTSZ, hc->event_ring.segment_count);
-	XHCI_REG_WR(intr0, XHCI_INTR_ERDP_LO, LOWER32(erstptr));
-	XHCI_REG_WR(intr0, XHCI_INTR_ERDP_HI, UPPER32(erstptr));
+	XHCI_REG_WR(intr0, XHCI_INTR_ERDP_LO, LOWER32(erdp));
+	XHCI_REG_WR(intr0, XHCI_INTR_ERDP_HI, UPPER32(erdp));
 	XHCI_REG_WR(intr0, XHCI_INTR_ERSTBA_LO, LOWER32(erstptr));
 	XHCI_REG_WR(intr0, XHCI_INTR_ERSTBA_HI, UPPER32(erstptr));
@@ -397,7 +398,7 @@
 
 	/* Update the ERDP to make room in the ring */
-	uint64_t erstptr = addr_to_phys(hc->event_ring.erst);
-	XHCI_REG_WR(intr, XHCI_INTR_ERDP_LO, LOWER32(erstptr));
-	XHCI_REG_WR(intr, XHCI_INTR_ERDP_HI, UPPER32(erstptr));
+	uint64_t erdp = hc->event_ring.dequeue_ptr;
+	XHCI_REG_WR(intr, XHCI_INTR_ERDP_LO, LOWER32(erdp));
+	XHCI_REG_WR(intr, XHCI_INTR_ERDP_HI, UPPER32(erdp));
 }
 
