From 38fb366031cef48434ebfc3f19dc5988c52a31e8 Mon Sep 17 00:00:00 2001 From: Daniel Baluta Date: Wed, 26 Aug 2026 13:58:52 +0300 Subject: [PATCH] ipc4: handler: only set pm_prepare_D3 when CONFIG_PM is enabled pm_prepare_D3 gates ipc_send_queued_msg() and is only cleared from ipc_device_resume_handler(), which needs CONFIG_PM to run. On builds with CONFIG_PM=n no one clears it, so the IPC queue stalls after a SET_DX message. Guard the assignment with CONFIG_PM, like the task_mask handling just above. Signed-off-by: Daniel Baluta --- src/ipc/ipc4/handler-kernel.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ipc/ipc4/handler-kernel.c b/src/ipc/ipc4/handler-kernel.c index 03c2e6c81e86..f8d340af2e1c 100644 --- a/src/ipc/ipc4/handler-kernel.c +++ b/src/ipc/ipc4/handler-kernel.c @@ -428,7 +428,9 @@ __cold static int ipc4_module_process_dx(struct ipc4_message_request *ipc4) arch_irq_lock(); platform_timer_stop(timer_get()); #endif +#if defined(CONFIG_PM) ipc_get()->pm_prepare_D3 = 1; +#endif } return IPC4_SUCCESS;