On Fri, Mar 06, 2026 at 02:02:09PM +0200, Ville Syrjälä wrote:
> On Thu, Mar 05, 2026 at 09:31:16AM +0530, Ankit Nautiyal wrote:
> > Add a helper, intel_dp_emp_as_sdp_tl(), to compute the EMP_AS_SDP_TL
> > value used when programming the double‑buffering point and transmission
> > line for VRR packets.
> > Also improve the documentation: the AS SDP transmission line corresponds
> > to the T1 position, which maps to the start of the Vsync pulse.
> > 
> > Signed-off-by: Ankit Nautiyal <[email protected]>
> > ---
> >  drivers/gpu/drm/i915/display/intel_dp.c  | 9 +++++++++
> >  drivers/gpu/drm/i915/display/intel_dp.h  | 1 +
> >  drivers/gpu/drm/i915/display/intel_vrr.c | 4 ++--
> >  3 files changed, 12 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
> > b/drivers/gpu/drm/i915/display/intel_dp.c
> > index 86390553800d..9204a813639a 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > @@ -7288,6 +7288,15 @@ bool intel_dp_joiner_candidate_valid(struct 
> > intel_connector *connector,
> >     return true;
> >  }
> >  
> > +int intel_dp_emp_as_sdp_tl(const struct intel_crtc_state *crtc_state)
> > +{
> > +   /*
> > +    * EMP_AS_SDP_TL defines the T1 position : The default AS SDP position
> > +    * that corresponds to the start of the Vsync pulse.
> > +    */
> > +   return crtc_state->vrr.vsync_start;
> > +}
> 
> Other parts of the code (eg. ALPM) still just directly use the
> adjusted_mode timings to calculate the same stuff. So this doesn't
> really seem to help us.
> 
> Feels like all of our abstractions around this SDP transmission line
> stuff are way too low level, and thus the same information is
> calculated in different ways in different parts of the code. There
> should be a single place that defines the transmission line(s),
> and everyone should just consult that stuff (regardless of whether
> the platform uses implicit transmission lines, EMP_AS_SDP_TL, or
> the new stuff).

I think instead of tracking the low level stagger values directly, what 
we want to track is just the transmission line itself for each type of 
SDP. That seems like a form that is easier to use elsewhere in the code. 

And to accommodate VRR I suppose we should use the "transmission line 
is specified relative to the end of vblank/vtotal" convention for all 
of these. 

-- 
Ville Syrjälä
Intel

Reply via email to