On Mon, Mar 09 2015 at 09:17 -0600, Lina Iyer wrote:
[...]
+static int qcom_pm_collapse(unsigned long int unused)
+{
+ qcom_scm_cpu_power_down(QCOM_SCM_L2_ON);
Rebase against latest SCM patches. Change to QCOM_SCM_CPU_PWR_DOWN_L2_ON.
+
+ /*
+ * Returns here only if there was a pending interrupt and we did not
+ * power down as a result.
+ */
+ return -1;
+}
+
+static int qcom_cpu_standby(int cpuarg)
+{
+ spm_set_low_power_mode(PM_SLEEP_MODE_STBY);
+ cpu_do_idle();
+
+ return 0;
+}
+
+static int qcom_cpu_spc(int cpu)
+{
+ int ret;
+
+ spm_set_low_power_mode(PM_SLEEP_MODE_SPC);
+ cpu_pm_enter();
Remove this. This is now done by cpuidle driver.
+ ret = cpu_suspend(0, qcom_pm_collapse);
+ /*
+ * ARM common code may execute WFI, and if the SPM mode is not reset,
+ * then we may accidently do power down state.
+ * SPM is configured to reset to do STBY, but that relies on the
+ * SPM state machine to be executed. When an interrupt is pending as we
+ * enter idle state, SPM would not execute its state machine, so the
+ * SPM may remain configured to do power down state.
+ * Reset the state back to standby.
+ */
+ spm_set_low_power_mode(PM_SLEEP_MODE_STBY);
+ cpu_pm_exit();
And this..
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html