Loading drivers/cpuidle/lpm-levels.c +9 −10 Original line number Diff line number Diff line Loading @@ -1031,9 +1031,7 @@ static int cluster_configure(struct lpm_cluster *cluster, int idx, if (predicted && (idx < (cluster->nlevels - 1))) { struct power_params *pwr_params = &cluster->levels[idx].pwr; tick_broadcast_exit(); clusttimer_start(cluster, pwr_params->max_residency + tmr_add); tick_broadcast_enter(); } return 0; Loading Loading @@ -1086,10 +1084,8 @@ static void cluster_prepare(struct lpm_cluster *cluster, struct power_params *pwr_params = &cluster->levels[0].pwr; tick_broadcast_exit(); clusttimer_start(cluster, pwr_params->max_residency + tmr_add); tick_broadcast_enter(); } } Loading Loading @@ -1196,9 +1192,6 @@ static inline void cpu_prepare(struct lpm_cpu *cpu, int cpu_index, * next wakeup within a cluster, in which case, CPU switches over to * use broadcast timer. */ if (from_idle && cpu_level->use_bc_timer) tick_broadcast_enter(); if (from_idle && ((cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE) || (cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE_STANDALONE) Loading @@ -1218,9 +1211,6 @@ static inline void cpu_unprepare(struct lpm_cpu *cpu, int cpu_index, struct lpm_cpu_level *cpu_level = &cpu->levels[cpu_index]; bool jtag_save_restore = cpu->levels[cpu_index].jtag_save_restore; if (from_idle && cpu_level->use_bc_timer) tick_broadcast_exit(); if (from_idle && ((cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE) || (cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE_STANDALONE) Loading Loading @@ -1272,6 +1262,11 @@ static bool psci_enter_sleep(struct lpm_cpu *cpu, int idx, bool from_idle) /* * idx = 0 is the default LPM state */ if (from_idle && cpu->levels[idx].use_bc_timer) { if (tick_broadcast_enter()) return false; } if (!idx) { stop_critical_timings(); wfi(); Loading @@ -1290,6 +1285,10 @@ static bool psci_enter_sleep(struct lpm_cpu *cpu, int idx, bool from_idle) start_critical_timings(); update_debug_pc_event(CPU_EXIT, state_id, success, 0xdeaffeed, true); if (from_idle && cpu->levels[idx].use_bc_timer) tick_broadcast_exit(); return success; } Loading Loading
drivers/cpuidle/lpm-levels.c +9 −10 Original line number Diff line number Diff line Loading @@ -1031,9 +1031,7 @@ static int cluster_configure(struct lpm_cluster *cluster, int idx, if (predicted && (idx < (cluster->nlevels - 1))) { struct power_params *pwr_params = &cluster->levels[idx].pwr; tick_broadcast_exit(); clusttimer_start(cluster, pwr_params->max_residency + tmr_add); tick_broadcast_enter(); } return 0; Loading Loading @@ -1086,10 +1084,8 @@ static void cluster_prepare(struct lpm_cluster *cluster, struct power_params *pwr_params = &cluster->levels[0].pwr; tick_broadcast_exit(); clusttimer_start(cluster, pwr_params->max_residency + tmr_add); tick_broadcast_enter(); } } Loading Loading @@ -1196,9 +1192,6 @@ static inline void cpu_prepare(struct lpm_cpu *cpu, int cpu_index, * next wakeup within a cluster, in which case, CPU switches over to * use broadcast timer. */ if (from_idle && cpu_level->use_bc_timer) tick_broadcast_enter(); if (from_idle && ((cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE) || (cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE_STANDALONE) Loading @@ -1218,9 +1211,6 @@ static inline void cpu_unprepare(struct lpm_cpu *cpu, int cpu_index, struct lpm_cpu_level *cpu_level = &cpu->levels[cpu_index]; bool jtag_save_restore = cpu->levels[cpu_index].jtag_save_restore; if (from_idle && cpu_level->use_bc_timer) tick_broadcast_exit(); if (from_idle && ((cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE) || (cpu_level->mode == MSM_PM_SLEEP_MODE_POWER_COLLAPSE_STANDALONE) Loading Loading @@ -1272,6 +1262,11 @@ static bool psci_enter_sleep(struct lpm_cpu *cpu, int idx, bool from_idle) /* * idx = 0 is the default LPM state */ if (from_idle && cpu->levels[idx].use_bc_timer) { if (tick_broadcast_enter()) return false; } if (!idx) { stop_critical_timings(); wfi(); Loading @@ -1290,6 +1285,10 @@ static bool psci_enter_sleep(struct lpm_cpu *cpu, int idx, bool from_idle) start_critical_timings(); update_debug_pc_event(CPU_EXIT, state_id, success, 0xdeaffeed, true); if (from_idle && cpu->levels[idx].use_bc_timer) tick_broadcast_exit(); return success; } Loading