mirror of https://github.com/thesofproject/sof.git
zephyr: move timer domain away from a legacy API
The delayed work API is deprecated, convert to use the replacement delayable work API. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
parent
f2f75740f5
commit
f8172a9b87
|
@ -68,7 +68,7 @@ struct timer_domain {
|
|||
|
||||
#ifdef __ZEPHYR__
|
||||
struct timer_zdata {
|
||||
struct k_delayed_work work;
|
||||
struct k_work_delayable work;
|
||||
void (*handler)(void *arg);
|
||||
void *arg;
|
||||
};
|
||||
|
@ -103,7 +103,8 @@ static inline void timer_report_delay(int id, uint64_t delay)
|
|||
#ifdef __ZEPHYR__
|
||||
static void timer_z_handler(struct k_work *work)
|
||||
{
|
||||
struct timer_zdata *zd = CONTAINER_OF(work, struct timer_zdata, work);
|
||||
struct k_work_delayable *dwork = k_work_delayable_from_work(work);
|
||||
struct timer_zdata *zd = CONTAINER_OF(dwork, struct timer_zdata, work);
|
||||
|
||||
zd->handler(zd->arg);
|
||||
}
|
||||
|
@ -160,8 +161,8 @@ static int timer_domain_register(struct ll_schedule_domain *domain,
|
|||
|
||||
zdata[core].handler = handler;
|
||||
zdata[core].arg = arg;
|
||||
k_work_q_start(&timer_domain->ll_workq[core], stack,
|
||||
ZEPHYR_LL_WORKQ_SIZE, -CONFIG_NUM_COOP_PRIORITIES);
|
||||
k_work_queue_start(&timer_domain->ll_workq[core], stack,
|
||||
ZEPHYR_LL_WORKQ_SIZE, -CONFIG_NUM_COOP_PRIORITIES, NULL);
|
||||
|
||||
thread = &timer_domain->ll_workq[core].thread;
|
||||
|
||||
|
@ -175,7 +176,7 @@ static int timer_domain_register(struct ll_schedule_domain *domain,
|
|||
|
||||
timer_domain->ll_workq_registered[core] = 1;
|
||||
|
||||
k_delayed_work_init(&zdata[core].work, timer_z_handler);
|
||||
k_work_init_delayable(&zdata[core].work, timer_z_handler);
|
||||
|
||||
#else
|
||||
/* tasks already registered on this core */
|
||||
|
@ -280,15 +281,15 @@ static void timer_domain_set(struct ll_schedule_domain *domain, uint64_t start)
|
|||
/* using K_CYC(ticks_delta - 885) brings "requested - set" to about 180-700
|
||||
* cycles, audio sounds very slow and distorted.
|
||||
*/
|
||||
ret = k_delayed_work_submit_to_queue(&timer_domain->ll_workq[core],
|
||||
&zdata[core].work,
|
||||
K_CYC(ticks_delta - ZEPHYR_SCHED_COST));
|
||||
ret = k_work_reschedule_for_queue(&timer_domain->ll_workq[core],
|
||||
&zdata[core].work,
|
||||
K_CYC(ticks_delta - ZEPHYR_SCHED_COST));
|
||||
if (ret < 0) {
|
||||
tr_err(&ll_tr, "queue submission error %d", ret);
|
||||
return;
|
||||
}
|
||||
|
||||
ticks_set = k_delayed_work_remaining_ticks(&zdata[core].work) * CYC_PER_TICK +
|
||||
ticks_set = k_work_delayable_remaining_get(&zdata[core].work) * CYC_PER_TICK +
|
||||
current - current % CYC_PER_TICK;
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue