diff options
author | Brian Starkey <brian.starkey@arm.com> | 2017-06-16 15:00:06 +0100 |
---|---|---|
committer | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2017-06-20 16:27:53 +0300 |
commit | c4d4d09428f647eac758ca26596248dc9573f3b5 (patch) | |
tree | ee8b18eb48603bcf9ae24ed071fa815beffbe0f6 /lib | |
parent | 31f71d62d5ffb1ab6298517c5cd5f0dac3b8a35a (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.c | 12 |
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; |