@@ -4735,8 +4735,16 @@ void intel_dp_vsc_enable(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
- if (!intel_dp_needs_vsc_sdp(crtc_state, conn_state))
+ if (!intel_dp_needs_vsc_sdp(crtc_state, conn_state)) {
+ struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+ struct intel_encoder *encoder = &intel_dig_port->base;
+
+ if (!intel_psr_enabled(intel_dp) &&
+ intel_infoframe_enabled(encoder, crtc_state, DP_SDP_VSC))
+ intel_enable_infoframe(encoder, false, crtc_state, DP_SDP_VSC);
+
return;
+ }
intel_dp_setup_vsc_sdp(intel_dp, crtc_state, conn_state);
}
It prevents sending VSC SDP Packet to a receiver when VSC SDP is not needed. Because VSC SDP is used for PSR, YCbCr 420, HDR BT.2020 and etc, it checks PSR is enabled or not. Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> --- drivers/gpu/drm/i915/display/intel_dp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)