icE1usb fw: Update LED status even in E1 FSM is in IDLE state
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I82b867c4886c9f34ff685764424d3db9a8303789
diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c
index 1b6d978..09bc6d2 100644
--- a/firmware/ice40-riscv/icE1usb/e1.c
+++ b/firmware/ice40-riscv/icE1usb/e1.c
@@ -444,10 +444,6 @@
uint32_t bd;
unsigned int ofs;
- /* Active ? */
- if ((e1->rx.state == IDLE) && (e1->tx.state == IDLE))
- return;
-
/* HACK: LED link status */
if (e1_regs->rx.csr & E1_RX_SR_ALIGNED) {
e1_platform_led_set(port, E1P_LED_GREEN, E1P_LED_ST_ON);
@@ -461,6 +457,10 @@
/* TODO: completely off if rx tick counter not incrementing */
}
+ /* Active ? */
+ if ((e1->rx.state == IDLE) && (e1->tx.state == IDLE))
+ return;
+
/* Recover any done TX BD */
while ( (bd = e1_regs->tx.bd) & E1_BD_VALID ) {
e1f_multiframe_read_discard(&e1->tx.fifo);