[PATCH v17] Currently SPM driver always initializes before the cpuidle driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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 <lina.iyer@xxxxxxxxxx>
---
 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux