diff mbox

[i-g-t,v2,14/15] igt_kms: Allow disabling previous override mode

Message ID 1467798955-7324-15-git-send-email-maarten.lankhorst@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maarten Lankhorst July 6, 2016, 9:55 a.m. UTC
---
 lib/igt_kms.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 681f2bb41b07..263f32883beb 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2378,7 +2378,7 @@  drmModeModeInfo *igt_output_get_mode(igt_output_t *output)
 /**
  * igt_output_override_mode:
  * @output: Output of which the mode will be overridden
- * @mode: New mode
+ * @mode: New mode, or NULL to disable override.
  *
  * Overrides the output's mode with @mode, so that it is used instead of the
  * mode obtained with get connectors. Note that the mode is used without
@@ -2388,8 +2388,14 @@  void igt_output_override_mode(igt_output_t *output, drmModeModeInfo *mode)
 {
 	igt_pipe_t *pipe = igt_output_get_driving_pipe(output);
 
-	output->override_mode = *mode;
-	output->use_override_mode = true;
+	if (mode)
+		output->override_mode = *mode;
+	else /* restore default_mode, may have been overwritten in igt_output_refresh */
+		kmstest_get_connector_default_mode(output->display->drm_fd,
+						   output->config.connector,
+						   &output->config.default_mode);
+
+	output->use_override_mode = !!mode;
 
 	if (pipe)
 		pipe->mode_changed = true;