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

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/dc_hdmi_types.h
Extension
.h
Size
6744 bytes
Lines
286
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 dp_hdmi_dongle_signature_data {
	int8_t id[15];/* "DP-HDMI ADAPTOR"*/
	uint8_t eot;/* end of transmition '\x4' */
};

/* DP-HDMI dongle slave address for retrieving dongle signature*/
#define DP_HDMI_DONGLE_ADDRESS 0x40
#define DP_HDMI_DONGLE_SIGNATURE_EOT 0x04


/* SCDC Address defines (HDMI 2.0)*/
#define HDMI_SCDC_WRITE_UPDATE_0_ARRAY 3
#define HDMI_SCDC_ADDRESS  0x54
#define HDMI_SCDC_SINK_VERSION 0x01
#define HDMI_SCDC_SOURCE_VERSION 0x02
#define HDMI_SCDC_UPDATE_0 0x10
#define HDMI_SCDC_TMDS_CONFIG 0x20
#define HDMI_SCDC_SCRAMBLER_STATUS 0x21
#define HDMI_SCDC_CONFIG_0 0x30
#define HDMI_SCDC_CONFIG_1 0x31
#define HDMI_SCDC_SOURCE_TEST_REQ 0x35
#define HDMI_SCDC_STATUS_FLAGS 0x40
#define HDMI_SCDC_LTP_REQ 0x41
#define HDMI_SCDC_ERR_DETECT 0x50
#define HDMI_SCDC_TEST_CONFIG 0xC0

#define HDMI_SCDC_MANUFACTURER_OUI 0xD0
#define HDMI_SCDC_DEVICE_ID 0xDB

/* IDCC defines (HDMI 2.0) */
#define HDMI_IDCC_ADDRESS 0x50
#define HDMI_IDCC_MARKER0 0xAE
#define HDMI_IDCC_MARKER1 0x6E
#define HDMI_IDCC_MARKER2 0x60

enum hdmi_idcc_scope {
	HDMI_IDCC_SCOPE_WRITE = 0x00,
	HDMI_IDCC_SCOPE_RW_CA = 0x01,
	HDMI_IDCC_SCOPE_RW_SINK = 0x02,
};

union hdmi_idcc_source_id {
	struct {
		uint8_t SI_PCA_n:1;
		uint8_t AC_n:1;
		uint8_t RESERVED:6;
	} bits;
	uint8_t raw;
};

union hdmi_idcc_cable_id {
	struct {
		uint8_t Cat1_n:1;
		uint8_t Cat2_n:1;
		uint8_t Cat3_n:1;
		uint8_t Cat4_n:1;
		uint8_t RESERVED:4;
		uint8_t HEAC_n:1;
		uint8_t PCA_DEP_n:1;
		uint8_t MonoDir_n:1;
		uint8_t MonoDirErr_n:1;
		uint8_t PCA_ON_n:1;
		uint8_t no_DeEmphasis_n:1;
		uint8_t no_PreShoot_n:1;
		uint8_t RESERVED2:1;
		uint8_t RND_bits_7_0:8;
		uint8_t RND_bits_15_8:8;
	} bits;
	uint8_t raw[4];
};
union hdmi_scdc_update_read_data {
	uint8_t byte[2];
	struct {
		uint8_t STATUS_UPDATE:1;
		uint8_t CED_UPDATE:1;
		uint8_t RR_TEST:1;
		uint8_t SOURCE_TEST_UPDATE:1;
		uint8_t FRL_START:1;
		uint8_t FLT_UPDATE:1;
		uint8_t RSED_UPDATE:1;
		uint8_t RESERVED:1;
		uint8_t RESERVED2:8;
	} fields;
};

union hdmi_scdc_status_flags_data {
	uint8_t byte;
	struct {
		uint8_t CLOCK_DETECTED:1;
		uint8_t CH0_LOCKED:1;

Annotation

Implementation Notes