summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r--src/target/firmware/layer1/sched_gsmtime.c11
-rw-r--r--src/target/firmware/layer1/sync.c1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/target/firmware/layer1/sched_gsmtime.c b/src/target/firmware/layer1/sched_gsmtime.c
index b4e970e0..6a549e2d 100644
--- a/src/target/firmware/layer1/sched_gsmtime.c
+++ b/src/target/firmware/layer1/sched_gsmtime.c
@@ -106,3 +106,14 @@ void sched_gsmtime_init(void)
for (i = 0; i < ARRAY_SIZE(sched_gsmtime_events); i++)
llist_add(&sched_gsmtime_events[i].list, &inactive_evts);
}
+
+void sched_gsmtime_reset(void)
+{
+ struct sched_gsmtime_event *evt, *evt2;
+
+ llist_for_each_entry_safe(evt, evt2, &active_evts, list) {
+ llist_del(&evt->list);
+ /* put event back in list of inactive (free) events */
+ llist_add(&evt->list, &inactive_evts);
+ }
+}
diff --git a/src/target/firmware/layer1/sync.c b/src/target/firmware/layer1/sync.c
index bb7c6b70..9ecb5812 100644
--- a/src/target/firmware/layer1/sync.c
+++ b/src/target/firmware/layer1/sync.c
@@ -338,6 +338,7 @@ void l1s_reset(void)
l1s.fb.mode = 0;
/* reset scheduler and hardware */
+ sched_gsmtime_reset();
mframe_reset();
tdma_sched_reset();
l1s_dsp_abort();