summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/target/firmware/layer1/sync.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/target/firmware/layer1/sync.c b/src/target/firmware/layer1/sync.c
index d6921ecb..8ad6d96b 100644
--- a/src/target/firmware/layer1/sync.c
+++ b/src/target/firmware/layer1/sync.c
@@ -45,6 +45,7 @@
#include <layer1/agc.h>
#include <layer1/tdma_sched.h>
#include <layer1/mframe_sched.h>
+#include <layer1/sched_gsmtime.h>
#include <layer1/tpu_window.h>
#include <layer1/l23_api.h>
@@ -391,6 +392,8 @@ static void l1_sync(void)
/* schedule new / upcoming TDMA items */
mframe_schedule(l1s.mf_tasks);
+ /* schedule new / upcoming one-shot events */
+ sched_gsmtime_execute(l1s.current_time.fn);
tdma_sched_advance();
}
@@ -596,6 +599,8 @@ static uint8_t sb_cnt;
* actually happened, as it is a "C W W R" task */
#define SB2_LATENCY 2
+extern const struct tdma_sched_item rach_sched_set_ul[];
+
static int l1s_sbdet_resp(uint16_t p1, uint16_t attempt)
{
uint32_t sb;
@@ -1078,6 +1083,8 @@ void l1s_init(void)
for (i = 0; i < ARRAY_SIZE(l1s.tx_queue); i++)
INIT_LLIST_HEAD(&l1s.tx_queue[i]);
+ sched_gsmtime_init();
+
/* register FRAME interrupt as FIQ so it can interrupt normal IRQs */
irq_register_handler(IRQ_TPU_FRAME, &frame_irq);
irq_config(IRQ_TPU_FRAME, 1, 1, 0);