summaryrefslogtreecommitdiffstats
path: root/drivers/clk/zte
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2016-09-23 09:45:08 +0800
committerStephen Boyd <sboyd@codeaurora.org>2016-09-23 14:42:13 -0700
commitc72f2883c31e8c21832f3d48d5aa6ee8d83b3c43 (patch)
tree94d1812825022be0f4f08ec4a27f847f746f1428 /drivers/clk/zte
parenta0245eb76ad0f652f1eb14f48ca2d3c4391aef66 (diff)
downloadlinux-c72f2883c31e8c21832f3d48d5aa6ee8d83b3c43.tar.gz
linux-c72f2883c31e8c21832f3d48d5aa6ee8d83b3c43.tar.bz2
linux-c72f2883c31e8c21832f3d48d5aa6ee8d83b3c43.zip
clk: zx296718: register driver earlier with core_initcall
Clock driver should be registered with an earlier initcall than module_init which is used by most of client device drivers. Otherwise, probing of these client drivers will likely be deferred due to that calls into clk API will return -EPROBE_DEFER. Deferred probing is not a problem for most subsystems, but could bring some side effect for particular subsystem, like display. On ZX296718 platform, we get Linux logo and boot log lost from display device, just because the DRM/KMS driver gets -EPROBE_DEFER from devm_clk_get() call. Let's use core_initcall (qcom and a few other clk drivers use that) for driver registration to avoid those unnecessary -EPROBE_DEFER and get rid of the side effect with ZX296718 display system. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Diffstat (limited to 'drivers/clk/zte')
-rw-r--r--drivers/clk/zte/clk-zx296718.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/clk/zte/clk-zx296718.c b/drivers/clk/zte/clk-zx296718.c
index c7716c17f302..707d62956e9b 100644
--- a/drivers/clk/zte/clk-zx296718.c
+++ b/drivers/clk/zte/clk-zx296718.c
@@ -917,4 +917,8 @@ static struct platform_driver zx_clk_driver = {
},
};
-builtin_platform_driver(zx_clk_driver);
+static int __init zx_clk_init(void)
+{
+ return platform_driver_register(&zx_clk_driver);
+}
+core_initcall(zx_clk_init);