summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2014-11-05 14:26:09 -0800
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-11-14 10:29:23 +0100
commit206645910b9796bff13fcdb67bdca166b724ba62 (patch)
tree5b5ee2e7b035aa8067fdf9030d054e56c53ded8e /drivers/gpu/drm/i915/intel_display.c
parente43823ecc24488c464587f7daf462548f2396e4f (diff)
downloadlwn-206645910b9796bff13fcdb67bdca166b724ba62.tar.gz
lwn-206645910b9796bff13fcdb67bdca166b724ba62.zip
drm/i915: check for audio and infoframe changes across mode sets v2
If these change (e.g. after a modeset following a fastboot), we need to do a full mode set. v2: - put under pipe_config check so we don't deref a null state (Jesse) Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 8b5efe6f3ee6..e9b579fd9fc4 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -11325,8 +11325,18 @@ static int intel_crtc_set_config(struct drm_mode_set *set)
&modeset_pipes,
&prepare_pipes,
&disable_pipes);
- if (IS_ERR(pipe_config))
+ if (IS_ERR(pipe_config)) {
goto fail;
+ } else if (pipe_config) {
+ if (to_intel_crtc(set->crtc)->new_config->has_audio !=
+ to_intel_crtc(set->crtc)->config.has_audio)
+ config->mode_changed = true;
+
+ /* Force mode sets for any infoframe stuff */
+ if (to_intel_crtc(set->crtc)->new_config->has_infoframe ||
+ to_intel_crtc(set->crtc)->config.has_infoframe)
+ config->mode_changed = true;
+ }
/* set_mode will free it in the mode_changed case */
if (!config->mode_changed)