linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] PM / devfreq: set min/max freq limit from freq table
@ 2013-01-08  5:50 Rajagopal Venkat
  2013-01-08  5:50 ` [PATCH 2/3] PM / devfreq: fix stats start time stamp Rajagopal Venkat
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Rajagopal Venkat @ 2013-01-08  5:50 UTC (permalink / raw)
  To: myungjoo.ham, kyungmin.park, mturquette, rjw
  Cc: patches, linaro-dev, linux-pm, linux-kernel, Rajagopal Venkat

Set devfreq device min and max frequency limits when device
is added to devfreq, provided frequency table is supplied.
This helps governors to suggest target frequency with in
limits.

Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
---
 drivers/devfreq/devfreq.c |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index a8f0173..5782c9b 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -69,6 +69,29 @@ static struct devfreq *find_device_devfreq(struct device *dev)
 }
 
 /**
+ * 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
  * @freq:	the target frequency
@@ -476,6 +499,7 @@ struct devfreq *devfreq_add_device(struct device *dev,
 						devfreq->profile->max_state,
 						GFP_KERNEL);
 	devfreq->last_stat_updated = jiffies;
+	devfreq_set_freq_limits(devfreq);
 
 	dev_set_name(&devfreq->dev, dev_name(dev));
 	err = device_register(&devfreq->dev);
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-02-05 10:43 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-08  5:50 [PATCH 1/3] PM / devfreq: set min/max freq limit from freq table Rajagopal Venkat
2013-01-08  5:50 ` [PATCH 2/3] PM / devfreq: fix stats start time stamp Rajagopal Venkat
2013-01-14 14:42   ` MyungJoo Ham
2013-01-15 11:40     ` Rajagopal Venkat
2013-01-08  5:50 ` [PATCH 3/3] PM / devfreq: account suspend/resume for stats Rajagopal Venkat
2013-01-14 14:48   ` MyungJoo Ham
2013-01-15 11:46     ` Rajagopal Venkat
2013-02-04  8:34       ` Rajagopal Venkat
2013-02-05  6:29       ` MyungJoo Ham
2013-01-14 14:36 ` [PATCH 1/3] PM / devfreq: set min/max freq limit from freq table MyungJoo Ham
2013-01-15 11:21   ` Rajagopal Venkat
2013-02-04  8:33     ` Rajagopal Venkat
2013-02-05  6:51     ` MyungJoo Ham
2013-02-05 10:42       ` Rajagopal Venkat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).