summaryrefslogtreecommitdiff
path: root/tests/pm_rps.c
diff options
context:
space:
mode:
authorJeff McGee <jeff.mcgee@intel.com>2014-01-28 18:25:06 -0600
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-06 07:46:42 +0100
commit2cbb0fbf5f3dc839a11d23a970948cb91718594e (patch)
tree66c654d1bfe20fda6bc59d705a019b8e1763b3c1 /tests/pm_rps.c
parentceb14b190594b767667d34c284e4afdb1932f973 (diff)
pm_rps: New subtest min-max-config-loaded
Like subtest basic-api, but additionally requires that current frequency is increasing to the configured maximum within reasonable time since we are loaded. Signed-off-by: Jeff McGee <jeff.mcgee@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/pm_rps.c')
-rw-r--r--tests/pm_rps.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/pm_rps.c b/tests/pm_rps.c
index 555bb7c4..709e3413 100644
--- a/tests/pm_rps.c
+++ b/tests/pm_rps.c
@@ -371,6 +371,29 @@ static void idle_check(void)
log("Required %d msec to reach cur=min\n", wait);
}
+#define LOADED_WAIT_TIMESTEP_MSEC 100
+#define LOADED_WAIT_TIMEOUT_MSEC 3000
+static void loaded_check(void)
+{
+ int freqs[NUMFREQ];
+ int wait = 0;
+
+ /* Monitor frequencies until cur increases to max, which should
+ * happen within the allotted time */
+ do {
+ read_freqs(freqs);
+ dump(freqs);
+ checkit(freqs);
+ if (freqs[CUR] == freqs[MAX])
+ break;
+ usleep(1000 * LOADED_WAIT_TIMESTEP_MSEC);
+ wait += LOADED_WAIT_TIMESTEP_MSEC;
+ } while (wait < LOADED_WAIT_TIMEOUT_MSEC);
+
+ igt_assert(freqs[CUR] == freqs[MAX]);
+ log("Required %d msec to reach cur=max\n", wait);
+}
+
static void pm_rps_exit_handler(int sig)
{
if (origfreqs[MIN] > readval(stuff[MAX].filp)) {
@@ -456,5 +479,11 @@ int main(int argc, char **argv)
igt_subtest("min-max-config-idle")
min_max_config(idle_check);
+ igt_subtest("min-max-config-loaded") {
+ load_helper_run();
+ min_max_config(loaded_check);
+ load_helper_stop();
+ }
+
igt_exit();
}