has_panel_replay flag is used to check panel replay state which is part of crtc_state structure. v1: RFC version. v2: has_panel_replay flag updated as per hw readout. [Jani] Signed-off-by: Animesh Manna <animesh.manna@xxxxxxxxx> --- drivers/gpu/drm/i915/display/intel_display.c | 1 + drivers/gpu/drm/i915/display/intel_psr.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 4f0badb11bbb..a30b6fe87dfc 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -8136,6 +8136,7 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config, PIPE_CONF_CHECK_BOOL(has_psr); PIPE_CONF_CHECK_BOOL(has_psr2); PIPE_CONF_CHECK_BOOL(enable_psr2_sel_fetch); + PIPE_CONF_CHECK_BOOL(has_panel_replay); PIPE_CONF_CHECK_I(dc3co_exitline); } } diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 49f6242c2fde..d1a30b82ce6f 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1054,6 +1054,12 @@ void intel_psr_get_config(struct intel_encoder *encoder, pipe_config->has_psr2 = intel_dp->psr.psr2_enabled; pipe_config->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_VSC); + if (HAS_PANEL_REPLAY(dev_priv) && HAS_DP20(dev_priv)) { + val = intel_de_read(dev_priv, TRANS_DP2_CTL(intel_dp->psr.transcoder)); + if (val & TRANS_DP2_PANEL_REPLAY_ENABLE) + pipe_config->has_panel_replay = true; + } + if (!intel_dp->psr.psr2_enabled) goto unlock; -- 2.29.0