Remove unnecessary complexity in supporting initialization of SPM driver
after cpuidle driver. The current kernel initializes SPM driver before
cpuidle driver.

Signed-off-by: Lina Iyer <[email protected]>
---
 drivers/soc/qcom/spm.c | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/drivers/soc/qcom/spm.c b/drivers/soc/qcom/spm.c
index cda321c..84344e7 100644
--- a/drivers/soc/qcom/spm.c
+++ b/drivers/soc/qcom/spm.c
@@ -266,13 +266,9 @@ static int __init qcom_cpuidle_init(struct device_node 
*cpu_node, int cpu)
        per_cpu(qcom_idle_ops, cpu) = fns;
 
        /*
-        * Condition: cpuidle_driver_register() needs to happen before
-        * cpuidle_register_device().
-        * Check if the SPM probe has happened -
-        * - If SPM probed successfully before arm_idle_init(), then defer
-        *   the registration of cpuidle_device back to arm_idle_init()
-        * - If the SPM probe happens in the future, then let the SPM probe
-        *   register the cpuidle device, return -ENXIO.
+        * SPM probe for the cpu should have happened by now, if the
+        * SPM device does not exist, return -ENXIO to indicate that the
+        * cpu does not support idle states.
         */
 check_spm:
        return per_cpu(cpu_spm_drv, cpu) ? 0 : -ENXIO;
@@ -332,7 +328,6 @@ static int spm_dev_probe(struct platform_device *pdev)
        const struct of_device_id *match_id;
        void __iomem *addr;
        int cpu;
-       int ret = 0;
 
        drv = spm_get_drv(pdev, &cpu);
        if (!drv)
@@ -373,22 +368,7 @@ static int spm_dev_probe(struct platform_device *pdev)
 
        per_cpu(cpu_spm_drv, cpu) = drv;
 
-       /*
-        * If the cpuidle ops have already been registered with cpuidle,
-        * then we have been waiting on this SPM probe to register the
-        * cpuidle device.
-        */
-       if (per_cpu(qcom_idle_ops, cpu)) {
-               struct cpuidle_device *dev;
-
-               dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
-               if (!dev)
-                       return -ENOMEM;
-               dev->cpu = cpu;
-               ret = cpuidle_register_device(dev);
-       }
-
-       return ret;
+       return 0;
 }
 
 static struct platform_driver spm_driver = {
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to