include/drm/display/drm_dp_mst_helper.h
Source file repositories/reference/linux-study-clean/include/drm/display/drm_dp_mst_helper.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/display/drm_dp_mst_helper.h- Extension
.h- Size
- 34206 bytes
- Lines
- 1077
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hdrm/display/drm_dp_helper.hdrm/drm_atomic.hdrm/drm_fixed.hlinux/stackdepot.hlinux/timekeeping.h
Detected Declarations
struct drm_dp_mst_topology_ref_historystruct drm_dp_mst_topology_ref_entrystruct drm_dp_mst_branchstruct drm_dp_mst_portstruct drm_dp_sideband_msg_hdrstruct drm_dp_sideband_msg_rxstruct drm_dp_mst_branchstruct drm_dp_nak_replystruct drm_dp_link_address_ack_replystruct drm_dp_link_addr_reply_portstruct drm_dp_remote_dpcd_read_ack_replystruct drm_dp_remote_dpcd_write_ack_replystruct drm_dp_remote_dpcd_write_nak_replystruct drm_dp_remote_i2c_read_ack_replystruct drm_dp_remote_i2c_read_nak_replystruct drm_dp_remote_i2c_write_ack_replystruct drm_dp_query_stream_enc_status_ack_replystruct drm_dp_allocate_payloadstruct drm_dp_allocate_payload_ack_replystruct drm_dp_connection_status_notifystruct drm_dp_remote_dpcd_readstruct drm_dp_remote_dpcd_writestruct drm_dp_remote_i2c_readstruct drm_dp_remote_i2c_read_txstruct drm_dp_remote_i2c_writestruct drm_dp_query_stream_enc_statusstruct drm_dp_port_number_reqstruct drm_dp_enum_path_resources_ack_replystruct drm_dp_port_number_repstruct drm_dp_query_payloadstruct drm_dp_resource_status_notifystruct drm_dp_query_payload_ack_replystruct drm_dp_sideband_msg_req_bodystruct drm_dp_sideband_msg_reply_bodystruct drm_dp_sideband_msg_txstruct drm_dp_mst_topology_mgrstruct drm_dp_mst_topology_cbsstruct drm_dp_mst_atomic_payloadstruct drm_dp_mst_topology_statestruct drm_dp_mst_topology_mgrenum drm_dp_mst_topology_ref_typeenum drm_dp_mst_payload_allocationenum drm_dp_mst_modefunction drm_dp_mst_port_is_logicalfunction to_drm_dp_mst_topology_statefunction for_each_oldnew_mst_mgr_in_state
Annotated Snippet
struct drm_dp_mst_topology_ref_history {
struct drm_dp_mst_topology_ref_entry {
enum drm_dp_mst_topology_ref_type type;
int count;
ktime_t ts_nsec;
depot_stack_handle_t backtrace;
} *entries;
int len;
};
#endif /* IS_ENABLED(CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS) */
enum drm_dp_mst_payload_allocation {
DRM_DP_MST_PAYLOAD_ALLOCATION_NONE,
DRM_DP_MST_PAYLOAD_ALLOCATION_LOCAL,
DRM_DP_MST_PAYLOAD_ALLOCATION_DFP,
DRM_DP_MST_PAYLOAD_ALLOCATION_REMOTE,
};
struct drm_dp_mst_branch;
/**
* struct drm_dp_mst_port - MST port
* @port_num: port number
* @input: if this port is an input port. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @mcs: message capability status - DP 1.2 spec. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @ddps: DisplayPort Device Plug Status - DP 1.2. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @pdt: Peer Device Type. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @ldps: Legacy Device Plug Status. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @dpcd_rev: DPCD revision of device on this port. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @num_sdp_streams: Number of simultaneous streams. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @num_sdp_stream_sinks: Number of stream sinks. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @full_pbn: Max possible bandwidth for this port. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @next: link to next port on this branch device
* @aux: i2c aux transport to talk to device connected to this port, protected
* by &drm_dp_mst_topology_mgr.base.lock.
* @passthrough_aux: parent aux to which DSC pass-through requests should be
* sent, only set if DSC pass-through is possible.
* @parent: branch device parent of this port
* @connector: DRM connector this port is connected to. Protected by
* &drm_dp_mst_topology_mgr.base.lock.
* @mgr: topology manager this port lives under.
*
* This structure represents an MST port endpoint on a device somewhere
* in the MST topology.
*/
struct drm_dp_mst_port {
/**
* @topology_kref: refcount for this port's lifetime in the topology,
* only the DP MST helpers should need to touch this
*/
struct kref topology_kref;
/**
* @malloc_kref: refcount for the memory allocation containing this
* structure. See drm_dp_mst_get_port_malloc() and
* drm_dp_mst_put_port_malloc().
*/
struct kref malloc_kref;
#if IS_ENABLED(CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS)
/**
* @topology_ref_history: A history of each topology
* reference/dereference. See CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS.
*/
struct drm_dp_mst_topology_ref_history topology_ref_history;
#endif
u8 port_num;
bool input;
bool mcs;
bool ddps;
u8 pdt;
bool ldps;
u8 dpcd_rev;
u8 num_sdp_streams;
u8 num_sdp_stream_sinks;
uint16_t full_pbn;
struct list_head next;
/**
* @mstb: the branch device connected to this port, if there is one.
* This should be considered protected for reading by
Annotation
- Immediate include surface: `linux/types.h`, `drm/display/drm_dp_helper.h`, `drm/drm_atomic.h`, `drm/drm_fixed.h`, `linux/stackdepot.h`, `linux/timekeeping.h`.
- Detected declarations: `struct drm_dp_mst_topology_ref_history`, `struct drm_dp_mst_topology_ref_entry`, `struct drm_dp_mst_branch`, `struct drm_dp_mst_port`, `struct drm_dp_sideband_msg_hdr`, `struct drm_dp_sideband_msg_rx`, `struct drm_dp_mst_branch`, `struct drm_dp_nak_reply`, `struct drm_dp_link_address_ack_reply`, `struct drm_dp_link_addr_reply_port`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.