summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Wood <thomas.wood@intel.com>2014-07-28 16:01:27 +0100
committerThomas Wood <thomas.wood@intel.com>2014-07-30 11:13:13 +0100
commitbb48429a6c6057b51358ce0d506916431d982897 (patch)
treeaafb7ef0d029ecee21f46d6b19fe06dcede98bb3
parentc3ba7740c113d318d030ac408883c3303ca781bb (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.c19
-rw-r--r--lib/igt_kms.h2
2 files changed, 15 insertions, 6 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 20370a90e..740b5ddb7 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 fb0e66ab6..08b46ab85 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);