arm64: add support for ACPI Low Power Idle(LPI)
authorSudeep Holla <Sudeep.Holla@arm.com>
Tue, 19 Jul 2016 17:52:58 +0000 (18:52 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 21 Jul 2016 21:29:38 +0000 (23:29 +0200)
This patch adds appropriate callbacks to support ACPI Low Power Idle
(LPI) on ARM64.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/arm64/kernel/cpuidle.c

index 06786fd..75a0f8a 100644 (file)
@@ -9,6 +9,9 @@
  * published by the Free Software Foundation.
  */
 
+#include <linux/acpi.h>
+#include <linux/cpuidle.h>
+#include <linux/cpu_pm.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
 
@@ -39,3 +42,18 @@ int arm_cpuidle_suspend(int index)
 
        return cpu_ops[cpu]->cpu_suspend(index);
 }
+
+#ifdef CONFIG_ACPI
+
+#include <acpi/processor.h>
+
+int acpi_processor_ffh_lpi_probe(unsigned int cpu)
+{
+       return arm_cpuidle_init(cpu);
+}
+
+int acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi)
+{
+       return CPU_PM_CPU_IDLE_ENTER(arm_cpuidle_suspend, lpi->index);
+}
+#endif