Skip to content

Commit

Permalink
drm/i915: Don't update staged config during force restore modesets
Browse files Browse the repository at this point in the history
The force restore path relies on the staged config to preserve the
configuration used before a suspend/resume cycle. The update done to it
in intel_modeset_fixup_state() would cause that information to be lost
after the first modeset, making it impossible to restore the modes for
pipes B and C.

References: https://bugs.freedesktop.org/show_bug.cgi?id=90468
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
  • Loading branch information
Ander Conselvan de Oliveira authored and Jani Nikula committed Jun 17, 2015
1 parent e62d8dc commit 0d26fb8
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -11386,10 +11386,6 @@ static void intel_modeset_fixup_state(struct drm_atomic_state *state)
crtc->base.enabled = crtc->base.state->enable;
crtc->config = to_intel_crtc_state(crtc->base.state);
}

/* Copy the new configuration to the staged state, to keep the few
* pieces of code that haven't been converted yet happy */
intel_modeset_update_staged_output_state(state->dev);
}

static void
Expand Down Expand Up @@ -12654,8 +12650,10 @@ static int intel_set_mode_with_config(struct drm_crtc *crtc,

ret = __intel_set_mode(crtc, pipe_config);

if (ret == 0 && force_restore)
if (ret == 0 && force_restore) {
intel_modeset_update_staged_output_state(crtc->dev);
intel_modeset_check_state(crtc->dev);
}

return ret;
}
Expand Down

0 comments on commit 0d26fb8

Please sign in to comment.