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)
+{
+ if (!intel_dp->as_sdp_supported)
+ return false;
+
+ return crtc_state->vrr.enable;
+}
+
static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
struct intel_crtc_state *crtc_state)
{
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
- if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
+ /*
+ * #FIXME: SDP/infoframe updates aren’t truly atomic, and with the new
+ * cdclk->tc clock crossing we may transiently send a corrupted packet
+ * if the update lands mid‑transmission.
+ */
+ if (!intel_dp_needs_as_sdp(intel_dp, crtc_state))
return;
crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);