summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-04-24 23:37:05 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-04-30 18:07:58 +0200
commitb38b8a59a8694ef2d2d4c78283c7c697367766d7 (patch)
treeda42b6468c647805c40b9ab1a59fd42b9ee1122b
parent29ee36f2597747c01d5c79c93ed31f5bcd06e219 (diff)
tests/pm_pc8: subtests for runtime pm for dpms
Very basic since I lack a bit ideas. After all with the latest patches runtime pm doesn't make much a difference between dpms off and disabling the outputs completely with SetCrtc. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--tests/pm_pc8.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/pm_pc8.c b/tests/pm_pc8.c
index 9a953269..5a3ebc1d 100644
--- a/tests/pm_pc8.c
+++ b/tests/pm_pc8.c
@@ -84,6 +84,7 @@ enum screen_type {
#define WAIT_STATUS 1
#define WAIT_PC8_RES 2
#define WAIT_EXTRA 4
+#define USE_DPMS 8
int drm_fd, msr_fd, pm_status_fd, pc8_status_fd;
bool has_runtime_pm, has_pc8;
@@ -254,6 +255,17 @@ static bool wait_for_active(void)
return wait_for_pm_status(RUNTIME_PM_STATUS_ACTIVE);
}
+static void disable_all_screens_dpms(struct mode_set_data *data)
+{
+ int i;
+
+ for (i = 0; i < data->res->count_connectors; i++) {
+ drmModeConnectorPtr c = data->connectors[i];
+
+ kmstest_set_connector_dpms(drm_fd, c, DRM_MODE_DPMS_OFF);
+ }
+}
+
static void disable_all_screens(struct mode_set_data *data)
{
int i, rc;
@@ -825,7 +837,11 @@ static void modeset_subtest(enum screen_type type, int rounds, int wait_flags)
igt_require(has_pc8);
for (i = 0; i < rounds; i++) {
- disable_all_screens(&ms_data);
+ if (wait_flags & USE_DPMS)
+ disable_all_screens_dpms(&ms_data);
+ else
+ disable_all_screens(&ms_data);
+
if (wait_flags & WAIT_STATUS)
igt_assert(wait_for_suspended());
if (wait_flags & WAIT_PC8_RES)
@@ -1498,6 +1514,10 @@ int main(int argc, char *argv[])
modeset_subtest(SCREEN_TYPE_LPSP, 1, WAIT_STATUS);
igt_subtest("modeset-non-lpsp")
modeset_subtest(SCREEN_TYPE_NON_LPSP, 1, WAIT_STATUS);
+ igt_subtest("dpms-lpsp")
+ modeset_subtest(SCREEN_TYPE_LPSP, 1, WAIT_STATUS | USE_DPMS);
+ igt_subtest("dpms-non-lpsp")
+ modeset_subtest(SCREEN_TYPE_NON_LPSP, 1, WAIT_STATUS | USE_DPMS);
/* GEM */
igt_subtest("gem-mmap-cpu")