Linux DRM Developer's Guide

Jesse Barnes

Initial version 
Intel Corporation


Laurent Pinchart

Driver internals 
Ideas on board SPRL

The contents of this file may be used under the terms of the GNU General Public License version 2 (the "GPL") as distributed in the kernel source COPYING file.

Revision History
Revision 1.02012-07-13LP
Added extensive documentation about driver internals.

Table of Contents

1. Introduction
2. DRM Internals
Driver Initialization
Driver Information
Driver Load
Memory management
The Translation Table Manager (TTM)
The Graphics Execution Manager (GEM)
Mode Setting
Frame Buffer Creation
Output Polling
KMS Initialization and Cleanup
CRTCs (struct drm_crtc)
Planes (struct drm_plane)
Encoders (struct drm_encoder)
Connectors (struct drm_connector)
Output discovery and initialization example
Mid-layer Helper Functions
Helper Functions
CRTC Helper Operations
Encoder Helper Operations
Connector Helper Operations
Vertical Blanking
Open/Close, File Operations and IOCTLs
Open and Close
File Operations
Command submission & fencing
DMA services
3. Userland interfaces
VBlank event handling
A. DRM Driver API