drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h- Extension
.h- Size
- 15712 bytes
- Lines
- 598
- 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
audio_types.hhw_shared.h
Detected Declarations
struct dc_biosstruct dc_contextstruct dc_crtc_timingstruct audio_clock_infostruct frl_audio_clock_infostruct enc_sdp_line_numstruct encoder_info_framestruct encoder_unblank_paramstruct encoder_set_dp_phy_pattern_paramstruct stream_encoderstruct enc_statestruct stream_encoder_funcsstruct hpo_frl_stream_encoder_statestruct hpo_frl_stream_encoderstruct hpo_frl_stream_encoder_funcsstruct hpo_dp_stream_encoder_statestruct hpo_dp_stream_encoderstruct hpo_dp_stream_encoder_funcsenum dp_pixel_encoding_typeenum dp_component_depthenum dynamic_metadata_mode
Annotated Snippet
struct audio_clock_info {
/* pixel clock frequency*/
uint32_t pixel_clock_in_10khz;
/* N - 32KHz audio */
uint32_t n_32khz;
/* CTS - 32KHz audio*/
uint32_t cts_32khz;
uint32_t n_44khz;
uint32_t cts_44khz;
uint32_t n_48khz;
uint32_t cts_48khz;
};
enum dynamic_metadata_mode {
dmdata_dp,
dmdata_hdmi,
dmdata_dolby_vision
};
struct frl_audio_clock_info {
uint32_t frl_character_clock_kHz;
uint32_t n_32khz;
uint32_t cts_32khz;
uint32_t n_44khz;
uint32_t cts_44khz;
uint32_t n_48khz;
uint32_t cts_48khz;
};
struct enc_sdp_line_num {
/* Adaptive Sync SDP */
bool adaptive_sync_line_num_valid;
uint32_t adaptive_sync_line_num;
};
struct encoder_info_frame {
/* auxiliary video information */
struct dc_info_packet avi;
struct dc_info_packet gamut;
struct dc_info_packet vendor;
struct dc_info_packet hfvsif;
struct dc_info_packet vtem;
/* source product description */
struct dc_info_packet spd;
/* video stream configuration */
struct dc_info_packet vsc;
/* HDR Static MetaData */
struct dc_info_packet hdrsmd;
/* Adaptive Sync SDP*/
struct dc_info_packet adaptive_sync;
struct enc_sdp_line_num sdp_line_num;
bool firmware_controlled_hdr_info_packet;
};
struct encoder_unblank_param {
struct dc_link_settings link_settings;
struct dc_crtc_timing timing;
int opp_cnt;
uint32_t pix_per_cycle;
};
struct encoder_set_dp_phy_pattern_param {
enum dp_test_pattern dp_phy_pattern;
const uint8_t *custom_pattern;
uint32_t custom_pattern_size;
enum dp_panel_mode dp_panel_mode;
};
struct stream_encoder {
const struct stream_encoder_funcs *funcs;
struct dc_context *ctx;
struct dc_bios *bp;
enum engine_id id;
uint32_t stream_enc_inst;
struct vpg *vpg;
struct afmt *afmt;
struct apg *apg;
};
struct enc_state {
uint32_t dsc_mode; // DISABLED 0; 1 or 2 indicate enabled state.
uint32_t dsc_slice_width;
uint32_t sec_gsp_pps_line_num;
uint32_t vbid6_line_reference;
uint32_t vbid6_line_num;
uint32_t sec_gsp_pps_enable;
uint32_t sec_stream_enable;
};
struct stream_encoder_funcs {
Annotation
- Immediate include surface: `audio_types.h`, `hw_shared.h`.
- Detected declarations: `struct dc_bios`, `struct dc_context`, `struct dc_crtc_timing`, `struct audio_clock_info`, `struct frl_audio_clock_info`, `struct enc_sdp_line_num`, `struct encoder_info_frame`, `struct encoder_unblank_param`, `struct encoder_set_dp_phy_pattern_param`, `struct stream_encoder`.
- 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.