[PATCH v2] clk: scu/imx8qxp: do not register driver in probe()

Danilo Krummrich dakr at kernel.org
Wed Feb 25 03:31:57 PST 2026


On Wed Feb 25, 2026 at 9:16 AM CET, Peng Fan wrote:
>>diff --git a/drivers/clk/imx/clk-imx8qxp.c b/drivers/clk/imx/clk-imx8qxp.c
>>index 3ae162625bb1..c781425a005e 100644
>>--- a/drivers/clk/imx/clk-imx8qxp.c
>>+++ b/drivers/clk/imx/clk-imx8qxp.c
>>@@ -346,7 +346,29 @@ static struct platform_driver imx8qxp_clk_driver = {
>> 	},
>> 	.probe = imx8qxp_clk_probe,
>> };
>>-module_platform_driver(imx8qxp_clk_driver);
>>+
>>+static int __init imx8qxp_clk_init(void)
>>+{
>>+	int ret;
>>+
>>+	ret = platform_driver_register(&imx8qxp_clk_driver);
>>+	if (ret)
>>+		return ret;
>>+
>>+	ret = imx_clk_scu_module_init();
>>+	if (ret)
>>+		platform_driver_unregister(&imx8qxp_clk_driver);
>>+
>>+	return ret;
>>+}
>>+module_init(imx8qxp_clk_init);
>>+
>>+static void __exit imx8qxp_clk_exit(void)
>>+{
>>+	imx_clk_scu_module_exit();
>>+	platform_driver_unregister(&imx8qxp_clk_driver);
>>+}
>>+module_exit(imx8qxp_clk_exit);
>
> The clk driver is critical for the system to work, removing this driver will
> make the system not work properly I think, so it may not make too much
> value to add an exit function here.

The exit function was there before, just hidden by the module_platform_driver()
macro.

If a driver can be built as module, then we have to unregister the driver, when
the module is unloaded.

If this driver should always be builtin, that is a separate change, independent
from this fix.



More information about the linux-arm-kernel mailing list