diff options
Diffstat (limited to 'drivers/cpuidle/governor.c')
| -rw-r--r-- | drivers/cpuidle/governor.c | 46 | 
1 files changed, 3 insertions, 43 deletions
diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c index 724c164d31c..ca89412f512 100644 --- a/drivers/cpuidle/governor.c +++ b/drivers/cpuidle/governor.c @@ -81,6 +81,9 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)  	if (!gov || !gov->select)  		return -EINVAL; +	if (cpuidle_disabled()) +		return -ENODEV; +  	mutex_lock(&cpuidle_lock);  	if (__cpuidle_find_governor(gov->name) == NULL) {  		ret = 0; @@ -93,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); -} -  | 
