drivers/gpu/drm/amd/display/dc/hpo/dcn401/dcn401_hpo_frl_stream_encoder.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/hpo/dcn401/dcn401_hpo_frl_stream_encoder.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/hpo/dcn401/dcn401_hpo_frl_stream_encoder.h
Extension
.h
Size
14008 bytes
Lines
336
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct dcn401_hpo_frl_stream_encoder_shift {
	DCN401_HDMI_TB_ENC_REG_FIELD_LIST(uint8_t);
	DCN42_HDMI_TB_ENC_REG_FIELD_LIST(uint8_t);
};

struct dcn401_hpo_frl_stream_encoder_mask {
	DCN401_HDMI_TB_ENC_REG_FIELD_LIST(uint32_t);
	DCN42_HDMI_TB_ENC_REG_FIELD_LIST(uint32_t);
};

struct dcn401_hpo_frl_stream_encoder {
	struct hpo_frl_stream_encoder base;
	const struct dcn30_hpo_frl_stream_enc_registers *regs;
	const struct dcn401_hpo_frl_stream_encoder_shift *hpo_se_shift;
	const struct dcn401_hpo_frl_stream_encoder_mask *hpo_se_mask;
};

void hpo_enc401_enable(
		struct hpo_frl_stream_encoder *enc,
		int otg_inst);

void hpo_enc401_unblank(
	struct hpo_frl_stream_encoder *enc,
	int otg_inst);

void hpo_enc401_read_state(
		struct hpo_frl_stream_encoder *enc,
		struct hpo_frl_stream_encoder_state *state);

void hpo_enc401_blank(
	struct hpo_frl_stream_encoder *enc);

void hpo_enc401_set_hdmi_stream_attribute(
	struct hpo_frl_stream_encoder *enc,
	struct dc_crtc_timing *crtc_timing,
	struct frl_borrow_params *borrow_params,
	int odm_combine_num_segments);

void hpo_enc401_update_hdmi_info_packet(
	struct dcn401_hpo_frl_stream_encoder *enc401,
	uint32_t packet_index,
	const struct dc_info_packet *info_packet);

void hpo_enc401_update_hdmi_info_packets(
	struct hpo_frl_stream_encoder *enc,
	const struct encoder_info_frame *info_frame);

void hpo_enc401_hdmi_set_dsc_config(
  struct hpo_frl_stream_encoder *enc,
  struct dc_crtc_timing *timing,
  uint8_t *dsc_packed_pps);

void hpo_enc401_stop_hdmi_info_packets(
	struct hpo_frl_stream_encoder *enc);

void hpo_enc401_setup_hdmi_audio(
	struct hpo_frl_stream_encoder *enc,
	const struct audio_crtc_info *crtc_info);

void hpo_enc401_hdmi_audio_setup(
	struct hpo_frl_stream_encoder *enc,
	unsigned int az_inst,
	struct audio_info *info,
	struct audio_crtc_info *audio_crtc_info);

void hpo_enc401_hdmi_audio_disable(
	struct hpo_frl_stream_encoder *enc);

void hpo_enc401_audio_mute_control(
	struct hpo_frl_stream_encoder *enc,
	bool mute);

void enc401_stream_encoder_set_avmute(
	struct hpo_frl_stream_encoder *enc,
	bool enable);

void hpo_enc401_set_dynamic_metadata(
	struct hpo_frl_stream_encoder *enc,
	bool enable_dme,
	uint32_t hubp_requestor_id,
	enum dynamic_metadata_mode dmdata_mode);
void frl_get_audio_clock_info(
	enum dc_color_depth color_depth,
	uint32_t frl_character_clock_kHz,
	struct frl_audio_clock_info *audio_clock_info);

void dcn401_hpo_frl_stream_encoder_construct(
	struct dcn401_hpo_frl_stream_encoder *enc401,
	struct dc_context *ctx,
	struct dc_bios *bp,

Annotation

Implementation Notes