summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorChandra Konduru2015-04-08 00:28:41 +0200
committerDaniel Vetter2015-04-13 11:30:54 +0200
commit663a36407a71b3a98cea087f9a215660a6d6e387 (patch)
treedad0ce263345a9c1e113a7e250e2ccde64e926aa /drivers/gpu/drm/i915/intel_display.c
parentdrm/i915: Dump scaler_state too as part of dumping crtc_state (diff)
downloadkernel-qcow2-linux-663a36407a71b3a98cea087f9a215660a6d6e387.tar.gz
kernel-qcow2-linux-663a36407a71b3a98cea087f9a215660a6d6e387.tar.xz
kernel-qcow2-linux-663a36407a71b3a98cea087f9a215660a6d6e387.zip
drm/i915: Preserve scaler state when clearing crtc_state
crtc_state is cleared during mode set which wipes out complete scaler state too. This is causing issues. To fix, ensure scaler state is preserved because it contains not only crtc scaler usage, but also planes using scalers on this crtc. Signed-off-by: Chandra Konduru <chandra.konduru@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@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.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 26f1602bec68..c14ab7b2f831 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10839,11 +10839,14 @@ static void
clear_intel_crtc_state(struct intel_crtc_state *crtc_state)
{
struct drm_crtc_state tmp_state;
+ struct intel_crtc_scaler_state scaler_state;
- /* Clear only the intel specific part of the crtc state */
+ /* Clear only the intel specific part of the crtc state excluding scalers */
tmp_state = crtc_state->base;
+ scaler_state = crtc_state->scaler_state;
memset(crtc_state, 0, sizeof *crtc_state);
crtc_state->base = tmp_state;
+ crtc_state->scaler_state = scaler_state;
}
static struct intel_crtc_state *