diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_crtc.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_crtc.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c index 65827481c1b1..4442aa355f86 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@ -24,6 +24,7 @@  #include "intel_display_debugfs.h"  #include "intel_display_trace.h"  #include "intel_display_types.h" +#include "intel_drrs.h"  #include "intel_dsi.h"  #include "intel_pipe_crc.h"  #include "intel_psr.h" @@ -367,6 +368,7 @@ int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)  	intel_color_init(crtc); +	intel_crtc_drrs_init(crtc);  	intel_crtc_crc_init(crtc);  	cpu_latency_qos_add_request(&crtc->vblank_pm_qos, PM_QOS_DEFAULT_VALUE); @@ -485,6 +487,8 @@ void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state)  		intel_crtc_has_type(new_crtc_state, INTEL_OUTPUT_DSI);  	DEFINE_WAIT(wait); +	intel_psr_lock(new_crtc_state); +  	if (new_crtc_state->do_async_flip)  		return; @@ -516,7 +520,7 @@ void intel_pipe_update_start(struct intel_crtc_state *new_crtc_state)  	 * VBL interrupts will start the PSR exit and prevent a PSR  	 * re-entry as well.  	 */ -	intel_psr_wait_for_idle(new_crtc_state); +	intel_psr_wait_for_idle_locked(new_crtc_state);  	local_irq_disable(); @@ -630,6 +634,8 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)  	ktime_t end_vbl_time = ktime_get();  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); +	intel_psr_unlock(new_crtc_state); +  	if (new_crtc_state->do_async_flip)  		return;  |