Re: [PATCH v5 0/3] pmdomain: imx: build the SCU power domain driver as a module
From: Ulf Hansson
Date: Mon Jul 27 2026 - 06:14:11 EST
On Thu, Jul 23, 2026 at 4:05 AM <Zhipeng.wang_1@xxxxxxxxxxx> wrote:
>
> From: Zhipeng Wang <zhipeng.wang_1@xxxxxxx>
>
> This series makes the i.MX SCU power domain driver buildable as a
> loadable module, which is required for Android devices using the
> Generic Kernel Image (GKI) where SoC-specific drivers must be modules.
>
> Patch 1 exports of_stdout (which the driver references to find the
> console's power domain) from the OF core with EXPORT_SYMBOL_GPL().
>
> Patch 2 converts CONFIG_IMX_SCU_PD from bool to tristate and adds
> MODULE_DEVICE_TABLE() for autoloading. subsys_initcall() is used so
> that when built-in the provider probes before its consumers (e.g. the
> SCU clock driver at device_initcall level). No module_exit() is
> provided since the provider cannot be safely removed at runtime.
>
> Patch 3 adds MODULE_SOFTDEP("pre: scu_pd") to the i.MX8QXP clock
> driver so that modprobe loads the power domain module first when both
> are built as modules.
>
> Because of the cross-subsystem dependency (patches touch drivers/of,
> drivers/pmdomain, and drivers/clk), I would suggest taking the whole
> series through one tree.
>
> Changes in v5:
> - Fix MODULE_SOFTDEP module name from imx_scu_pd to scu_pd. (Sashiko
> bot)
> - Add Acked-by from Rob Herring for patch 1.
>
> Changes in v4:
> - Add patch 3: MODULE_SOFTDEP in clk-imx8qxp to guarantee module load
> order when both drivers are modules. (Sashiko bot)
>
> Changes in v3:
> - Use subsys_initcall() instead of module_init() to fix probe ordering
> between the power domain provider and the SCU clock consumer when
> both are built-in. (Sashiko bot)
>
> Changes in v2:
> - Drop module_platform_driver() which provides module_exit() and could
> lead to use-after-free on module unload. Use module_init() only, so
> the module cannot be unloaded. (Sashiko bot)
>
> Zhipeng Wang (3):
> of: export of_stdout symbol
> pmdomain: imx: scu-pd: allow building as a module
> clk: imx: imx8qxp: add soft dependency on SCU power domain driver
>
> drivers/clk/imx/clk-imx8qxp.c | 1 +
> drivers/of/base.c | 1 +
> drivers/pmdomain/imx/Kconfig | 2 +-
> drivers/pmdomain/imx/scu-pd.c | 8 +++++++-
> 4 files changed, 10 insertions(+), 2 deletions(-)
>
> --
> 2.34.1
The v5 series applied for next, thanks!
Kind regards
Uffe