diff options
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r-- | src/target/firmware/layer1/sched_gsmtime.c | 11 | ||||
-rw-r--r-- | src/target/firmware/layer1/sync.c | 1 |
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(); |