]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
firmware: scm: make scm_init call from probe
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 22 Feb 2016 17:11:44 +0000 (17:11 +0000)
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 22 Feb 2016 17:11:44 +0000 (17:11 +0000)
This patch removes early init calls from scm-64 and makes it a proper
function callback that would be called from scm probe.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
drivers/firmware/qcom_scm-32.c
drivers/firmware/qcom_scm-64.c
drivers/firmware/qcom_scm.c
drivers/firmware/qcom_scm.h

index 26a6a8cace793994280404b5e370a553f4f8e1c3..cabbe1f7e397d54d38f2061510411f22a75207c6 100644 (file)
@@ -891,3 +891,8 @@ int __qcom_scm_mem_protect_video_var(u32 start, u32 size, u32 nonpixel_start,
 
        return 0;
 }
+
+int __qcom_scm_init(void)
+{
+       return 0;
+}
index 6b31a8c00d1d0e36d7e8419089d4a59d6ba61a94..dc64858935fa7f977ef624e382691783fc7b6aba 100644 (file)
@@ -862,7 +862,7 @@ int __qcom_scm_mem_protect_video_var(u32 start, u32 size, u32 nonpixel_start,
 }
 
 #define QCOM_SCM_SVC_INFO              0x6
-static int __init qcom_scm_init(void)
+int __qcom_scm_init(void)
 {
        int ret;
        u64 ret1 = 0, x0;
@@ -889,4 +889,3 @@ static int __init qcom_scm_init(void)
 
        return 0;
 }
-early_initcall(qcom_scm_init);
index 0511828e95a7aba063e3e43de87e075cb5dd8350..d78bd99370024d3da66c73b94cebfc25a373f864 100644 (file)
@@ -333,12 +333,21 @@ bool qcom_scm_is_available(void)
 }
 EXPORT_SYMBOL(qcom_scm_is_available);
 
+static int __init qcom_scm_init(void)
+{
+       return __qcom_scm_init();
+}
+
 static int qcom_scm_probe(struct platform_device *pdev)
 {
        struct qcom_scm *scm;
        long rate;
        int ret;
 
+       ret = qcom_scm_init();
+       if (IS_ERR_VALUE(ret))
+               return ret;
+
        scm = devm_kzalloc(&pdev->dev, sizeof(*scm), GFP_KERNEL);
        if (!scm)
                return -ENOMEM;
index 2f46f0ced9f73aec45b864482f776e11c597521f..93b94c9ad34f05eb6e41067f5bf12fe10925c9af 100644 (file)
@@ -117,4 +117,5 @@ extern int __qcom_scm_set_video_state(u32 state, u32 spare);
 extern int __qcom_scm_mem_protect_video_var(u32 start, u32 size,
                                            u32 nonpixel_start,
                                            u32 nonpixel_size);
+extern int __qcom_scm_init(void);
 #endif