[PATCH] nvmem: imx-ocotp: Initialize in subsys_initcall

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Apr 8 03:23:59 PDT 2026


Hello Paul,

On 4/8/26 12:19 PM, Paul Geurts wrote:
> The i.MX OCOTP driver is implemented as module_platform_driver();,
> which makes it initialize in device_initcall(). This means that all
> drivers referencing the clock driver nodes in the device tree are
> deferred by fw_devlink.
> 
> As the OCOTP driver is arch specific, but dependent on the i.MX clock
> driver, which is also initialized in arch_initcall(), explicitly
> initialize the driver in subsys_initcall(). This makes sure the drivers
> depending on fuses defined by OCOTP, which are initialized in
> device_initcall() are not deferred.
> 
> Fixes: 3edba6b47e42 ("nvmem: imx-ocotp: Add i.MX6 OCOTP driver")

Same question as the imx8mm-clk patch.

Your commit message doesn't mention what problem you had the with deferral.

> -module_platform_driver(imx_ocotp_driver);
> +
> +static int __init imx_ocotp_init(void)
> +{
> +	return platform_driver_register(&imx_ocotp_driver);
> +}
> +subsys_initcall(imx_ocotp_init);

Same question as before. What happens when you build this as module.

Cheers,
Ahmad

> +
> +static void __exit imx_ocotp_exit(void)
> +{
> +	platform_driver_unregister(&imx_ocotp_driver);
> +}
> +module_exit(imx_ocotp_exit);
>  
>  MODULE_AUTHOR("Philipp Zabel <p.zabel at pengutronix.de>");
>  MODULE_DESCRIPTION("i.MX6/i.MX7 OCOTP fuse box driver");

-- 
Pengutronix e.K.                  |                             |
Steuerwalder Str. 21              | http://www.pengutronix.de/  |
31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |




More information about the linux-arm-kernel mailing list