diff options
author | Thomas Wood <thomas.wood@intel.com> | 2014-07-09 10:38:05 +0100 |
---|---|---|
committer | Thomas Wood <thomas.wood@intel.com> | 2014-07-11 11:47:46 +0100 |
commit | b81020526f1d08840f9ee87d31e958ddca4cce8a (patch) | |
tree | c9aad608ecee2fed8ace952c4857fffadfd63baf | |
parent | eef768f283466b6d7cb3f08381f72ccf3951dc99 (diff) |
lib: allow the edid to be reset
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
-rw-r--r-- | lib/igt_kms.c | 7 | ||||
-rw-r--r-- | tests/kms_force_connector.c | 7 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c index aa548446..0c1143f1 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -476,6 +476,8 @@ void kmstest_force_connector(int drm_fd, drmModeConnector *connector, enum * * Set the EDID data on @connector to @edid. See #generic_edid and * #kmstest_generic_edid for a set of generic EDID data blocks. + * + * If @length is zero, the forced EDID will be removed. */ void kmstest_force_edid(int drm_fd, drmModeConnector *connector, const unsigned char *edid, size_t length) @@ -491,7 +493,10 @@ void kmstest_force_edid(int drm_fd, drmModeConnector *connector, igt_assert(debugfs_fd != -1); - ret = write(debugfs_fd, edid, length); + if (length == 0) + ret = write(debugfs_fd, "reset", 5); + else + ret = write(debugfs_fd, edid, length); close(debugfs_fd); igt_assert(ret != -1); diff --git a/tests/kms_force_connector.c b/tests/kms_force_connector.c index 54a92c5f..39cacb93 100644 --- a/tests/kms_force_connector.c +++ b/tests/kms_force_connector.c @@ -93,6 +93,13 @@ main (int argc, char **argv) drmModeFreeConnector(temp); + /* remove edid */ + kmstest_force_edid(drm_fd, connector, NULL, 0); + temp = drmModeGetConnector(drm_fd, connector->connector_id); + /* the connector should now have the 5 default modes */ + igt_assert(temp->count_modes == 5); + drmModeFreeConnector(temp); + /* force the connector off */ kmstest_force_connector(drm_fd, connector, FORCE_CONNECTOR_OFF); temp = drmModeGetConnector(drm_fd, connector->connector_id); |