drm/i915: Move DRRS enable/disable higher up
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 11 Mar 2022 17:24:25 +0000 (19:24 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 14 Mar 2022 22:16:17 +0000 (00:16 +0200)
No reason to keep the DRRS enable/disable hidden insider the encoder
hooks. Let's just move them all the way up into platform independent
code so that all platforms get to use them. These are nops when
the state computation doesn't think DRRS is possible.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220311172428.14685-14-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_ddi.c
drivers/gpu/drm/i915/display/intel_display.c

index a3bf4e876fb4910aed253bef3f964b0b6c306dfa..e2b297d2c295a71e0400972c6d0eedd43cf4f8b5 100644 (file)
@@ -2820,8 +2820,6 @@ static void intel_enable_ddi_dp(struct intel_atomic_state *state,
        if (!dig_port->lspcon.active || dig_port->dp.has_hdmi_sink)
                intel_dp_set_infoframes(encoder, true, crtc_state, conn_state);
 
-       intel_drrs_enable(crtc_state);
-
        if (crtc_state->has_audio)
                intel_audio_codec_enable(encoder, crtc_state, conn_state);
 
@@ -2963,7 +2961,6 @@ static void intel_disable_ddi_dp(struct intel_atomic_state *state,
                intel_audio_codec_disable(encoder,
                                          old_crtc_state, old_conn_state);
 
-       intel_drrs_disable(old_crtc_state);
        intel_psr_disable(intel_dp, old_crtc_state);
        intel_edp_backlight_off(old_conn_state);
        /* Disable the decompression in DP Sink */
index 2c63cd33ede96f24d10e7e7c35e2f5fa90538458..6817a3dcf72ba3d9b2cfd2cf56b0c3b216f1b862 100644 (file)
@@ -8114,6 +8114,8 @@ static void intel_enable_crtc(struct intel_atomic_state *state,
        if (intel_crtc_is_bigjoiner_slave(new_crtc_state))
                return;
 
+       intel_drrs_enable(new_crtc_state);
+
        /* vblanks work again, re-enable pipe CRC. */
        intel_crtc_enable_pipe_crc(crtc);
 }
@@ -8183,6 +8185,8 @@ static void intel_old_crtc_state_disables(struct intel_atomic_state *state,
         */
        intel_crtc_disable_pipe_crc(crtc);
 
+       intel_drrs_disable(old_crtc_state);
+
        dev_priv->display->crtc_disable(state, crtc);
        crtc->active = false;
        intel_fbc_disable(crtc);