SCDC HELPERS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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


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