This patchset serves as a preparing patchset for i.MX95 support. The current code logic is complicated, with mix the usage of switch-case and if-else.
To simplify the code logic: Introduce struct imx_rproc_plat_ops to wrap platform start,stop,detect_mode. Each imx_rproc_dcfg data structure is assigned a ops pointer. The common imx_rproc_{start,stop}() directly invokes the plat ops, no need the switch-case. mmio/smc/scu_api ops are included. No functional changes. Thanks to Daniel and Frank for the help. Test on i.MX8MM for MMIO ops, i.MX8MP for SMC ops, i.MX8QM for SCU-API ops. Signed-off-by: Peng Fan <peng....@nxp.com> --- Changes in v2: - Simplify the if/else in patch 6 per Frank and Mathieu - Add R-b from Daniel and Frank. - Link to v1: https://lore.kernel.org/r/20250908-imx-rproc-cleanup-v1-0-e838cb144...@nxp.com --- Peng Fan (6): remoteproc: imx_rproc: Introduce start/stop/detect_mode ops for imx_rproc_dcfg remoteproc: imx_rproc: Move imx_rproc_dcfg closer to imx_rproc_of_match remoteproc: imx_rproc: Simplify IMX_RPROC_MMIO switch case remoteproc: imx_rproc: Simplify IMX_RPROC_SCU_API switch case remoteproc: imx_rproc: Simplify IMX_RPROC_SMC switch case remoteproc: imx_rproc: Clean up after ops introduction drivers/remoteproc/imx_rproc.c | 449 +++++++++++++++++++++++------------------ drivers/remoteproc/imx_rproc.h | 7 + 2 files changed, 265 insertions(+), 191 deletions(-) --- base-commit: 3e8e5822146bc396d2a7e5fbb7be13271665522a change-id: 20250908-imx-rproc-cleanup-6f3b546b9fdf Best regards, -- Peng Fan <peng....@nxp.com>