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 <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 521ce23f38ac..ed6845485b41 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -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);
 }
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to