diff options
Diffstat (limited to 'drivers/devfreq/devfreq.c')
| -rw-r--r-- | drivers/devfreq/devfreq.c | 23 | 
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 98657d3b9435..2e8d01d47f69 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -152,11 +152,8 @@ void devfreq_get_freq_range(struct devfreq *devfreq,  				(unsigned long)HZ_PER_KHZ * qos_max_freq);  	/* Apply constraints from OPP interface */ -	*min_freq = max(*min_freq, devfreq->scaling_min_freq); -	*max_freq = min(*max_freq, devfreq->scaling_max_freq); - -	if (*min_freq > *max_freq) -		*min_freq = *max_freq; +	*max_freq = clamp(*max_freq, devfreq->scaling_min_freq, devfreq->scaling_max_freq); +	*min_freq = clamp(*min_freq, devfreq->scaling_min_freq, *max_freq);  }  EXPORT_SYMBOL(devfreq_get_freq_range); @@ -807,7 +804,6 @@ struct devfreq *devfreq_add_device(struct device *dev,  {  	struct devfreq *devfreq;  	struct devfreq_governor *governor; -	unsigned long min_freq, max_freq;  	int err = 0;  	if (!dev || !profile || !governor_name) { @@ -835,6 +831,7 @@ struct devfreq *devfreq_add_device(struct device *dev,  	mutex_lock(&devfreq->lock);  	devfreq->dev.parent = dev;  	devfreq->dev.class = devfreq_class; +	devfreq->dev.groups = profile->dev_groups;  	devfreq->dev.release = devfreq_dev_release;  	INIT_LIST_HEAD(&devfreq->node);  	devfreq->profile = profile; @@ -875,8 +872,6 @@ struct devfreq *devfreq_add_device(struct device *dev,  		goto err_dev;  	} -	devfreq_get_freq_range(devfreq, &min_freq, &max_freq); -  	devfreq->suspend_freq = dev_pm_opp_get_suspend_opp_freq(dev);  	devfreq->opp_table = dev_pm_opp_get_opp_table(dev);  	if (IS_ERR(devfreq->opp_table)) @@ -1382,15 +1377,11 @@ int devfreq_remove_governor(struct devfreq_governor *governor)  		int ret;  		struct device *dev = devfreq->dev.parent; +		if (!devfreq->governor) +			continue; +  		if (!strncmp(devfreq->governor->name, governor->name,  			     DEVFREQ_NAME_LEN)) { -			/* we should have a devfreq governor! */ -			if (!devfreq->governor) { -				dev_warn(dev, "%s: Governor %s NOT present\n", -					 __func__, governor->name); -				continue; -				/* Fall through */ -			}  			ret = devfreq->governor->event_handler(devfreq,  						DEVFREQ_GOV_STOP, NULL);  			if (ret) { @@ -1743,7 +1734,7 @@ static ssize_t trans_stat_show(struct device *dev,  	for (i = 0; i < max_state; i++) {  		if (len >= PAGE_SIZE - 1)  			break; -		if (df->freq_table[2] == df->previous_freq) +		if (df->freq_table[i] == df->previous_freq)  			len += sysfs_emit_at(buf, len, "*");  		else  			len += sysfs_emit_at(buf, len, " ");  | 
