Skip to content

Commit 0bf9779

Browse files
committed
ipc: move delayed IPC sending to the primary core
Low level IPC processing should be confined to the primary core. Move delayed IPC sending to a dedicated work queue with core 0 affinity. Fixes: #8165 Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
1 parent a87f20c commit 0bf9779

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/ipc/ipc-common.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ static void schedule_ipc_worker(void)
179179
#ifdef __ZEPHYR__
180180
struct ipc *ipc = ipc_get();
181181

182-
k_work_schedule(&ipc->z_delayed_work, K_USEC(IPC_PERIOD_USEC));
182+
sof_primary_wq_reschedule(&ipc->z_delayed_work, K_USEC(IPC_PERIOD_USEC));
183183
#endif
184184
}
185185

@@ -305,6 +305,8 @@ int ipc_init(struct sof *sof)
305305
#endif
306306

307307
#ifdef __ZEPHYR__
308+
sof_primary_wq_init();
309+
308310
k_work_init_delayable(&sof->ipc->z_delayed_work, ipc_work_handler);
309311
#endif
310312

0 commit comments

Comments
 (0)