drivers/gpu/drm/amd/display/dc/dc_stream.h

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/dc_stream.h
Extension
.h
Size
18519 bytes
Lines
627
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 timing_sync_info {
	int group_id;
	int group_size;
	bool master;
};

struct mall_stream_config {
	/* MALL stream config to indicate if the stream is phantom or not.
	 * We will use a phantom stream to indicate that the pipe is phantom.
	 */
	enum mall_stream_type type;
	struct dc_stream_state *paired_stream;	// master / slave stream
	bool subvp_limit_cursor_size; /* stream has/is using subvp limiting hw cursor support */
	bool cursor_size_limit_subvp; /* stream is using hw cursor config preventing subvp */
};

struct dc_stream_status {
	int primary_otg_inst;
	int stream_enc_inst;

	/**
	 * @plane_count: Total of planes attached to a single stream
	 */
	int plane_count;
	int audio_inst;
	struct timing_sync_info timing_sync_info;
	struct dc_plane_state *plane_states[MAX_SURFACES];
	bool is_abm_supported;
	struct mall_stream_config mall_stream_config;
	bool fpo_in_use;
};


struct dc_writeback_info {
	bool wb_enabled;
	int dwb_pipe_inst;
	struct dc_dwb_params dwb_params;
	struct mcif_buf_params mcif_buf_params;
	struct mcif_warmup_params mcif_warmup_params;
	/* the plane that is the input to TOP_MUX for MPCC that is the DWB source */
	struct dc_plane_state *writeback_source_plane;
	/* source MPCC instance.  for use by internally by dc */
	int mpcc_inst;
};

struct dc_writeback_update {
	unsigned int num_wb_info;
	struct dc_writeback_info writeback_info[MAX_DWB_PIPES];
};

enum vertical_interrupt_ref_point {
	START_V_UPDATE = 0,
	START_V_SYNC,
	INVALID_POINT

	//For now, only v_update interrupt is used.
	//START_V_BLANK,
	//START_V_ACTIVE
};

struct periodic_interrupt_config {
	enum vertical_interrupt_ref_point ref_point;
	int lines_offset;
};

struct dc_mst_stream_bw_update {
	bool is_increase; // is bandwidth reduced or increased
	uint32_t mst_stream_bw; // new mst bandwidth in kbps
};

union stream_update_flags {
	struct {
		uint32_t scaling:1;
		uint32_t out_tf:1;
		uint32_t out_csc:1;
		uint32_t abm_level:1;
		uint32_t dpms_off:1;
		uint32_t gamut_remap:1;
		uint32_t wb_update:1;
		uint32_t dsc_changed : 1;
		uint32_t mst_bw : 1;
		uint32_t crtc_timing_adjust : 1;
		uint32_t fams_changed : 1;
		uint32_t scaler_sharpener : 1;
		uint32_t sharpening_required : 1;
		uint32_t cursor_attr : 1;
		uint32_t cursor_pos : 1;
		uint32_t periodic_interrupt : 1;
		uint32_t info_frame : 1;
		uint32_t dmdata : 1;

Annotation

Implementation Notes