drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c
Extension
.c
Size
6973 bytes
Lines
265
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

switch (packet_index) {
		case 0:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC0_IMMEDIATE_UPDATE, 1);
			break;
		case 1:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC1_IMMEDIATE_UPDATE, 1);
			break;
		case 2:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC2_IMMEDIATE_UPDATE, 1);
			break;
		case 3:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC3_IMMEDIATE_UPDATE, 1);
			break;
		case 4:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC4_IMMEDIATE_UPDATE, 1);
			break;
		case 5:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC5_IMMEDIATE_UPDATE, 1);
			break;
		case 6:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC6_IMMEDIATE_UPDATE, 1);
			break;
		case 7:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC7_IMMEDIATE_UPDATE, 1);
			break;
		case 8:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC8_IMMEDIATE_UPDATE, 1);
			break;
		case 9:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC9_IMMEDIATE_UPDATE, 1);
			break;
		case 10:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC10_IMMEDIATE_UPDATE, 1);
			break;
		case 11:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC11_IMMEDIATE_UPDATE, 1);
			break;
		case 12:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC12_IMMEDIATE_UPDATE, 1);
			break;
		case 13:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC13_IMMEDIATE_UPDATE, 1);
			break;
		case 14:
			REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
					VPG_GENERIC14_IMMEDIATE_UPDATE, 1);
			break;
		default:
			break;
		}
	} else {
		switch (packet_index) {
		case 0:
			REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
					VPG_GENERIC0_FRAME_UPDATE, 1);
			break;
		case 1:
			REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
					VPG_GENERIC1_FRAME_UPDATE, 1);
			break;
		case 2:
			REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
					VPG_GENERIC2_FRAME_UPDATE, 1);
			break;
		case 3:
			REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
					VPG_GENERIC3_FRAME_UPDATE, 1);
			break;
		case 4:
			REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
					VPG_GENERIC4_FRAME_UPDATE, 1);
			break;
		case 5:
			REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
					VPG_GENERIC5_FRAME_UPDATE, 1);
			break;

Annotation

Implementation Notes