[PATCH 2/2] rearm_timer: update run-time and re-activate
Christian Vogel
vogelchr at vogel.cx
Sat Jan 28 21:41:35 CET 2012
Instead of calling schedule_timer() inside the
callback (which causes list-reshuffling) just call
rearm_timer(self,milliseconds) to have it re-execute
after the specified time.
---
src/target/firmware/comm/timer.c | 6 ++++++
src/target/firmware/include/comm/timer.h | 1 +
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/target/firmware/comm/timer.c b/src/target/firmware/comm/timer.c
index 6a649ae..d135e24 100644
--- a/src/target/firmware/comm/timer.c
+++ b/src/target/firmware/comm/timer.c
@@ -63,6 +63,12 @@ void schedule_timer(struct osmo_timer_list *timer, int milliseconds)
add_timer(timer);
}
+void rearm_timer(struct osmo_timer_list *timer, int milliseconds)
+{
+ timer->expires = jiffies + ((milliseconds * TIMER_HZ) / 1000);
+ timer->active = 1;
+}
+
void del_timer(struct osmo_timer_list *timer)
{
if (timer->in_list) {
diff --git a/src/target/firmware/include/comm/timer.h b/src/target/firmware/include/comm/timer.h
index db7d1a5..6ca51b5 100644
--- a/src/target/firmware/include/comm/timer.h
+++ b/src/target/firmware/include/comm/timer.h
@@ -60,6 +60,7 @@ extern unsigned long volatile jiffies;
*/
void add_timer(struct osmo_timer_list *timer);
void schedule_timer(struct osmo_timer_list *timer, int miliseconds);
+void rearm_timer(struct osmo_timer_list *timer, int milliseconds);
void del_timer(struct osmo_timer_list *timer);
int timer_pending(struct osmo_timer_list *timer);
--
1.7.0.4
More information about the baseband-devel
mailing list