Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f89d94cd authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "FROMLIST: PM / devfreq: set min/max freq limit from freq table" into msm-4.9

parents 43f5bad4 f517b3a4
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -69,6 +69,29 @@ static struct devfreq *find_device_devfreq(struct device *dev)
	return ERR_PTR(-ENODEV);
}

/**
 * devfreq_set_freq_limits() - Set min and max frequency from freq_table
 * @devfreq:	the devfreq instance
 */
static void devfreq_set_freq_limits(struct devfreq *devfreq)
{
	int idx;
	unsigned long min = ~0, max = 0;

	if (!devfreq->profile->freq_table)
		return;

	for (idx = 0; idx < devfreq->profile->max_state; idx++) {
		if (min > devfreq->profile->freq_table[idx])
			min = devfreq->profile->freq_table[idx];
		if (max < devfreq->profile->freq_table[idx])
			max = devfreq->profile->freq_table[idx];
	}

	devfreq->min_freq = min;
	devfreq->max_freq = max;
}

/**
 * devfreq_get_freq_level() - Lookup freq_table for the frequency
 * @devfreq:	the devfreq instance
@@ -569,6 +592,7 @@ struct devfreq *devfreq_add_device(struct device *dev,
		devfreq_set_freq_table(devfreq);
		mutex_lock(&devfreq->lock);
	}
	devfreq_set_freq_limits(devfreq);

	dev_set_name(&devfreq->dev, "%s", dev_name(dev));
	err = device_register(&devfreq->dev);