From 9b3715fc168aa547495917001735a3ced76b3419 Mon Sep 17 00:00:00 2001 From: Tomasz Leman Date: Thu, 7 Apr 2022 11:59:59 +0200 Subject: [PATCH] ipc4: setdx: skip sending ipc response When SetDx message shut down primary core, response to this IPC will be send during power down procedure. It's done to minimize the chances of the host shutting down power before the core is ready. Signed-off-by: Tomasz Leman --- src/ipc/ipc4/handler.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ipc/ipc4/handler.c b/src/ipc/ipc4/handler.c index 51a2bc13f..bb87eaf42 100644 --- a/src/ipc/ipc4/handler.c +++ b/src/ipc/ipc4/handler.c @@ -1002,6 +1002,12 @@ void ipc_cmd(ipc_cmd_hdr *_hdr) /* FW sends a ipc message to host if request bit is set*/ if (in->r.rsp == SOF_IPC4_MESSAGE_DIR_MSG_REQUEST) { + /** + * If FW is on the path to D3 on primary core, + * IPC response will be send during power down procedure. + */ + if (ipc_get()->pm_prepare_D3 && in->r.type == SOF_IPC4_MOD_SET_DX) + return; char *data = ipc_get()->comp_data; struct ipc4_message_reply reply;