diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/skl_universal_plane.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/skl_universal_plane.c | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index 9b172a1e90de..8ea0598a5a07 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -17,7 +17,6 @@  #include "intel_fb.h"  #include "intel_fbc.h"  #include "intel_psr.h" -#include "intel_sprite.h"  #include "skl_scaler.h"  #include "skl_universal_plane.h"  #include "skl_watermark.h" @@ -642,7 +641,7 @@ icl_plane_disable_arm(struct intel_plane *plane,  	skl_write_plane_wm(plane, crtc_state); -	intel_psr2_disable_plane_sel_fetch(plane, crtc_state); +	intel_psr2_disable_plane_sel_fetch_arm(plane, crtc_state);  	intel_de_write_fw(dev_priv, PLANE_CTL(pipe, plane_id), 0);  	intel_de_write_fw(dev_priv, PLANE_SURF(pipe, plane_id), 0);  } @@ -1260,7 +1259,7 @@ icl_plane_update_noarm(struct intel_plane *plane,  	if (plane_state->force_black)  		icl_plane_csc_load_black(plane); -	intel_psr2_program_plane_sel_fetch(plane, crtc_state, plane_state, color_plane); +	intel_psr2_program_plane_sel_fetch_noarm(plane, crtc_state, plane_state, color_plane);  }  static void @@ -1287,6 +1286,8 @@ icl_plane_update_arm(struct intel_plane *plane,  	if (plane_state->scaler_id >= 0)  		skl_program_plane_scaler(plane, crtc_state, plane_state); +	intel_psr2_program_plane_sel_fetch_arm(plane, crtc_state, plane_state); +  	/*  	 * The control register self-arms if the plane was previously  	 * disabled. Try to make the plane enable atomic by writing @@ -2180,7 +2181,7 @@ static bool gen12_plane_has_mc_ccs(struct drm_i915_private *i915,  	if (DISPLAY_VER(i915) < 12)  		return false; -	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */ +	/* Wa_14010477008 */  	if (IS_DG1(i915) || IS_ROCKETLAKE(i915) ||  	    IS_TGL_DISPLAY_STEP(i915, STEP_A0, STEP_D0))  		return false; @@ -2474,6 +2475,12 @@ skl_get_initial_plane_config(struct intel_crtc *crtc,  		goto error;  	} +	if (!dev_priv->params.enable_dpt && +	    intel_fb_modifier_uses_dpt(dev_priv, fb->modifier)) { +		drm_dbg_kms(&dev_priv->drm, "DPT disabled, skipping initial FB\n"); +		goto error; +	} +  	/*  	 * DRM_MODE_ROTATE_ is counter clockwise to stay compatible with Xrandr  	 * while i915 HW rotation is clockwise, thats why this swapping.  | 
