diff options
author | Thomas Wood <thomas.wood@intel.com> | 2014-07-28 16:01:27 +0100 |
---|---|---|
committer | Thomas Wood <thomas.wood@intel.com> | 2014-07-30 11:13:13 +0100 |
commit | bb48429a6c6057b51358ce0d506916431d982897 (patch) | |
tree | aafb7ef0d029ecee21f46d6b19fe06dcede98bb3 | |
parent | c3ba7740c113d318d030ac408883c3303ca781bb (diff) |
lib: don't abort if forcing the connector state fails
Ensure tests using igt_enable_connectors can still run even if the
relevant debugfs files are not available.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
-rw-r--r-- | lib/igt_kms.c | 19 | ||||
-rw-r--r-- | lib/igt_kms.h | 2 |
2 files changed, 15 insertions, 6 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 20370a90..740b5ddb 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -429,9 +429,11 @@ static char* get_debugfs_connector_path(int drm_fd, drmModeConnector *connector, * @state: state to force on @connector * * Force the specified state on the specified connector. + * + * Returns: true on success */ -void kmstest_force_connector(int drm_fd, drmModeConnector *connector, enum - kmstest_force_connector_state state) +bool kmstest_force_connector(int drm_fd, drmModeConnector *connector, + enum kmstest_force_connector_state state) { char *path; const char *value; @@ -458,12 +460,15 @@ void kmstest_force_connector(int drm_fd, drmModeConnector *connector, enum debugfs_fd = open(path, O_WRONLY | O_TRUNC); free(path); - igt_assert(debugfs_fd != -1); + if (debugfs_fd == -1) { + return false; + } ret = write(debugfs_fd, value, strlen(value)); close(debugfs_fd); igt_assert(ret != -1); + return (ret == -1) ? false : true; } /** @@ -1509,8 +1514,12 @@ void igt_enable_connectors(void) continue; /* just enable VGA for now */ - if (c->connector_type == DRM_MODE_CONNECTOR_VGA) - kmstest_force_connector(drm_fd, c, FORCE_CONNECTOR_ON); + if (c->connector_type == DRM_MODE_CONNECTOR_VGA) { + if (!kmstest_force_connector(drm_fd, c, FORCE_CONNECTOR_ON)) + igt_info("Unable to force state on %s-%d\n", + kmstest_connector_type_str(c->connector_type), + c->connector_type_id); + } drmModeFreeConnector(c); } diff --git a/lib/igt_kms.h b/lib/igt_kms.h index fb0e66ab..08b46ab8 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -130,7 +130,7 @@ int kmstest_get_connector_default_mode(int drm_fd, drmModeConnector *connector, int kmstest_get_connector_config(int drm_fd, uint32_t connector_id, unsigned long crtc_idx_mask, struct kmstest_connector_config *config); -void kmstest_force_connector(int fd, drmModeConnector *connector, +bool kmstest_force_connector(int fd, drmModeConnector *connector, enum kmstest_force_connector_state state); void kmstest_force_edid(int drm_fd, drmModeConnector *connector, const unsigned char *edid, size_t length); |