drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c
Extension
.c
Size
22621 bytes
Lines
1085
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 mdp5_cfg_handler {
	int revision;
	struct mdp5_cfg config;
};

/* mdp5_cfg must be exposed (used in mdp5.xml.h) */
const struct mdp5_cfg_hw *mdp5_cfg = NULL;

static const struct mdp5_cfg_hw msm8x26_config = {
	.name = "msm8x26",
	.mdp = {
		.count = 1,
		.caps = MDP_CAP_SMP |
			0,
	},
	.smp = {
		.mmb_count = 7,
		.mmb_size = 4096,
		.clients = {
			[SSPP_VIG0] =  1,
			[SSPP_DMA0] = 4,
			[SSPP_RGB0] = 7,
		},
	},
	.ctl = {
		.count = 2,
		.base = { 0x00500, 0x00600 },
		.flush_hw_mask = 0x0003ffff,
	},
	.pipe_vig = {
		.count = 1,
		.base = { 0x01100 },
		.caps = MDP_PIPE_CAP_HFLIP |
			MDP_PIPE_CAP_VFLIP |
			MDP_PIPE_CAP_SCALE |
			MDP_PIPE_CAP_CSC   |
			0,
	},
	.pipe_rgb = {
		.count = 1,
		.base = { 0x01d00 },
		.caps = MDP_PIPE_CAP_HFLIP |
			MDP_PIPE_CAP_VFLIP |
			MDP_PIPE_CAP_SCALE |
			0,
	},
	.pipe_dma = {
		.count = 1,
		.base = { 0x02900 },
		.caps = MDP_PIPE_CAP_HFLIP |
			MDP_PIPE_CAP_VFLIP |
			0,
	},
	.lm = {
		.count = 2,
		.base = { 0x03100, 0x03d00 },
		.instances = {
				{ .id = 0, .pp = 0, .dspp = 0,
				  .caps = MDP_LM_CAP_DISPLAY, },
				{ .id = 1, .pp = -1, .dspp = -1,
				  .caps = MDP_LM_CAP_WB },
			     },
		.nb_stages = 2,
		.max_width = 2048,
		.max_height = 0xFFFF,
	},
	.dspp = {
		.count = 1,
		.base = { 0x04500 },
	},
	.pp = {
		.count = 1,
		.base = { 0x21a00 },
	},
	.intf = {
		.base = { 0x00000, 0x21200 },
		.connect = {
			[0] = INTF_DISABLED,
			[1] = INTF_DSI,
		},
	},
	.perf = {
		.ab_inefficiency = 100,
		.ib_inefficiency = 200,
		.clk_inefficiency = 125
	},
	.max_clk = 200000000,
};

static const struct mdp5_cfg_hw msm8x74_config = {

Annotation

Implementation Notes