STRUCT DRM_DP_MST_BRANCH(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

struct drm_dp_mst_branch(9) πŸ’…βœ¨

okay so bestie, this is the Kernel API Manual entry for struct drm_dp_mst_branch β€” the MST branch device struct. It’s giving kernel-internals main character energy, and we’re gonna go through every field, no skips. 🫢

🌸 NAME 🌸

struct drm_dp_mst_branch β€” MST branch device. πŸ’–

✨ SYNOPSIS ✨

Here’s the struct in all its glory, literally character-for-character:

struct drm_dp_mst_branch {
    struct kref topology_kref;
    struct kref malloc_kref;
  #if IS_ENABLED(CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS);
    struct drm_dp_mst_topology_ref_history topology_ref_history;
  #endif;
    struct list_head destroy_next;
    u8 rad[8];
    u8 lct;
    int num_ports;
    struct list_head ports;
    struct drm_dp_mst_port *port_parent;
    struct drm_dp_mst_topology_mgr *mgr;
    bool link_address_sent;
    guid_t guid;
};

πŸ¦‹ Members πŸ¦‹

  • topology_kref β€” the refcount for this branch device’s lifetime in the topology. Only the DP MST helpers should need to touch this, bestie. πŸ’…
  • malloc_kref β€” the refcount for the memory allocation containing this structure. See drm_dp_mst_get_mstb_malloc and drm_dp_mst_put_mstb_malloc. πŸŽ€
  • topology_ref_history β€” a history of each topology reference/dereference. See CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS. ✨
  • destroy_next β€” linked-list entry used by drm_dp_delayed_destroy_work. 🌈
  • rad β€” Relative Address of the MST branch. For drm_dp_mst_topology_mgr.mst_primary, the rad[8] are all 0, unset and unused. For MST branches connected after mst_primary, in each element of rad[] the nibbles are ordered by the most significant 4 bits first and the least significant 4 bits second. 🧚
  • lct β€” Link count total to talk to this branch device. πŸ’¬
  • num_ports β€” number of ports on the branch. πŸ”’
  • ports β€” the list of ports on this branch device. This should be considered protected for reading by drm_dp_mst_topology_mgr.lock. There are two exceptions to this: drm_dp_mst_topology_mgr.up_req_work and drm_dp_mst_topology_mgr.work, which do not grab drm_dp_mst_topology_mgr.lock during reads but are the only updaters of this list and are protected from updating the list concurrently by drm_dp_mst_topology_mgr.probe_lock. πŸ’œ
  • port_parent β€” pointer to the port parent, NULL if toplevel. 🫢
  • mgr β€” topology manager for this branch device. πŸ‘‘
  • link_address_sent β€” if a link address message has been sent to this device yet. πŸ“¬
  • guid β€” guid for DP 1.2 branch device. A port under this branch can be identified by port #. πŸ†”

🌟 Description 🌟

This structure represents an MST branch device. There is one primary branch device at the root, along with any other branches connected to downstream port of parent branches. πŸ¦‹

πŸ”₯ SEE ALSO πŸ”₯

Kernel file: ./include/drm/display/drm_dp_mst_helper.h


source/version: ./include/drm/display Β· date: October 2026 Β· page: struct drm_dp_mst_branch(9) πŸ«Άβœ¨πŸ’…

πŸ“¦ where this page comes from