drivers/gpu/drm/msm/registers/display/mdp4.xml

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/msm/registers/display/mdp4.xml

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/msm/registers/display/mdp4.xml
Extension
.xml
Size
21898 bytes
Lines
505
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: drivers/gpu
Status
atlas-only

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

<?xml version="1.0" encoding="UTF-8"?>
<database xmlns="http://nouveau.freedesktop.org/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://gitlab.freedesktop.org/freedreno/ rules-fd.xsd">
<import file="freedreno_copyright.xml"/>
<import file="display/mdp_common.xml"/>

<domain name="MDP4" width="32">
	<enum name="mdp4_pipe">
		<brief>pipe names, index into PIPE[]</brief>
		<value name="VG1" value="0"/>
		<value name="VG2" value="1"/>
		<value name="RGB1" value="2"/>
		<value name="RGB2" value="3"/>
		<value name="RGB3" value="4"/>
		<value name="VG3" value="5"/>
		<value name="VG4" value="6"/>
	</enum>

	<enum name="mdp4_mixer">
		<value name="MIXER0" value="0"/>
		<value name="MIXER1" value="1"/>
		<value name="MIXER2" value="2"/>
	</enum>

	<enum name="mdp4_intf">
		<!--
			A bit confusing the enums for interface selection:
				enum {
					LCDC_RGB_INTF,			/* 0 */
					DTV_INTF = LCDC_RGB_INTF,	/* 0 */
					MDDI_LCDC_INTF,			/* 1 */
					MDDI_INTF,			/* 2 */
					EBI2_INTF,			/* 3 */
					TV_INTF = EBI2_INTF,		/* 3 */
					DSI_VIDEO_INTF,
					DSI_CMD_INTF
				};
			there is some overlap, and not all the values end up getting
			written to hw (mdp4_display_intf_sel() remaps the last two
			values to MDDI_LCDC_INTF/MDDI_INTF with extra bits set).. so
			taking some liberties in guessing the actual meanings/names:
		 -->
		<value name="INTF_LCDC_DTV" value="0"/>  <!-- LCDC RGB or DTV (external) -->
		<value name="INTF_DSI_VIDEO" value="1"/>
		<value name="INTF_DSI_CMD" value="2"/>
		<value name="INTF_EBI2_TV" value="3"/>   <!-- EBI2 or TV (external) -->
	</enum>
	<enum name="mdp4_cursor_format">
		<value name="CURSOR_ARGB" value="1"/>
		<value name="CURSOR_XRGB" value="2"/>
	</enum>
	<enum name="mdp4_frame_format">
		<value name="FRAME_LINEAR" value="0"/>
		<value name="FRAME_TILE_ARGB_4X4" value="1"/>
		<value name="FRAME_TILE_YCBCR_420" value="2"/>
	</enum>
	<enum name="mdp4_scale_unit">
		<value name="SCALE_FIR" value="0"/>
		<value name="SCALE_MN_PHASE" value="1"/>
		<value name="SCALE_PIXEL_RPT" value="2"/>
	</enum>

	<bitset name="mdp4_layermixer_in_cfg" inline="yes">
		<brief>appears to map pipe to mixer stage</brief>
		<bitfield name="PIPE0" low="0"  high="2"  type="mdp_mixer_stage_id"/>
		<bitfield name="PIPE0_MIXER1" pos="3" type="boolean"/>
		<bitfield name="PIPE1" low="4"  high="6"  type="mdp_mixer_stage_id"/>
		<bitfield name="PIPE1_MIXER1" pos="7" type="boolean"/>
		<bitfield name="PIPE2" low="8"  high="10" type="mdp_mixer_stage_id"/>

Annotation

Implementation Notes