SCDC HELPERS(9)
π scdc helpers
okay so this is a page from the Kernel API Manual (section 9, kernel-adjacent besties π«Ά), and it's all about SCDC. buckle up, it's actually so good.
π DESCRIPTION
SCDC stands for Status and Control Data Channel, and it's this mechanism that the HDMI 2.0 specification introduced. basically: it's a point-to-point protocol that lets the HDMI source and the HDMI sink exchange data with each other. cute little two-way chat, iykyk πΈ
and the transport? it's the same I2C interface that's already used to access EDID. no new wires, no extra hardware, she just borrows the existing ride. iconic honestly.
β οΈ note, and this one matters: the SCDC status is going to be lost when the display is disconnected. and like, that can happen physically when the user yanks the cable (we've all done it π), but also when a display is switched on β like when a TV wakes up. so it's not just the obvious unplug case, bestie.
this gets even more complicated by the fact that, upon a disconnection / reconnection, KMS won't change the mode on its own. so you literally cannot just rely on setting the SCDC status on enable and calling it a day. nope. you also have to track connector status changes using interrupts and restore the SCDC status. the typical solution for this is to trigger an empty modeset in drm_connector_helper_funcs.detect_ctx β exactly like what vc4 does in vc4_hdmi_reset_link. slay, vc4, showing everyone how it's done π
β¨ SEE ALSO
- Kernel file
./drivers/gpu/drm/display/drm_scdc_helper.cβ the source, go read her drm_scdc_read(9)drm_scdc_write(9)drm_scdc_get_scrambling_status(9)drm_scdc_set_scrambling(9)drm_scdc_set_high_tmds_clock_ratio(9)
and that's the whole vibe check, bestie π this page lives in ./drivers/gpu/drm/display, dated October 2026, and it's filed under scdc helpers(9) β go off, kernel docs πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms