diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c
index 6a87c12..f25e7c1 100644
--- a/firmware/ice40-riscv/icE1usb/e1.c
+++ b/firmware/ice40-riscv/icE1usb/e1.c
@@ -273,8 +273,8 @@
 	memset(e1, 0x00, sizeof(struct e1_state));
 
 	/* Reset FIFOs */
-	e1f_reset(&e1->rx.fifo, (256 * port) +   0, 128);
-	e1f_reset(&e1->tx.fifo, (256 * port) + 128, 128);
+	e1f_reset(&e1->rx.fifo, (512 * port) +   0, 256);
+	e1f_reset(&e1->tx.fifo, (512 * port) + 256, 256);
 
 	/* Enable Rx */
 	e1->rx.cr = E1_RX_CR_ENABLE | rx_cr;
diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c
index 032eec8..08b192b 100644
--- a/firmware/ice40-riscv/icE1usb/usb_e1.c
+++ b/firmware/ice40-riscv/icE1usb/usb_e1.c
@@ -74,30 +74,25 @@
 static void
 _usb_fill_feedback_ep(int port)
 {
-	static uint16_t ticks_prev = 0;
-	uint16_t ticks;
-	uint32_t val = 8192;
-	unsigned int level;
-	volatile struct usb_ep *ep_regs;
+	volatile struct usb_ep *ep_regs = _get_ep_regs(USB_EP_E1_FB(port));
 
-	/* Compute real E1 tick count (with safety against bad values) */
-	ticks = e1_tick_read(port);
-	val = (ticks - ticks_prev) & 0xffff;
-	ticks_prev = ticks;
-	if ((val < 7168) | (val > 9216))
-		val = 8192;
+	/* Always ensure we're ready to send */
+	if ((ep_regs->bd[0].csr & USB_BD_STATE_MSK) != USB_BD_STATE_RDY_DATA)
+	{
+		uint32_t val = 8192;
 
-	/* Bias depending on TX fifo level */
-	level = e1_tx_level(port);
-	if (level < (3 * 16))
-		val += 256;
-	else if (level > (8 * 16))
-		val -= 256;
+		/* Add instant bias depending on TX fifo level */
+		unsigned int level = e1_tx_level(port);
 
-	/* Prepare buffer */
-	ep_regs = _get_ep_regs(USB_EP_E1_FB(port));
-	usb_data_write(ep_regs->bd[0].ptr, &val, 4);
-	ep_regs->bd[0].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(3);
+		if (level < (4 * 16))
+			val += 256;
+		else if (level > (6 * 16))
+			val -= 256;
+
+		/* Fill buffer and submit it */
+		usb_data_write(ep_regs->bd[0].ptr, &val, 4);
+		ep_regs->bd[0].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(3);
+	}
 }
 
 
@@ -212,12 +207,7 @@
 	}
 
 	/* Feedback endpoint */
-	ep_regs = _get_ep_regs(USB_EP_E1_FB(port));
-
-	if ((ep_regs->bd[0].csr & USB_BD_STATE_MSK) != USB_BD_STATE_RDY_DATA)
-	{
-		_usb_fill_feedback_ep(port);
-	}
+	_usb_fill_feedback_ep(port);
 }
 
 static enum usb_fnd_resp
