tnt has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/26902 )
Change subject: icE1usb fw: Have usb_e1 handle the E1 polling and multi port ......................................................................
icE1usb fw: Have usb_e1 handle the E1 polling and multi port
The init already takes care of both port and also calling e1_init, so it makes sense to have a usb_e1_poll() that encapsulate both the actual e1 hardware poll and running the usb stuff for both port.
Signed-off-by: Sylvain Munaut tnt@246tNt.com Change-Id: Icf81efcdc5c8f13480ba2652bc6e7c1ca226ae4d --- M firmware/ice40-riscv/icE1usb/fw_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c M firmware/ice40-riscv/icE1usb/usb_e1.h 3 files changed, 14 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/02/26902/1
diff --git a/firmware/ice40-riscv/icE1usb/fw_app.c b/firmware/ice40-riscv/icE1usb/fw_app.c index 5e9812c..3fbec7c 100644 --- a/firmware/ice40-riscv/icE1usb/fw_app.c +++ b/firmware/ice40-riscv/icE1usb/fw_app.c @@ -158,9 +158,6 @@ usb_poll();
/* E1 poll */ - for (int port=0; port<2; port++) { - e1_poll(port); - usb_e1_run(port); - } + usb_e1_poll(); } } diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 96ca72a..5d32924 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -96,8 +96,8 @@ }
-void -usb_e1_run(int port) +static void +_usb_e1_run(int port) { struct usb_e1_state *usb_e1 = _get_state(port); volatile struct usb_ep *ep_regs; @@ -210,6 +210,16 @@ _usb_fill_feedback_ep(port); }
+void +usb_e1_poll(void) +{ + for (int i=0; i<2; i++) { + e1_poll(i); + _usb_e1_run(i); + } +} + + static enum usb_fnd_resp _e1_set_conf(const struct usb_conf_desc *conf) { diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.h b/firmware/ice40-riscv/icE1usb/usb_e1.h index 06723ea..65ebb61 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.h +++ b/firmware/ice40-riscv/icE1usb/usb_e1.h @@ -7,5 +7,5 @@
#pragma once
-void usb_e1_run(int port); +void usb_e1_poll(void); void usb_e1_init(void);