STRUCT HDCP_PORT_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct hdcp_port_data(9) 🌸

okay bestie, welcome to the Kernel API Manual β€” this one's all about struct hdcp_port_data, aka the intel specific HDCP port data struct. it's giving very niche, very i915, very "you either know or you don't" πŸ’…


✨ NAME ✨

struct hdcp_port_data β€” intel specific HDCP port data πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct hdcp_port_data {
    enum hdcp_ddi hdcp_ddi;
    enum hdcp_transcoder hdcp_transcoder;
    u8 port_type;
    u8 protocol;
    u16 k;
    u32 seq_num_m;
    struct hdcp2_streamid_type *streams;
 };

no cap, that's the whole shape of it β€” copy it exactly, don't go editing field names, the compiler WILL notice 😭


πŸ‘‘ Members πŸ‘‘

  • hdcp_ddi β€” the ddi index, as per ME/GSC FW. fr fr, that's where the number comes from 🫢
  • hdcp_transcoder β€” the transcoder index, also as per ME/GSC FW ✨
  • port_type β€” the HDCP port type, classified as per ME/GSC FW 🌸
  • protocol β€” the HDCP adaptation, as per ME/GSC FW πŸ’œ
  • k β€” number of streams transmitted on a port. heads up: it's only on DP MST that this is != 1 πŸ‘€
  • seq_num_m β€” count of RepeaterAuth_Stream_Manage msgs propagated. it gets initialized to 0 on AKE_INIT, then incremented after every successful transmission of the RepeaterAuth_Stream_Manage message. and the second it rolls over? re-Auth has to be triggered πŸ’€ don't sleep on that
  • streams β€” struct hdcp2_streamid_type[k]. defines the type and id for the streams πŸ¦‹

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/drm/intel/i915_hdcp_interface.h
  • enum hdcp_port_type(9)
  • enum hdcp_wired_protocol(9)
  • enum hdcp_transcoder(9)
  • struct i915_hdcp_ops(9)
  • struct i915_hdcp_arbiter(9)

like, go read those next, bestie, they're the whole friend group πŸ‘‘


mwah πŸ’‹ this page lives at ./include/drm/intel, dated October 2026 β€” that's the source, the version and the date all in one cute little sign-off. now go forth and HDCP responsibly βœ¨πŸŽ€

πŸ“¦ where this page comes from