summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrian Starkey <brian.starkey@arm.com>2017-06-16 15:00:06 +0100
committerArkadiusz Hiler <arkadiusz.hiler@intel.com>2017-06-20 16:27:53 +0300
commitc4d4d09428f647eac758ca26596248dc9573f3b5 (patch)
treeee8b18eb48603bcf9ae24ed071fa815beffbe0f6 /lib
parent31f71d62d5ffb1ab6298517c5cd5f0dac3b8a35a (diff)
lib/igt_kms: Fix override_mode handling
Changelog: - v2: removed the forced overwrite of output->config.default_mode - v1: original submission by Brian igt_display_commit isn't refreshing all outputs anymore, which means that an override mode may never get picked up. Instead of forcing a reprobe to handle copying the override_mode into default_mode, just change igt_output_get_mode() to return the override_mode if it's been set, and remove the old code which would directly overwrite default_mode. This should be more robust, as igt_output_get_mode() will always return the correct mode, without needing the output to be reprobed. This change means that output->config.default_mode always contains the "non-overridden" default mode. Signed-off-by: Brian Starkey <brian.starkey@arm.com> Signed-off-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/igt_kms.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 91d228cf..faf9df2f 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1586,9 +1586,6 @@ static void igt_output_refresh(igt_output_t *output)
BROADCAST_RGB_FULL);
}
- if (output->use_override_mode)
- output->config.default_mode = output->override_mode;
-
if (output->config.pipe == PIPE_NONE)
return;
@@ -2847,7 +2844,10 @@ const char *igt_output_name(igt_output_t *output)
drmModeModeInfo *igt_output_get_mode(igt_output_t *output)
{
- return &output->config.default_mode;
+ if (output->use_override_mode)
+ return &output->override_mode;
+ else
+ return &output->config.default_mode;
}
/**
@@ -2865,10 +2865,6 @@ void igt_output_override_mode(igt_output_t *output, drmModeModeInfo *mode)
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;