From 9a20200344d15d0f93e31b4171a706f3fc3cbebe Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Thu, 24 Jun 2021 15:23:16 +0800 Subject: [PATCH] nvmem: rockchip-efuse: Fix later provider initialization Possibly, provider driver initialization is later than consumer driver. Use function subsys_initcall to initialize NVMEM provider early to ensure NVMEM consumer doesn't need to -EPROBE_DEFER. Change-Id: I817aa44c3b34d2fdf44148e6b9649ceed76d8f1f Signed-off-by: Finley Xiao --- drivers/nvmem/rockchip-efuse.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c index e4579de5d014..4f9928295917 100644 --- a/drivers/nvmem/rockchip-efuse.c +++ b/drivers/nvmem/rockchip-efuse.c @@ -296,6 +296,26 @@ static struct platform_driver rockchip_efuse_driver = { }, }; -module_platform_driver(rockchip_efuse_driver); +static int __init rockchip_efuse_init(void) +{ + int ret; + + ret = platform_driver_register(&rockchip_efuse_driver); + if (ret) { + pr_err("failed to register efuse driver\n"); + return ret; + } + + return 0; +} + +static void __exit rockchip_efuse_exit(void) +{ + return platform_driver_unregister(&rockchip_efuse_driver); +} + +subsys_initcall(rockchip_efuse_init); +module_exit(rockchip_efuse_exit); + MODULE_DESCRIPTION("rockchip_efuse driver"); MODULE_LICENSE("GPL v2");