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

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/dc.h
Extension
.h
Size
140464 bytes
Lines
3568
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 frl_cap_chk_intermediates_fixed31_32 {
	int      c_frl_sb;
	struct fixed31_32   overhead_sb;
	struct fixed31_32   overhead_rs;
	struct fixed31_32   overhead_map;
	struct fixed31_32   overhead_min;
	struct fixed31_32   overhead_max;
	struct fixed31_32   f_pixel_clock_max;
	struct fixed31_32   t_line;
	struct fixed31_32   r_bit_min;
	struct fixed31_32   r_frl_char_min;
	struct fixed31_32   c_frl_line;
	struct fixed31_32   ap;
	struct fixed31_32   r_ap;
	struct fixed31_32   avg_audio_packets_line;
	struct fixed31_32   margin;
	int      audio_packets_line;
	int      blank_audio_min;
};

struct frl_cap_chk_params_fixed31_32 {
	int      lanes;
	struct fixed31_32   f_pixel_clock_nominal;   /* Pixel Clock rate (Hz)  */
	struct fixed31_32   r_bit_nominal;           /* FRL bitrate (bps) */
	int      audio_packet_type;
	struct fixed31_32   f_audio;                 /* Audio rate (Hz) */
	int      h_active;                /* Active pixels per line */
	int      h_blank;                 /* Blanking pixels per line */
	int      bpc;                     /* Bits per component */
	int      vic;                     /* Video Identification Code */

	enum hdmi_frl_pixel_encoding    pixel_encoding;

	bool     compressed;              /* set to true if DSC is enabled */
	bool     bypass_hc_target_calc;   /* debug only */
	bool     allow_all_bpp;           /* dsc_all_bpp */

	/* DSC parameters */
	int      slices;
	int      slice_width;
	struct fixed31_32   bpp_target;
	int      layout;
	int      acat;    /* not supported */

	/* outputs */
	struct frl_dml_borrow_params borrow_params;
	int      average_tribyte_rate;
};

/* Display Core Interfaces */
struct dc_versions {
	const char *dc_ver;
	struct dmcu_version dmcu_version;
};

enum dp_protocol_version {
	DP_VERSION_1_4 = 0,
	DP_VERSION_2_1,
	DP_VERSION_UNKNOWN,
};

enum dc_plane_type {
	DC_PLANE_TYPE_INVALID,
	DC_PLANE_TYPE_DCE_RGB,
	DC_PLANE_TYPE_DCE_UNDERLAY,
	DC_PLANE_TYPE_DCN_UNIVERSAL,
};

// Sizes defined as multiples of 64KB
enum det_size {
	DET_SIZE_DEFAULT = 0,
	DET_SIZE_192KB = 3,
	DET_SIZE_256KB = 4,
	DET_SIZE_320KB = 5,
	DET_SIZE_384KB = 6
};


struct dc_plane_cap {
	enum dc_plane_type type;
	uint32_t per_pixel_alpha : 1;
	struct {
		uint32_t argb8888 : 1;
		uint32_t nv12 : 1;
		uint32_t fp16 : 1;
		uint32_t p010 : 1;
		uint32_t ayuv : 1;
	} pixel_format_support;
	// max upscaling factor x1000
	// upscaling factors are always >= 1

Annotation

Implementation Notes