[PATCH] drm/i915/psr: Fix PSR sink enable sequence

Gustavo Sousa gustavo.sousa at intel.com
Fri Sep 13 19:29:13 UTC 2024


Quoting Ville Syrjala (2024-09-11 12:18:36-03:00)
>From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
>According to the eDP spec, the source must first configure all
>PSR related DPCD registers apart from the actual enable bit,
>and only then set the enable bit. Split the current single DPCD
>write to two to match the spec.
>
>Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>

>---
> drivers/gpu/drm/i915/display/intel_psr.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
>index 1a4ef231a53c..2b7c0c73f335 100644
>--- a/drivers/gpu/drm/i915/display/intel_psr.c
>+++ b/drivers/gpu/drm/i915/display/intel_psr.c
>@@ -745,7 +745,7 @@ static void _psr_enable_sink(struct intel_dp *intel_dp,
>                              const struct intel_crtc_state *crtc_state)
> {
>         struct intel_display *display = to_intel_display(intel_dp);
>-        u8 val = DP_PSR_ENABLE;
>+        u8 val = 0;
> 
>         if (crtc_state->has_sel_update) {
>                 val |= DP_PSR_ENABLE_PSR2 | DP_PSR_IRQ_HPD_WITH_CRC_ERRORS;
>@@ -765,7 +765,9 @@ static void _psr_enable_sink(struct intel_dp *intel_dp,
> 
>         if (intel_dp->psr.entry_setup_frames > 0)
>                 val |= DP_PSR_FRAME_CAPTURE;
>+        drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, val);
> 
>+        val |= DP_PSR_ENABLE;
>         drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, val);
> }
> 
>-- 
>2.44.2
>


More information about the Intel-gfx mailing list