Skip to content

zephyr: ipc: stop selecting deprecated INTEL_ADSP_IPC Kconfig#11010

Open
tmleman wants to merge 1 commit into
thesofproject:mainfrom
tmleman:topic/upstream/pr/zephyr/ipc/remove_deprecated_kconfig
Open

zephyr: ipc: stop selecting deprecated INTEL_ADSP_IPC Kconfig#11010
tmleman wants to merge 1 commit into
thesofproject:mainfrom
tmleman:topic/upstream/pr/zephyr/ipc/remove_deprecated_kconfig

Conversation

@tmleman

@tmleman tmleman commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

The INTEL_ADSP_IPC Kconfig is deprecated upstream (it now only selects DEPRECATED and will be removed). SOF still relied on it both as an explicit selection and as a compile guard, which blocks its removal in Zephyr.

Replace every usage with the correct non-deprecated symbol:

  • old-interface calls (intel_adsp_ipc_set_done_handler used by ipc_platform_wait_ack) are guarded by INTEL_ADSP_IPC_OLD_INTERFACE,
  • Intel-backend-specific code (host IPC suspend/resume handlers and the failed power-transition response) is guarded by IPC_SERVICE_BACKEND_INTEL_ADSP_HOST_IPC, moving ipc-zephyr.c a step closer to being backend agnostic,
  • the backend header include is split from the old-interface header,
  • the redundant explicit INTEL_ADSP_IPC selections in the board defconfig and the ptl_sim overlay are dropped (OLD_INTERFACE already selects it by default).

No functional change: on all Intel ADSP targets OLD_INTERFACE and the host IPC backend are enabled by default, so the same code paths build.

Comment thread src/ipc/ipc-zephyr.c
return ret;

#if defined(CONFIG_PM) && defined(CONFIG_INTEL_ADSP_IPC)
#if defined(CONFIG_PM_DEVICE) && defined(CONFIG_IPC_SERVICE_BACKEND_INTEL_ADSP_HOST_IPC)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is replacing CONFIG_PM with CONFIG_PM_DEVICE intentional or a mistake?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONFIG_PM_DEVICE  makes the registration guard exactly match the definitions it references and the backend API it invokes: https://github.com/zephyrproject-rtos/zephyr/blob/main/include/zephyr/ipc/backends/intel_adsp_host_ipc.h#L138-L162

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates SOF’s Zephyr IPC integration to stop depending on Zephyr’s deprecated INTEL_ADSP_IPC Kconfig symbol by switching compile guards and includes to the newer, non-deprecated symbols (primarily IPC_SERVICE_BACKEND_INTEL_ADSP_HOST_IPC and INTEL_ADSP_IPC_OLD_INTERFACE). It also removes redundant Kconfig selections from Intel ADSP board configs.

Changes:

  • Replace CONFIG_INTEL_ADSP_IPC compile guards with CONFIG_IPC_SERVICE_BACKEND_INTEL_ADSP_HOST_IPC / CONFIG_INTEL_ADSP_IPC_OLD_INTERFACE where appropriate.
  • Split backend-header include from old-interface header include in ipc-zephyr.c.
  • Drop explicit INTEL_ADSP_IPC selections from Intel ADSP board defconfig and the ace30_ptl_sim overlay.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/ipc/ipc4/handler-kernel.c Updates failed power-transition response compile guard to the Intel Host IPC backend symbol.
src/ipc/ipc-zephyr.c Splits Intel Host IPC backend include vs old IPC interface include; adjusts PM-related guards and old-interface wait-ack guard.
src/include/sof/ipc/common.h Updates declaration guard for failed power-transition response to the Intel Host IPC backend symbol.
app/boards/intel_adsp/Kconfig.defconfig Removes redundant default selection of deprecated INTEL_ADSP_IPC.
app/boards/intel_adsp_ace30_ptl_sim.conf Removes redundant CONFIG_INTEL_ADSP_IPC=y from the overlay.

Comment thread src/ipc/ipc-zephyr.c
Comment on lines +16 to +18
#ifdef CONFIG_IPC_SERVICE_BACKEND_INTEL_ADSP_HOST_IPC
#include <zephyr/ipc/backends/intel_adsp_host_ipc.h>
#endif
The INTEL_ADSP_IPC Kconfig is deprecated upstream (it now only selects
DEPRECATED and will be removed). SOF still relied on it both as an
explicit selection and as a compile guard, which blocks its removal in
Zephyr.

Replace every usage with the correct non-deprecated symbol:

 - old-interface calls (intel_adsp_ipc_set_done_handler used by
   ipc_platform_wait_ack) are guarded by INTEL_ADSP_IPC_OLD_INTERFACE,
 - Intel-backend-specific code (host IPC suspend/resume handlers and the
   failed power-transition response) is guarded by
   IPC_SERVICE_BACKEND_INTEL_ADSP_HOST_IPC, moving ipc-zephyr.c a step
   closer to being backend agnostic,
 - the backend header include is split from the old-interface header,
 - the redundant explicit INTEL_ADSP_IPC selections in the board
   defconfig and the ptl_sim overlay are dropped (OLD_INTERFACE already
   selects it by default).

No functional change: on all Intel ADSP targets OLD_INTERFACE and the
host IPC backend are enabled by default, so the same code paths build.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
@dcpleung

Copy link
Copy Markdown
Contributor

Thank you. Once this is merged, I'll remove the kconfig from Zephyr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants