[Sound-open-firmware] [PATCH] work: enable/disable workq timer following each timer_set/clear()
Keyon Jie
yang.jie at linux.intel.com
Thu Mar 9 14:44:37 CET 2017
We need enable/disable workq timer also after each calling to
set/clear timer, but not only CPU frequency change, so merge
them into work_set/clear_timer().
Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
---
src/lib/work.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lib/work.c b/src/lib/work.c
index 55a6f90..7da6f68 100644
--- a/src/lib/work.c
+++ b/src/lib/work.c
@@ -75,11 +75,13 @@ static struct work_queue *queue_;
static inline void work_set_timer(struct work_queue *queue, uint32_t ticks)
{
queue->ts->timer_set(&queue->ts->timer, ticks);
+ timer_enable(&queue->ts->timer);
}
static inline void work_clear_timer(struct work_queue *queue)
{
queue->ts->timer_clear(&queue->ts->timer);
+ timer_disable(&queue->ts->timer);
}
static inline uint32_t work_get_timer(struct work_queue *queue)
@@ -308,10 +310,8 @@ static void work_notify(int message, void *data, void *event_data)
queue->ticks_per_usec * PLATFORM_WORKQ_WINDOW;
queue_recalc_timers(queue, clk_data);
queue_reschedule(queue);
- timer_enable(&queue->ts->timer);
} else if (message == CLOCK_NOTIFY_PRE) {
/* CPU frequency update pending */
- timer_disable(&queue->ts->timer);
}
spin_unlock_irq(&queue->lock, flags);
--
2.7.4
More information about the Sound-open-firmware
mailing list