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>
This commit is contained in:
Thomas Wood 2014-07-28 16:01:27 +01:00
parent c3ba7740c1
commit bb48429a6c
2 changed files with 15 additions and 6 deletions

View File

@ -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);
}

View File

@ -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);