|
@@ -96,46 +96,3 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
-
|
|
|
-/**
|
|
|
- * cpuidle_replace_governor - find a replacement governor
|
|
|
- * @exclude_rating: the rating that will be skipped while looking for
|
|
|
- * new governor.
|
|
|
- */
|
|
|
-static struct cpuidle_governor *cpuidle_replace_governor(int exclude_rating)
|
|
|
-{
|
|
|
- struct cpuidle_governor *gov;
|
|
|
- struct cpuidle_governor *ret_gov = NULL;
|
|
|
- unsigned int max_rating = 0;
|
|
|
-
|
|
|
- list_for_each_entry(gov, &cpuidle_governors, governor_list) {
|
|
|
- if (gov->rating == exclude_rating)
|
|
|
- continue;
|
|
|
- if (gov->rating > max_rating) {
|
|
|
- max_rating = gov->rating;
|
|
|
- ret_gov = gov;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return ret_gov;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * cpuidle_unregister_governor - unregisters a governor
|
|
|
- * @gov: the governor
|
|
|
- */
|
|
|
-void cpuidle_unregister_governor(struct cpuidle_governor *gov)
|
|
|
-{
|
|
|
- if (!gov)
|
|
|
- return;
|
|
|
-
|
|
|
- mutex_lock(&cpuidle_lock);
|
|
|
- if (gov == cpuidle_curr_governor) {
|
|
|
- struct cpuidle_governor *new_gov;
|
|
|
- new_gov = cpuidle_replace_governor(gov->rating);
|
|
|
- cpuidle_switch_governor(new_gov);
|
|
|
- }
|
|
|
- list_del(&gov->governor_list);
|
|
|
- mutex_unlock(&cpuidle_lock);
|
|
|
-}
|
|
|
-
|