mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-14 12:37:32 +00:00
drm/i915: Don't update staged config during force restore modesets
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>
This commit is contained in:
parent
e62d8dc0aa
commit
0d26fb891a
1 changed files with 3 additions and 5 deletions
|
@ -11386,10 +11386,6 @@ static void intel_modeset_fixup_state(struct drm_atomic_state *state)
|
||||||
crtc->base.enabled = crtc->base.state->enable;
|
crtc->base.enabled = crtc->base.state->enable;
|
||||||
crtc->config = to_intel_crtc_state(crtc->base.state);
|
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
|
static void
|
||||||
|
@ -12654,8 +12650,10 @@ static int intel_set_mode_with_config(struct drm_crtc *crtc,
|
||||||
|
|
||||||
ret = __intel_set_mode(crtc, pipe_config);
|
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);
|
intel_modeset_check_state(crtc->dev);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue