static void mt_hotplug_mechanism_early_suspend(struct early_suspend *h) { HOTPLUG_INFO("mt_hotplug_mechanism_early_suspend"); if (g_enable) { //int i = 0; #ifdef CONFIG_CPU_FREQ_GOV_HOTPLUG mutex_lock(&hp_onoff_mutex); hp_disable_cpu_hp(1); #endif //for (i = (num_possible_cpus() - 1); i > 0; i--) //{ // if (cpu_online(i)) // cpu_down(i); //} if (num_online_cpus() != 1) { wake_lock_timeout(&hotplug_wake_lock, FORCE_CPU_OFF_WAKE_LOCK_TIME * HZ); schedule_delayed_work_on(0, &hotplug_delayed_work, FORCE_CPU_OFF_DELAYED_WORK_TIME * HZ); } #ifdef CONFIG_CPU_FREQ_GOV_HOTPLUG mutex_unlock(&hp_onoff_mutex); #endif } g_cur_state = STATE_ENTER_EARLY_SUSPEND; return; }
static void mt_hotplug_mechanism_early_suspend(struct early_suspend *h) { HOTPLUG_INFO("mt_hotplug_mechanism_early_suspend"); if (g_enable) { int i = 0; mutex_lock(&hp_onoff_mutex); hp_disable_cpu_hp(1); for (i = (num_possible_cpus() - 1); i > 0; i--) { if (cpu_online(i)) cpu_down(i); } mutex_unlock(&hp_onoff_mutex); } g_cur_state = STATE_ENTER_EARLY_SUSPEND; return; }
static void mt_hotplug_mechanism_late_resume(struct power_suspend *h) { HOTPLUG_INFO("mt_hotplug_mechanism_late_resume"); if (g_enable) { hp_disable_cpu_hp(0); } g_cur_state = STATE_ENTER_LATE_RESUME; return; }
static void mt_hotplug_mechanism_late_resume(struct early_suspend *h) { HOTPLUG_INFO("mt_hotplug_mechanism_late_resume"); if (g_enable) { wake_unlock(&hotplug_wake_lock); cancel_delayed_work_sync(&hotplug_delayed_work); #ifdef CONFIG_CPU_FREQ_GOV_HOTPLUG hp_disable_cpu_hp(0); #endif } g_cur_state = STATE_ENTER_LATE_RESUME; return; }
static void mt_hotplug_mechanism_power_suspend(struct power_suspend *h) { HOTPLUG_INFO("mt_hotplug_mechanism_power_suspend"); if (g_enable) { int i = 0; hp_disable_cpu_hp(1); for (i = (num_possible_cpus() - 1); i > 0; i--) { if (cpu_online(i)) cpu_down(i); } } g_cur_state = STATE_ENTER_POWER_SUSPEND; return; }