drivers/gpu/drm/msm/dp/dp_link.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/msm/dp/dp_link.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/msm/dp/dp_link.h- Extension
.h- Size
- 3454 bytes
- Lines
- 134
- Domain
- Driver Families
- Bucket
- drivers/gpu
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
dp_aux.hdrm/display/drm_dp_helper.h
Detected Declarations
struct msm_dp_link_infostruct msm_dp_link_test_videostruct msm_dp_link_test_audiostruct msm_dp_link_phy_paramsstruct msm_dp_linkfunction msm_dp_link_bit_depth_to_bpp
Annotated Snippet
struct msm_dp_link_info {
unsigned char revision;
unsigned int rate;
unsigned int supported_rates[DP_MAX_SUPPORTED_RATES];
unsigned int rate_set;
bool use_rate_set;
unsigned int num_lanes;
unsigned long capabilities;
};
#define DP_TRAIN_LEVEL_MAX 3
struct msm_dp_link_test_video {
u32 test_video_pattern;
u32 test_bit_depth;
u32 test_dyn_range;
u32 test_h_total;
u32 test_v_total;
u32 test_h_start;
u32 test_v_start;
u32 test_hsync_pol;
u32 test_hsync_width;
u32 test_vsync_pol;
u32 test_vsync_width;
u32 test_h_width;
u32 test_v_height;
u32 test_rr_d;
u32 test_rr_n;
};
struct msm_dp_link_test_audio {
u32 test_audio_sampling_rate;
u32 test_audio_channel_count;
u32 test_audio_pattern_type;
u32 test_audio_period_ch_1;
u32 test_audio_period_ch_2;
u32 test_audio_period_ch_3;
u32 test_audio_period_ch_4;
u32 test_audio_period_ch_5;
u32 test_audio_period_ch_6;
u32 test_audio_period_ch_7;
u32 test_audio_period_ch_8;
};
struct msm_dp_link_phy_params {
u32 phy_test_pattern_sel;
u8 v_level;
u8 p_level;
};
struct msm_dp_link {
u8 lttpr_common_caps[DP_LTTPR_COMMON_CAP_SIZE];
int lttpr_count;
u32 sink_request;
u32 test_response;
u8 sink_count;
struct msm_dp_link_test_video test_video;
struct msm_dp_link_test_audio test_audio;
struct msm_dp_link_phy_params phy_params;
struct msm_dp_link_info link_params;
u32 lane_map[DP_MAX_NUM_DP_LANES];
u32 max_dp_lanes;
u32 max_dp_link_rate;
};
/**
* msm_dp_link_bit_depth_to_bpp() - convert test bit depth to bpp
* @tbd: test bit depth
*
* Returns: the bits per pixel (bpp) to be used corresponding to the
* bit depth value. This function assumes that bit depth has
* already been validated.
*/
static inline u32 msm_dp_link_bit_depth_to_bpp(u32 tbd)
{
/*
* Few simplistic rules and assumptions made here:
* 1. Bit depth is per color component
* 2. If bit depth is unknown return 0
* 3. Assume 3 color components
*/
switch (tbd) {
case DP_TEST_BIT_DEPTH_6:
return 18;
case DP_TEST_BIT_DEPTH_8:
return 24;
case DP_TEST_BIT_DEPTH_10:
Annotation
- Immediate include surface: `dp_aux.h`, `drm/display/drm_dp_helper.h`.
- Detected declarations: `struct msm_dp_link_info`, `struct msm_dp_link_test_video`, `struct msm_dp_link_test_audio`, `struct msm_dp_link_phy_params`, `struct msm_dp_link`, `function msm_dp_link_bit_depth_to_bpp`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
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.