From 29ee36f2597747c01d5c79c93ed31f5bcd06e219 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Thu, 24 Apr 2014 23:33:09 +0200 Subject: lib: extract kmstest_set_connector_dpms Signed-off-by: Daniel Vetter --- lib/igt_kms.c | 28 ++++++++++++++++++++++++++++ lib/igt_kms.h | 1 + 2 files changed, 29 insertions(+) (limited to 'lib') diff --git a/lib/igt_kms.c b/lib/igt_kms.c index fffad9f6..d00250da 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -180,6 +180,34 @@ int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id) return pfci.pipe; } +void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode) +{ + int i, dpms = 0; + bool found_it = false; + + for (i = 0; i < connector->count_props; i++) { + struct drm_mode_get_property prop; + + prop.prop_id = connector->props[i]; + prop.count_values = 0; + prop.count_enum_blobs = 0; + if (drmIoctl(fd, DRM_IOCTL_MODE_GETPROPERTY, &prop)) + continue; + + if (strcmp(prop.name, "DPMS")) + continue; + + dpms = prop.prop_id; + found_it = true; + break; + } + igt_assert_f(found_it, "DPMS property not found on %d\n", + connector->connector_id); + + igt_assert(drmModeConnectorSetProperty(fd, connector->connector_id, + dpms, mode) == 0); +} + static signed long set_vt_mode(unsigned long mode) { int fd; diff --git a/lib/igt_kms.h b/lib/igt_kms.h index 439a6346..8e80d4be 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -88,6 +88,7 @@ const char *kmstest_pipe_str(int pipe); const char *kmstest_encoder_type_str(int type); const char *kmstest_connector_status_str(int type); const char *kmstest_connector_type_str(int type); +void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode); /* * A small modeset API -- cgit v1.2.3