On 2/26/2026 9:31 PM, Ville Syrjälä wrote:
On Thu, Feb 26, 2026 at 05:29:48PM +0200, Ville Syrjälä wrote:
On Mon, Feb 23, 2026 at 07:14:20PM +0530, Ankit Nautiyal wrote:
Add a helper to check if AS SDP is needed. Currently AS SDP is only
required when VRR is enabled. However, there are other use cases, along
with the missing case of CMRR, dealt in subsequent changes.
Signed-off-by: Ankit Nautiyal <[email protected]>
---
drivers/gpu/drm/i915/display/intel_dp.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
b/drivers/gpu/drm/i915/display/intel_dp.c
index b999d8c085c7..65764ab0bb9b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -3111,6 +3111,12 @@ static void intel_dp_compute_vsc_colorimetry(const
struct intel_crtc_state *crtc
vsc->content_type = DP_CONTENT_TYPE_NOT_DEFINED;
}
+static bool intel_dp_needs_as_sdp(struct intel_dp *intel_dp,
+ struct intel_crtc_state *crtc_state)
+{
+ return crtc_state->vrr.enable;
Since we don't support VRR+PCON I don't think we actually
need the AS SDP for VRR.
Hmm. DP 2.1a does say
"When the plugged DP device has DPCD 02214h[0] = 1, a DP Source
device shall transmit an Adaptive-Sync SDP before enabling an
Adaptive-Sync video transmission."
So maybe we do need to transmit it whenever the DP device
supports it.
Yeah I think that will be a better way.
In that case someone will probably need to figure
out the fastset stuff.
Hmm.. currently we are avoiding checking of AS SDP during fastset.
The fields will change as VRR will get enabled/disabled on the fly, so
we are avoiding check for fastset.
And I don't think we even have a fastset path for this stuff
(or where is it?) so isn't this already causing fastset
failures for VRR enable/disable? Or maybe we don't have
displays with both VRR and AS SDP support anywhere?
VRR with AS SDP supported panels are there, (not in CI, but some resume
machines have them). Till now we didnt see any specific issues.
There is a test kms_vrr@flip-basic-fastset, I will re-check this on such
a panel.
Regards,
Ankit
+}
+
static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
struct intel_crtc_state *crtc_state)
{
@@ -3118,7 +3124,10 @@ static void intel_dp_compute_as_sdp(struct intel_dp
*intel_dp,
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
- if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
+ if (!intel_dp->as_sdp_supported)
+ return;
+
+ if (!intel_dp_needs_as_sdp(intel_dp, crtc_state))
return;
crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
--
2.45.2
--
Ville Syrjälä
Intel