|
@@ -47,6 +47,8 @@ int arm_cpuidle_suspend(int index)
|
|
|
|
|
|
#include <acpi/processor.h>
|
|
|
|
|
|
+#define ARM64_LPI_IS_RETENTION_STATE(arch_flags) (!(arch_flags))
|
|
|
+
|
|
|
int acpi_processor_ffh_lpi_probe(unsigned int cpu)
|
|
|
{
|
|
|
return arm_cpuidle_init(cpu);
|
|
@@ -54,6 +56,10 @@ int acpi_processor_ffh_lpi_probe(unsigned int cpu)
|
|
|
|
|
|
int acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi)
|
|
|
{
|
|
|
- return CPU_PM_CPU_IDLE_ENTER(arm_cpuidle_suspend, lpi->index);
|
|
|
+ if (ARM64_LPI_IS_RETENTION_STATE(lpi->arch_flags))
|
|
|
+ return CPU_PM_CPU_IDLE_ENTER_RETENTION(arm_cpuidle_suspend,
|
|
|
+ lpi->index);
|
|
|
+ else
|
|
|
+ return CPU_PM_CPU_IDLE_ENTER(arm_cpuidle_suspend, lpi->index);
|
|
|
}
|
|
|
#endif
|