drivers/gpu/drm/amd/display/dc/dc_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/dc_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/dc_types.h- Extension
.h- Size
- 42782 bytes
- Lines
- 1551
- 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
os_types.hfixed31_32.hirq_types.hdc_ddc_types.hdc_dp_types.hdc_hdmi_types.hdc_hw_types.hdal_types.hgrph_object_defs.hgrph_object_ctrl_defs.hdm_cp_psp.h
Detected Declarations
struct dc_plane_statestruct dc_stream_statestruct dc_linkstruct dc_sinkstruct dalstruct dc_dmub_srvstruct dc_perf_tracestruct dc_cea_audio_modestruct dc_edidstruct dc_panel_patchstruct dc_edid_capsstruct dc_mode_flagsstruct stereo_3d_featuresstruct dc_mode_infostruct dc_csc_adjustmentsstruct cm_grph_csc_adjustmentstruct dwb_stereo_paramsstruct dc_dwb_cnv_paramsstruct dc_dwb_paramsstruct sample_ratesstruct audio_speaker_flagsstruct audio_speaker_infostruct audio_info_flagsstruct audio_modestruct audio_infostruct audio_checkstruct dc_info_packetstruct dc_info_packet_128struct dc_edid_read_policystruct dc_plane_flip_timestruct psr_configstruct psr_contextstruct colorspace_transformstruct AsicStateExstruct dc_clock_configstruct dc_dmdata_attributesstruct hw_asic_idstruct dc_contextstruct dsc_dec_dpcd_capsstruct hblank_expansion_dpcd_capsstruct dc_golden_tablestruct display_endpoint_idstruct otg_phy_muxstruct crc_windowstruct dc_link_statusstruct hdcp_capsstruct link_mst_stream_allocationstruct link_mst_stream_allocation_table
Annotated Snippet
struct dc_perf_trace {
unsigned long read_count;
unsigned long write_count;
unsigned long last_entry_read;
unsigned long last_entry_write;
};
#define NUM_PIXEL_FORMATS 10
#define DTBCLK_LIMIT 2920
enum tiling_mode {
TILING_MODE_INVALID,
TILING_MODE_LINEAR,
TILING_MODE_TILED,
TILING_MODE_COUNT
};
enum view_3d_format {
VIEW_3D_FORMAT_NONE = 0,
VIEW_3D_FORMAT_FRAME_SEQUENTIAL,
VIEW_3D_FORMAT_SIDE_BY_SIDE,
VIEW_3D_FORMAT_TOP_AND_BOTTOM,
VIEW_3D_FORMAT_COUNT,
VIEW_3D_FORMAT_FIRST = VIEW_3D_FORMAT_FRAME_SEQUENTIAL
};
enum plane_stereo_format {
PLANE_STEREO_FORMAT_NONE = 0,
PLANE_STEREO_FORMAT_SIDE_BY_SIDE = 1,
PLANE_STEREO_FORMAT_TOP_AND_BOTTOM = 2,
PLANE_STEREO_FORMAT_FRAME_ALTERNATE = 3,
PLANE_STEREO_FORMAT_ROW_INTERLEAVED = 5,
PLANE_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
PLANE_STEREO_FORMAT_CHECKER_BOARD = 7
};
/* TODO: Find way to calculate number of bits
* Please increase if pixel_format enum increases
* num from PIXEL_FORMAT_INDEX8 to PIXEL_FORMAT_444BPP32
*/
enum dc_edid_connector_type {
DC_EDID_CONNECTOR_UNKNOWN = 0,
DC_EDID_CONNECTOR_ANALOG = 1,
DC_EDID_CONNECTOR_DIGITAL = 10,
DC_EDID_CONNECTOR_DVI = 11,
DC_EDID_CONNECTOR_HDMIA = 12,
DC_EDID_CONNECTOR_MDDI = 14,
DC_EDID_CONNECTOR_DISPLAYPORT = 15
};
enum dc_edid_status {
EDID_OK,
EDID_BAD_INPUT,
EDID_NO_RESPONSE,
EDID_BAD_CHECKSUM,
EDID_THE_SAME,
EDID_FALL_BACK,
EDID_PARTIAL_VALID,
};
enum act_return_status {
ACT_SUCCESS,
ACT_LINK_LOST,
ACT_FAILED
};
/* audio capability from EDID*/
struct dc_cea_audio_mode {
uint8_t format_code; /* ucData[0] [6:3]*/
uint8_t channel_count; /* ucData[0] [2:0]*/
uint8_t sample_rate; /* ucData[1]*/
union {
uint8_t sample_size; /* for LPCM*/
/* for Audio Formats 2-8 (Max bit rate divided by 8 kHz)*/
uint8_t max_bit_rate;
uint8_t audio_codec_vendor_specific; /* for Audio Formats 9-15*/
};
};
struct dc_edid {
uint32_t length;
uint8_t raw_edid[DC_MAX_EDID_BUFFER_SIZE];
};
/* When speaker location data block is not available, DEFAULT_SPEAKER_LOCATION
* is used. In this case we assume speaker location are: front left, front
* right and front center. */
#define DEFAULT_SPEAKER_LOCATION 5
Annotation
- Immediate include surface: `os_types.h`, `fixed31_32.h`, `irq_types.h`, `dc_ddc_types.h`, `dc_dp_types.h`, `dc_hdmi_types.h`, `dc_hw_types.h`, `dal_types.h`.
- Detected declarations: `struct dc_plane_state`, `struct dc_stream_state`, `struct dc_link`, `struct dc_sink`, `struct dal`, `struct dc_dmub_srv`, `struct dc_perf_trace`, `struct dc_cea_audio_mode`, `struct dc_edid`, `struct dc_panel_patch`.
- 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.