diff mbox series

[1/5] drm/i915/display: Fill PSR state during hardware configuration read out

Message ID 20210418002126.87882-1-jose.souza@intel.com (mailing list archive)
State New, archived
Headers show
Series [1/5] drm/i915/display: Fill PSR state during hardware configuration read out | expand

Commit Message

Souza, Jose April 18, 2021, 12:21 a.m. UTC
So far if we had a mismatch between the state asked and what was
programmed in hardware for PSR, this mismatch would go unnoticed.

So here adding the PSR to the hardware configuration readout,
EDP_PSR_CTL and EDP_PSR2_CTL can't be directly read because its state
flips due to other factors like frontbuffer modifications and CRC.

Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c     |  2 +
 drivers/gpu/drm/i915/display/intel_display.c |  5 +++
 drivers/gpu/drm/i915/display/intel_psr.c     | 47 ++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_psr.h     |  3 ++
 4 files changed, 57 insertions(+)

Comments

Sripada, Radhakrishna May 10, 2021, 11:45 p.m. UTC | #1
On Sat, Apr 17, 2021 at 05:21:22PM -0700, José Roberto de Souza wrote:
> So far if we had a mismatch between the state asked and what was
> programmed in hardware for PSR, this mismatch would go unnoticed.
> 
> So here adding the PSR to the hardware configuration readout,
> EDP_PSR_CTL and EDP_PSR2_CTL can't be directly read because its state
> flips due to other factors like frontbuffer modifications and CRC.
> 
Minor nit-pick below with that fixed
Reviewed-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c     |  2 +
>  drivers/gpu/drm/i915/display/intel_display.c |  5 +++
>  drivers/gpu/drm/i915/display/intel_psr.c     | 47 ++++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_psr.h     |  3 ++
>  4 files changed, 57 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 4ef573883412..f69ed3c4c30a 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3707,6 +3707,8 @@ static void intel_ddi_get_config(struct intel_encoder *encoder,
>  
>  	intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA);
>  	intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC);
> +
> +	intel_psr_get_config(encoder, pipe_config);
>  }
>  
>  void intel_ddi_get_clock(struct intel_encoder *encoder,
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 9c13d0ac022b..ecdca523e364 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -8350,6 +8350,11 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
>  	PIPE_CONF_CHECK_I(vrr.flipline);
>  	PIPE_CONF_CHECK_I(vrr.pipeline_full);
>  
> +	PIPE_CONF_CHECK_BOOL(has_psr);
> +	PIPE_CONF_CHECK_BOOL(has_psr2);
> +	PIPE_CONF_CHECK_BOOL(enable_psr2_sel_fetch);
> +	PIPE_CONF_CHECK_I(dc3co_exitline);
> +
>  #undef PIPE_CONF_CHECK_X
>  #undef PIPE_CONF_CHECK_I
>  #undef PIPE_CONF_CHECK_BOOL
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 4ad756e238c5..bd7997a3ef7c 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -886,6 +886,53 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
>  	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_VSC);
>  }
>  
> +void intel_psr_get_config(struct intel_encoder *encoder,
> +			  struct intel_crtc_state *pipe_config)
> +{
> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> +	struct intel_dp *intel_dp;
> +	u32 val;
> +
> +	if (!dig_port)
> +		return;
> +
> +	intel_dp = &dig_port->dp;
> +	if (!CAN_PSR(intel_dp))
> +		return;
> +
> +	mutex_lock(&intel_dp->psr.lock);
> +	if (!intel_dp->psr.enabled) {
goto unlock: should suffice here instead of unlock and return.

-RK
> +		mutex_unlock(&intel_dp->psr.lock);
> +		return;
> +	}
> +
> +	/*
> +	 * Not possible to read EDP_PSR/PSR2_CTL registers as it is
> +	 * enabled/disabled because of frontbuffer tracking and others.
> +	 */
> +	pipe_config->has_psr = true;
> +	pipe_config->has_psr2 = intel_dp->psr.psr2_enabled;
> +	pipe_config->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_VSC);
> +
> +	if (!intel_dp->psr.psr2_enabled)
> +		goto unlock;
> +
> +	if (HAS_PSR2_SEL_FETCH(dev_priv)) {
> +		val = intel_de_read(dev_priv, PSR2_MAN_TRK_CTL(intel_dp->psr.transcoder));
> +		if (val & PSR2_MAN_TRK_CTL_ENABLE)
> +			pipe_config->enable_psr2_sel_fetch = true;
> +	}
> +
> +	if (DISPLAY_VER(dev_priv) >= 12) {
> +		val = intel_de_read(dev_priv, EXITLINE(intel_dp->psr.transcoder));
> +		val &= EXITLINE_MASK;
> +		pipe_config->dc3co_exitline = val;
> +	}
> +unlock:
> +	mutex_unlock(&intel_dp->psr.lock);
> +}
> +
>  static void intel_psr_activate(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.h b/drivers/gpu/drm/i915/display/intel_psr.h
> index 0491a49ffd50..e3db85e97f4c 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.h
> +++ b/drivers/gpu/drm/i915/display/intel_psr.h
> @@ -17,6 +17,7 @@ struct intel_crtc;
>  struct intel_atomic_state;
>  struct intel_plane_state;
>  struct intel_plane;
> +struct intel_encoder;
>  
>  void intel_psr_init_dpcd(struct intel_dp *intel_dp);
>  void intel_psr_enable(struct intel_dp *intel_dp,
> @@ -37,6 +38,8 @@ void intel_psr_flush(struct drm_i915_private *dev_priv,
>  void intel_psr_init(struct intel_dp *intel_dp);
>  void intel_psr_compute_config(struct intel_dp *intel_dp,
>  			      struct intel_crtc_state *crtc_state);
> +void intel_psr_get_config(struct intel_encoder *encoder,
> +			  struct intel_crtc_state *pipe_config);
>  void intel_psr_irq_handler(struct intel_dp *intel_dp, u32 psr_iir);
>  void intel_psr_short_pulse(struct intel_dp *intel_dp);
>  void intel_psr_wait_for_idle(const struct intel_crtc_state *new_crtc_state);
> -- 
> 2.31.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Souza, Jose May 11, 2021, 7:32 p.m. UTC | #2
On Sun, 2021-04-18 at 03:00 +0000, Patchwork wrote:
Patch Details
Series: series starting with [1/5] drm/i915/display: Fill PSR state during hardware configuration read out
URL:    https://patchwork.freedesktop.org/series/89204/
State:  success
Details:        https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/index.html
CI Bug Log - changes from CI_DRM_9979_full -> Patchwork_19945_full
Summary

SUCCESS

No regressions found.

Thanks for the review RK, patches pushed.

Known issues

Here are the changes found in Patchwork_19945_full that come from known issues:

IGT changes
Issues hit

  *   igt@gem_ctx_persistence@legacy-engines-hang@blt:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl1/igt@gem_ctx_persistence@legacy-engines-hang@blt.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271>) +53 similar issues
  *   igt@gem_ctx_persistence@legacy-engines-mixed-process:

     *   shard-snb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-snb7/igt@gem_ctx_persistence@legacy-engines-mixed-process.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#1099<https://gitlab.freedesktop.org/drm/intel/issues/1099>) +4 similar issues
  *   igt@gem_eio@unwedge-stress:

     *   shard-snb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-snb2/igt@gem_eio@unwedge-stress.html> (i915#3354<https://gitlab.freedesktop.org/drm/intel/issues/3354>)
  *   igt@gem_exec_fair@basic-deadline:

     *   shard-kbl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl2/igt@gem_exec_fair@basic-deadline.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl6/igt@gem_exec_fair@basic-deadline.html> (i915#2846<https://gitlab.freedesktop.org/drm/intel/issues/2846>)

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@gem_exec_fair@basic-deadline.html> (i915#2846<https://gitlab.freedesktop.org/drm/intel/issues/2846>)

  *   igt@gem_exec_fair@basic-pace@vcs0:

     *   shard-tglb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-tglb6/igt@gem_exec_fair@basic-pace@vcs0.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-tglb6/igt@gem_exec_fair@basic-pace@vcs0.html> (i915#2842<https://gitlab.freedesktop.org/drm/intel/issues/2842>)
  *   igt@gem_exec_reloc@basic-wide-active@bcs0:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@gem_exec_reloc@basic-wide-active@bcs0.html> (i915#2389<https://gitlab.freedesktop.org/drm/intel/issues/2389>) +3 similar issues
  *   igt@gem_exec_reloc@basic-wide-active@vcs1:

     *   shard-iclb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb4/igt@gem_exec_reloc@basic-wide-active@vcs1.html> (i915#2389<https://gitlab.freedesktop.org/drm/intel/issues/2389>)
  *   igt@gem_huc_copy@huc-copy:

     *   shard-tglb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-tglb2/igt@gem_huc_copy@huc-copy.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-tglb6/igt@gem_huc_copy@huc-copy.html> (i915#2190<https://gitlab.freedesktop.org/drm/intel/issues/2190>)
  *   igt@gem_userptr_blits@input-checking:

     *   shard-snb: NOTRUN -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-snb2/igt@gem_userptr_blits@input-checking.html> (i915#3002<https://gitlab.freedesktop.org/drm/intel/issues/3002>)
  *   igt@gen9_exec_parse@bb-large:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@gen9_exec_parse@bb-large.html> (i915#3296<https://gitlab.freedesktop.org/drm/intel/issues/3296>)
  *   igt@i915_suspend@fence-restore-tiled2untiled:

     *   shard-apl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-apl7/igt@i915_suspend@fence-restore-tiled2untiled.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl1/igt@i915_suspend@fence-restore-tiled2untiled.html> (i915#180<https://gitlab.freedesktop.org/drm/intel/issues/180>)
  *   igt@i915_suspend@forcewake:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl7/igt@i915_suspend@forcewake.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl4/igt@i915_suspend@forcewake.html> (i915#636<https://gitlab.freedesktop.org/drm/intel/issues/636>)
  *   igt@i915_suspend@sysfs-reader:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl8/igt@i915_suspend@sysfs-reader.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl6/igt@i915_suspend@sysfs-reader.html> (i915#198<https://gitlab.freedesktop.org/drm/intel/issues/198>)
  *   igt@kms_async_flips@alternate-sync-async-flip:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl9/igt@kms_async_flips@alternate-sync-async-flip.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl9/igt@kms_async_flips@alternate-sync-async-flip.html> (i915#2521<https://gitlab.freedesktop.org/drm/intel/issues/2521>)
  *   igt@kms_async_flips@test-time-stamp:

     *   shard-tglb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-tglb2/igt@kms_async_flips@test-time-stamp.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-tglb5/igt@kms_async_flips@test-time-stamp.html> (i915#2574<https://gitlab.freedesktop.org/drm/intel/issues/2574>)
  *   igt@kms_ccs@pipe-c-bad-rotation-90:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl7/igt@kms_ccs@pipe-c-bad-rotation-90.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / fdo#111304<https://bugs.freedesktop.org/show_bug.cgi?id=111304>) +1 similar issue
  *   igt@kms_chamelium@hdmi-edid-read:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl3/igt@kms_chamelium@hdmi-edid-read.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / fdo#111827<https://bugs.freedesktop.org/show_bug.cgi?id=111827>) +8 similar issues
  *   igt@kms_chamelium@hdmi-hpd-with-enabled-mode:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl2/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / fdo#111827<https://bugs.freedesktop.org/show_bug.cgi?id=111827>) +1 similar issue
  *   igt@kms_color_chamelium@pipe-d-ctm-0-5:

     *   shard-snb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-snb2/igt@kms_color_chamelium@pipe-d-ctm-0-5.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / fdo#111827<https://bugs.freedesktop.org/show_bug.cgi?id=111827>) +19 similar issues
  *   igt@kms_color_chamelium@pipe-d-ctm-0-75:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@kms_color_chamelium@pipe-d-ctm-0-75.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / fdo#111827<https://bugs.freedesktop.org/show_bug.cgi?id=111827>) +4 similar issues
  *   igt@kms_content_protection@srm:

     *   shard-apl: NOTRUN -> TIMEOUT<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl8/igt@kms_content_protection@srm.html> (i915#1319<https://gitlab.freedesktop.org/drm/intel/issues/1319>)
  *   igt@kms_cursor_crc@pipe-d-cursor-256x256-rapid-movement:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl2/igt@kms_cursor_crc@pipe-d-cursor-256x256-rapid-movement.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271>) +25 similar issues
  *   igt@kms_flip@flip-vs-suspend@a-dp1:

     *   shard-kbl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl2/igt@kms_flip@flip-vs-suspend@a-dp1.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl6/igt@kms_flip@flip-vs-suspend@a-dp1.html> (i915#180<https://gitlab.freedesktop.org/drm/intel/issues/180>) +2 similar issues
  *   igt@kms_flip@flip-vs-suspend@a-edp1:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl10/igt@kms_flip@flip-vs-suspend@a-edp1.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl8/igt@kms_flip@flip-vs-suspend@a-edp1.html> (i915#146<https://gitlab.freedesktop.org/drm/intel/issues/146> / i915#198<https://gitlab.freedesktop.org/drm/intel/issues/198>)
  *   igt@kms_flip@plain-flip-ts-check@a-hdmi-a1:

     *   shard-glk: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-glk7/igt@kms_flip@plain-flip-ts-check@a-hdmi-a1.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-glk7/igt@kms_flip@plain-flip-ts-check@a-hdmi-a1.html> (i915#2122<https://gitlab.freedesktop.org/drm/intel/issues/2122>)
  *   igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#2642<https://gitlab.freedesktop.org/drm/intel/issues/2642>)
  *   igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile:

     *   shard-snb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-snb7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271>) +354 similar issues
  *   igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#2672<https://gitlab.freedesktop.org/drm/intel/issues/2672>)
  *   igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271>) +47 similar issues
  *   igt@kms_hdr@bpc-switch-suspend:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl7/igt@kms_hdr@bpc-switch-suspend.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl4/igt@kms_hdr@bpc-switch-suspend.html> (i915#1188<https://gitlab.freedesktop.org/drm/intel/issues/1188>)
  *   igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#533<https://gitlab.freedesktop.org/drm/intel/issues/533>)
  *   igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl7/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html> (fdo#108145<https://bugs.freedesktop.org/show_bug.cgi?id=108145> / i915#265<https://gitlab.freedesktop.org/drm/intel/issues/265>) +3 similar issues
  *   igt@kms_plane_alpha_blend@pipe-c-alpha-basic:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html> (fdo#108145<https://bugs.freedesktop.org/show_bug.cgi?id=108145> / i915#265<https://gitlab.freedesktop.org/drm/intel/issues/265>)
  *   igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#658<https://gitlab.freedesktop.org/drm/intel/issues/658>) +1 similar issue
  *   igt@kms_psr2_sf@plane-move-sf-dmg-area-2:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl3/igt@kms_psr2_sf@plane-move-sf-dmg-area-2.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#658<https://gitlab.freedesktop.org/drm/intel/issues/658>) +1 similar issue
  *   igt@kms_psr2_su@frontbuffer:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb2/igt@kms_psr2_su@frontbuffer.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb6/igt@kms_psr2_su@frontbuffer.html> (fdo#109642<https://bugs.freedesktop.org/show_bug.cgi?id=109642> / fdo#111068<https://bugs.freedesktop.org/show_bug.cgi?id=111068> / i915#658<https://gitlab.freedesktop.org/drm/intel/issues/658>)
  *   igt@kms_psr@psr2_cursor_plane_move:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb6/igt@kms_psr@psr2_cursor_plane_move.html> (fdo#109441<https://bugs.freedesktop.org/show_bug.cgi?id=109441>) +2 similar issues
  *   igt@perf@polling-parameterized:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl9/igt@perf@polling-parameterized.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl7/igt@perf@polling-parameterized.html> (i915#1542<https://gitlab.freedesktop.org/drm/intel/issues/1542>)
  *   igt@sysfs_clients@fair-7:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl3/igt@sysfs_clients@fair-7.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#2994<https://gitlab.freedesktop.org/drm/intel/issues/2994>)
  *   igt@sysfs_clients@pidname:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl4/igt@sysfs_clients@pidname.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#2994<https://gitlab.freedesktop.org/drm/intel/issues/2994>)

Possible fixes

  *   igt@gem_ctx_isolation@preservation-s3@vcs0:

     *   shard-kbl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl6/igt@gem_ctx_isolation@preservation-s3@vcs0.html> (i915#180<https://gitlab.freedesktop.org/drm/intel/issues/180>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl2/igt@gem_ctx_isolation@preservation-s3@vcs0.html> +3 similar issues
  *   igt@gem_eio@unwedge-stress:

     *   shard-skl: TIMEOUT<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl10/igt@gem_eio@unwedge-stress.html> (i915#2369<https://gitlab.freedesktop.org/drm/intel/issues/2369> / i915#3063<https://gitlab.freedesktop.org/drm/intel/issues/3063>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl8/igt@gem_eio@unwedge-stress.html>

     *   shard-iclb: TIMEOUT<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb5/igt@gem_eio@unwedge-stress.html> (i915#2369<https://gitlab.freedesktop.org/drm/intel/issues/2369> / i915#2481<https://gitlab.freedesktop.org/drm/intel/issues/2481> / i915#3070<https://gitlab.freedesktop.org/drm/intel/issues/3070>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb2/igt@gem_eio@unwedge-stress.html>

  *   igt@gem_exec_fair@basic-pace-solo@rcs0:

     *   shard-glk: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-glk1/igt@gem_exec_fair@basic-pace-solo@rcs0.html> (i915#2842<https://gitlab.freedesktop.org/drm/intel/issues/2842>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-glk7/igt@gem_exec_fair@basic-pace-solo@rcs0.html> +1 similar issue
  *   igt@gem_exec_fair@basic-pace@vcs0:

     *   shard-iclb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb8/igt@gem_exec_fair@basic-pace@vcs0.html> (i915#2842<https://gitlab.freedesktop.org/drm/intel/issues/2842>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb7/igt@gem_exec_fair@basic-pace@vcs0.html> +1 similar issue
  *   igt@gem_exec_fair@basic-pace@vecs0:

     *   shard-kbl: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl3/igt@gem_exec_fair@basic-pace@vecs0.html> (i915#2842<https://gitlab.freedesktop.org/drm/intel/issues/2842>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl2/igt@gem_exec_fair@basic-pace@vecs0.html> +2 similar issues

     *   shard-tglb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-tglb6/igt@gem_exec_fair@basic-pace@vecs0.html> (i915#2842<https://gitlab.freedesktop.org/drm/intel/issues/2842>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-tglb6/igt@gem_exec_fair@basic-pace@vecs0.html>

  *   igt@gem_mmap_gtt@cpuset-big-copy-odd:

     *   shard-iclb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb2/igt@gem_mmap_gtt@cpuset-big-copy-odd.html> (i915#2428<https://gitlab.freedesktop.org/drm/intel/issues/2428>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb6/igt@gem_mmap_gtt@cpuset-big-copy-odd.html>
  *   igt@gem_mmap_gtt@cpuset-big-copy-xy:

     *   shard-iclb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb5/igt@gem_mmap_gtt@cpuset-big-copy-xy.html> (i915#307<https://gitlab.freedesktop.org/drm/intel/issues/307>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb5/igt@gem_mmap_gtt@cpuset-big-copy-xy.html>
  *   igt@gen9_exec_parse@allowed-single:

     *   shard-skl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl1/igt@gen9_exec_parse@allowed-single.html> (i915#1436<https://gitlab.freedesktop.org/drm/intel/issues/1436> / i915#716<https://gitlab.freedesktop.org/drm/intel/issues/716>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl7/igt@gen9_exec_parse@allowed-single.html>
  *   igt@kms_cursor_crc@pipe-a-cursor-suspend:

     *   shard-skl: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html> (i915#2828<https://gitlab.freedesktop.org/drm/intel/issues/2828> / i915#300<https://gitlab.freedesktop.org/drm/intel/issues/300>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html>
  *   igt@kms_flip@flip-vs-suspend-interruptible@b-dp1:

     *   shard-apl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html> (i915#180<https://gitlab.freedesktop.org/drm/intel/issues/180>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html>
  *   igt@kms_flip_tiling@flip-changes-tiling@edp-1-pipe-a:

     *   shard-skl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl9/igt@kms_flip_tiling@flip-changes-tiling@edp-1-pipe-a.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl9/igt@kms_flip_tiling@flip-changes-tiling@edp-1-pipe-a.html>
  *   igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:

     *   shard-skl: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html> (fdo#108145<https://bugs.freedesktop.org/show_bug.cgi?id=108145> / i915#265<https://gitlab.freedesktop.org/drm/intel/issues/265>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html>
  *   igt@kms_psr@psr2_cursor_blt:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb4/igt@kms_psr@psr2_cursor_blt.html> (fdo#109441<https://bugs.freedesktop.org/show_bug.cgi?id=109441>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html>
  *   igt@sysfs_preempt_timeout@timeout@vecs0:

     *   shard-skl: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl9/igt@sysfs_preempt_timeout@timeout@vecs0.html> (i915#2821<https://gitlab.freedesktop.org/drm/intel/issues/2821>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl7/igt@sysfs_preempt_timeout@timeout@vecs0.html>

Warnings

  *   igt@gem_exec_fair@basic-none-rrul@rcs0:

     *   shard-iclb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb8/igt@gem_exec_fair@basic-none-rrul@rcs0.html> (i915#2852<https://gitlab.freedesktop.org/drm/intel/issues/2852>) -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb4/igt@gem_exec_fair@basic-none-rrul@rcs0.html> (i915#2842<https://gitlab.freedesktop.org/drm/intel/issues/2842>)
  *   igt@i915_pm_dc@dc3co-vpb-simulation:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html> (i915#588<https://gitlab.freedesktop.org/drm/intel/issues/588>) -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb6/igt@i915_pm_dc@dc3co-vpb-simulation.html> (i915#658<https://gitlab.freedesktop.org/drm/intel/issues/658>)
  *   igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4.html> (i915#2920<https://gitlab.freedesktop.org/drm/intel/issues/2920>) -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4.html> (i915#658<https://gitlab.freedesktop.org/drm/intel/issues/658>)
  *   igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-iclb5/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html> (i915#658<https://gitlab.freedesktop.org/drm/intel/issues/658>) -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html> (i915#2920<https://gitlab.freedesktop.org/drm/intel/issues/2920>) +1 similar issue
  *   igt@runner@aborted:

     *   shard-kbl: (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl6/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl6/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl7/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl4/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl7/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-kbl2/igt@runner@aborted.html>) (i915#1436<https://gitlab.freedesktop.org/drm/intel/issues/1436> / i915#180<https://gitlab.freedesktop.org/drm/intel/issues/180> / i915#1814<https://gitlab.freedesktop.org/drm/intel/issues/1814> / i915#2505<https://gitlab.freedesktop.org/drm/intel/issues/2505> / i915#3002<https://gitlab.freedesktop.org/drm/intel/issues/3002> / i915#602<https://gitlab.freedesktop.org/drm/intel/issues/602>) -> (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl6/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl4/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl7/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl7/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl7/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl4/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-kbl6/igt@runner@aborted.html>) (i915#180<https://gitlab.freedesktop.org/drm/intel/issues/180> / i915#1814<https://gitlab.freedesktop.org/drm/intel/issues/1814> / i915#2505<https://gitlab.freedesktop.org/drm/intel/issues/2505> / i915#3002<https://gitlab.freedesktop.org/drm/intel/issues/3002> / i915#602<https://gitlab.freedesktop.org/drm/intel/issues/602>)

     *   shard-skl: (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl4/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl3/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl1/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9979/shard-skl1/igt@runner@aborted.html>) (i915#1436<https://gitlab.freedesktop.org/drm/intel/issues/1436> / i915#1814<https://gitlab.freedesktop.org/drm/intel/issues/1814> / i915#2029<https://gitlab.freedesktop.org/drm/intel/issues/2029> / i915#3002<https://gitlab.freedesktop.org/drm/intel/issues/3002>) -> (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl2/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl3/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl2/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl9/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19945/shard-skl1/igt@runner@aborted.html>) (i915#1814<https://gitlab.freedesktop.org/drm/intel/issues/1814> / i915#2029<https://gitlab.freedesktop.org/drm/intel/issues/2029> / i915#3002<https://gitlab.freedesktop.org/drm/intel/issues/3002>)

Participating hosts (12 -> 12)

No changes in participating hosts

Build changes

  *   Linux: CI_DRM_9979 -> Patchwork_19945

CI-20190529: 20190529
CI_DRM_9979: 3fc393180390c562554bdd7d0ac08fa4b86a4011 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6067: 14317b92a672d9a20cd04fc3b0c80e2fb12d51d5 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19945: 552ce59e5d6a8805bfa342474467e6018c10dacb @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 4ef573883412..f69ed3c4c30a 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3707,6 +3707,8 @@  static void intel_ddi_get_config(struct intel_encoder *encoder,
 
 	intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA);
 	intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC);
+
+	intel_psr_get_config(encoder, pipe_config);
 }
 
 void intel_ddi_get_clock(struct intel_encoder *encoder,
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 9c13d0ac022b..ecdca523e364 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8350,6 +8350,11 @@  intel_pipe_config_compare(const struct intel_crtc_state *current_config,
 	PIPE_CONF_CHECK_I(vrr.flipline);
 	PIPE_CONF_CHECK_I(vrr.pipeline_full);
 
+	PIPE_CONF_CHECK_BOOL(has_psr);
+	PIPE_CONF_CHECK_BOOL(has_psr2);
+	PIPE_CONF_CHECK_BOOL(enable_psr2_sel_fetch);
+	PIPE_CONF_CHECK_I(dc3co_exitline);
+
 #undef PIPE_CONF_CHECK_X
 #undef PIPE_CONF_CHECK_I
 #undef PIPE_CONF_CHECK_BOOL
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 4ad756e238c5..bd7997a3ef7c 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -886,6 +886,53 @@  void intel_psr_compute_config(struct intel_dp *intel_dp,
 	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_VSC);
 }
 
+void intel_psr_get_config(struct intel_encoder *encoder,
+			  struct intel_crtc_state *pipe_config)
+{
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
+	struct intel_dp *intel_dp;
+	u32 val;
+
+	if (!dig_port)
+		return;
+
+	intel_dp = &dig_port->dp;
+	if (!CAN_PSR(intel_dp))
+		return;
+
+	mutex_lock(&intel_dp->psr.lock);
+	if (!intel_dp->psr.enabled) {
+		mutex_unlock(&intel_dp->psr.lock);
+		return;
+	}
+
+	/*
+	 * Not possible to read EDP_PSR/PSR2_CTL registers as it is
+	 * enabled/disabled because of frontbuffer tracking and others.
+	 */
+	pipe_config->has_psr = true;
+	pipe_config->has_psr2 = intel_dp->psr.psr2_enabled;
+	pipe_config->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_VSC);
+
+	if (!intel_dp->psr.psr2_enabled)
+		goto unlock;
+
+	if (HAS_PSR2_SEL_FETCH(dev_priv)) {
+		val = intel_de_read(dev_priv, PSR2_MAN_TRK_CTL(intel_dp->psr.transcoder));
+		if (val & PSR2_MAN_TRK_CTL_ENABLE)
+			pipe_config->enable_psr2_sel_fetch = true;
+	}
+
+	if (DISPLAY_VER(dev_priv) >= 12) {
+		val = intel_de_read(dev_priv, EXITLINE(intel_dp->psr.transcoder));
+		val &= EXITLINE_MASK;
+		pipe_config->dc3co_exitline = val;
+	}
+unlock:
+	mutex_unlock(&intel_dp->psr.lock);
+}
+
 static void intel_psr_activate(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
diff --git a/drivers/gpu/drm/i915/display/intel_psr.h b/drivers/gpu/drm/i915/display/intel_psr.h
index 0491a49ffd50..e3db85e97f4c 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.h
+++ b/drivers/gpu/drm/i915/display/intel_psr.h
@@ -17,6 +17,7 @@  struct intel_crtc;
 struct intel_atomic_state;
 struct intel_plane_state;
 struct intel_plane;
+struct intel_encoder;
 
 void intel_psr_init_dpcd(struct intel_dp *intel_dp);
 void intel_psr_enable(struct intel_dp *intel_dp,
@@ -37,6 +38,8 @@  void intel_psr_flush(struct drm_i915_private *dev_priv,
 void intel_psr_init(struct intel_dp *intel_dp);
 void intel_psr_compute_config(struct intel_dp *intel_dp,
 			      struct intel_crtc_state *crtc_state);
+void intel_psr_get_config(struct intel_encoder *encoder,
+			  struct intel_crtc_state *pipe_config);
 void intel_psr_irq_handler(struct intel_dp *intel_dp, u32 psr_iir);
 void intel_psr_short_pulse(struct intel_dp *intel_dp);
 void intel_psr_wait_for_idle(const struct intel_crtc_state *new_crtc_state);