All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "Kandpal, Suraj" <suraj.kandpal@intel.com>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Cc: "stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used
Date: Thu, 7 May 2026 12:42:00 +0000	[thread overview]
Message-ID: <76f39de9d27f63eec50af48af4cb2bd0691b6eb5.camel@intel.com> (raw)
In-Reply-To: <DM3PPF208195D8D312A4D274ECBF86DE84FE33F2@DM3PPF208195D8D.namprd11.prod.outlook.com>

On Wed, 2026-05-06 at 07:24 +0000, Kandpal, Suraj wrote:
> > Subject: [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when
> > SDP on
> > prior line used
> > 
> > There is Intel specific workaround DPCD address containing
> > workaround for
> > case where SDP is on prior line. Apply this workaround according to
> > values in
> > the offset.
> > 
> > Fixes: 61e887329e33 ("drm/i915/xelpd: Handle PSR2 SDP indication in
> > the prior
> > scanline")
> > Cc: <stable@vger.kernel.org> # v5.15+
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_psr.c | 36
> > +++++++++++++++++++++---
> >  1 file changed, 32 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 1f3f0d35d52a..341186622ed4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -1385,9 +1385,36 @@ static bool psr2_granularity_check(struct
> > intel_crtc_state *crtc_state,
> >  	return true;
> >  }
> > 
> > -static bool _compute_psr2_sdp_prior_scanline_indication(struct
> > intel_dp
> > *intel_dp,
> > -							struct
> > intel_crtc_state
> > *crtc_state)
> > +static bool apply_scanline_indication_wa(struct intel_crtc_state
> > *crtc_state,
> > +					 struct intel_connector
> > *connector)
> 
> Should the name be apply_scanline_indicate, since you are not
> applying the wa here just sort of checking if it needs to be done

It is actually appying WA. I.e. disabling req_psr2_sdp_prior_scanline
if panel is not inline with the eDP1.4b SDP on prior scanline
implementation in intel HW. What do you think?

BR,
Jouni Högander

> 
> Regards,
> Suraj Kandpal
> 
> >  {
> > +	struct intel_dp *intel_dp = intel_attached_dp(connector);
> > +	u8 early_scanline_support = connector-
> > >dp.psr_caps.intel_wa_dpcd &
> > +
> > 	INTEL_WA_REGISTER_CAPS_PSR2_EARLYSCANLINE_SDP_SUPPORT_MA
> > SK;
> > +
> > +	if (intel_dp->edp_dpcd[0] >= DP_EDP_15)
> > +		return true;
> > +
> > +	switch(early_scanline_support)
> > +	{
> > +	case INTEL_WA_REGISTER_CAPS_FALL_BACK_TO_PSR1:
> > +		crtc_state->req_psr2_sdp_prior_scanline = false;
> > +		return false;
> > +	case INTEL_WA_REGISTER_CAPS_PSR2_WITH_EARLY_SCANLINE:
> > +		return true;
> > +	case INTEL_WA_REGISTER_CAPS_PSR2_WITHOUT_EARLY_SCANLINE:
> > +		crtc_state->req_psr2_sdp_prior_scanline = false;
> > +		return true;
> > +	default:
> > +		MISSING_CASE(early_scanline_support);
> > +		return false;
> > +	}
> > +}
> > +
> > +static bool _compute_psr2_sdp_prior_scanline_indication(struct
> > intel_crtc_state *crtc_state,
> > +							struct
> > intel_connector
> > *connector) {
> > +	struct intel_dp *intel_dp = intel_attached_dp(connector);
> >  	struct intel_display *display =
> > to_intel_display(intel_dp);
> >  	const struct drm_display_mode *adjusted_mode =
> > &crtc_state-
> > > uapi.adjusted_mode;
> >  	u32 hblank_total, hblank_ns, req_ns;
> > @@ -1406,7 +1433,8 @@ static bool
> > _compute_psr2_sdp_prior_scanline_indication(struct intel_dp
> > *intel_d
> >  		return false;
> > 
> >  	crtc_state->req_psr2_sdp_prior_scanline = true;
> > -	return true;
> > +
> > +	return apply_scanline_indication_wa(crtc_state,
> > connector);
> >  }
> > 
> >  static int intel_psr_entry_setup_frames(struct intel_dp *intel_dp,
> > @@ -1687,7
> > +1715,7 @@ static bool intel_sel_update_config_valid(struct
> > intel_crtc_state
> > *crtc_state,
> > 
> > conn_state))
> >  		goto unsupported;
> > 
> > -	if (!_compute_psr2_sdp_prior_scanline_indication(intel_dp,
> > crtc_state)) {
> > +	if
> > (!_compute_psr2_sdp_prior_scanline_indication(crtc_state,
> > +connector)) {
> >  		drm_dbg_kms(display->drm,
> >  			    "Selective update not enabled, SDP
> > indication do not
> > fit in hblank\n");
> >  		goto unsupported;
> > --
> > 2.43.0
> 


  reply	other threads:[~2026-05-07 12:42 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-15  5:39 [PATCH 0/4] PSR2 SDP on Prior Scanline workarounds Jouni Högander
2026-04-15  5:39 ` [PATCH 1/4] drm/i915/psr: Add defininitions for INTEL_WA_REGISTER_CAPS DPCD register Jouni Högander
2026-04-15  7:28   ` Jani Nikula
2026-05-14  6:01   ` Kandpal, Suraj
2026-04-15  5:39 ` [PATCH 2/4] drm/i915/psr: Read Intel DPCD workaround register Jouni Högander
2026-05-06  6:39   ` Kandpal, Suraj
2026-05-07 12:35     ` Hogander, Jouni
2026-05-14  4:22       ` Kandpal, Suraj
2026-04-15  5:39 ` [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used Jouni Högander
2026-05-06  7:24   ` Kandpal, Suraj
2026-05-07 12:42     ` Hogander, Jouni [this message]
2026-05-14  4:26       ` Kandpal, Suraj
2026-04-15  5:40 ` [PATCH 4/4] drm/i915/psr: Apply SDP on prior scanline workaround for NVL Jouni Högander
2026-05-06  7:29   ` Kandpal, Suraj
2026-05-07 12:52     ` Hogander, Jouni
2026-05-14  4:30       ` Kandpal, Suraj
2026-04-15  5:49 ` ✗ CI.checkpatch: warning for PSR2 SDP on Prior Scanline workarounds Patchwork
2026-04-15  5:50 ` ✓ CI.KUnit: success " Patchwork
2026-04-15  6:34 ` ✓ i915.CI.BAT: " Patchwork
2026-04-15  6:54 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-15  7:40 ` ✓ Xe.CI.FULL: " Patchwork
2026-04-15  8:50 ` ✗ i915.CI.Full: failure " Patchwork
     [not found] <20260414112008.329217-1-jouni.hogander@intel.com>
2026-04-14 11:20 ` [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used Jouni Högander

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=76f39de9d27f63eec50af48af4cb2bd0691b6eb5.camel@intel.com \
    --to=jouni.hogander@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=stable@vger.kernel.org \
    --cc=suraj.kandpal@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.