The HDMI 2.0 spec advises that compliant Source devices report their
SCDC version in the Source Version register.  Do so when enabling
scrambling by calling drm_scdc_set_source_version().

Failures are non-fatal: SCDC version negotiation is purely informational
and does not gate scrambling or any high-bitrate functionality, so a
flaky DDC bus should not block scrambling setup.

Signed-off-by: Cristian Ciocaltea <[email protected]>
---
 drivers/gpu/drm/display/drm_hdmi_helper.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/display/drm_hdmi_helper.c 
b/drivers/gpu/drm/display/drm_hdmi_helper.c
index 7c96cccf683d..b8ed2a1e47f5 100644
--- a/drivers/gpu/drm/display/drm_hdmi_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_helper.c
@@ -16,6 +16,7 @@
 #include <drm/drm_print.h>
 #include <drm/drm_property.h>
 
+#define DRM_HDMI_SCDC_SOURCE_VERSION   1
 #define DRM_HDMI_SCDC_POLL_DELAY_MS    1000
 
 static inline bool is_eotf_supported(u8 output_eotf, u8 sink_eotf)
@@ -531,6 +532,12 @@ int drm_connector_hdmi_enable_scrambling(struct 
drm_connector *connector,
                return -EINVAL;
        }
 
+       /*
+        * Advertise our SCDC source version. This is purely informational and
+        * does not gate scrambling, so failures are non-fatal.
+        */
+       drm_scdc_set_source_version(connector, DRM_HDMI_SCDC_SOURCE_VERSION);
+
        drm_dbg_kms(dev, "Enabling scrambling\n");
 
        hdmi->scdc_cb = drm_scdc_monitor_scrambler;

-- 
2.54.0

Reply via email to