1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part I. DRM Core</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux GPU Driver Developer's Guide"><link rel="up" href="index.html" title="Linux GPU Driver Developer's Guide"><link rel="prev" href="index.html" title="Linux GPU Driver Developer's Guide"><link rel="next" href="drmIntroduction.html" title="Chapter 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. DRM Core</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="drmIntroduction.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a name="drmCore"></a>Part I. DRM Core</h1></div></div></div><div class="partintro"><div></div><p>
2      This first part of the GPU Driver Developer's Guide documents core DRM
3      code, helper libraries for writing drivers and generic userspace
4      interfaces exposed by DRM drivers.
5    </p><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="drmIntroduction.html">1. Introduction</a></span></dt><dt><span class="chapter"><a href="drmInternals.html">2. DRM Internals</a></span></dt><dd><dl><dt><span class="sect1"><a href="drmInternals.html#id-1.3.4.5">Driver Initialization</a></span></dt><dd><dl><dt><span class="sect2"><a href="drmInternals.html#id-1.3.4.5.4">Driver Information</a></span></dt><dt><span class="sect2"><a href="drmInternals.html#id-1.3.4.5.5">Device Instance and Driver Handling</a></span></dt><dt><span class="sect2"><a href="drmInternals.html#id-1.3.4.5.6">Driver Load</a></span></dt><dt><span class="sect2"><a href="drmInternals.html#id-1.3.4.5.7">Bus-specific Device Registration and PCI Support</a></span></dt></dl></dd><dt><span class="sect1"><a href="drm-memory-management.html">Memory management</a></span></dt><dd><dl><dt><span class="sect2"><a href="drm-memory-management.html#id-1.3.4.6.5">The Translation Table Manager (TTM)</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#drm-gem">The Graphics Execution Manager (GEM)</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#id-1.3.4.6.7">VMA Offset Manager</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#drm-prime-support">PRIME Buffer Sharing</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#id-1.3.4.6.9">PRIME Function References</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#id-1.3.4.6.10">DRM MM Range Allocator</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#id-1.3.4.6.11">DRM MM Range Allocator Function References</a></span></dt><dt><span class="sect2"><a href="drm-memory-management.html#id-1.3.4.6.12">CMA Helper Functions Reference</a></span></dt></dl></dd><dt><span class="sect1"><a href="drm-mode-setting.html">Mode Setting</a></span></dt><dd><dl><dt><span class="sect2"><a href="drm-mode-setting.html#id-1.3.4.7.4">Display Modes Function Reference</a></span></dt><dt><span class="sect2"><a href="drm-mode-setting.html#id-1.3.4.7.5">Atomic Mode Setting Function Reference</a></span></dt><dt><span class="sect2"><a href="drm-mode-setting.html#id-1.3.4.7.6">Frame Buffer Creation</a></span></dt><dt><span class="sect2"><a href="drm-mode-setting.html#id-1.3.4.7.7">Dumb Buffer Objects</a></span></dt><dt><span class="sect2"><a href="drm-mode-setting.html#id-1.3.4.7.8">Output Polling</a></span></dt><dt><span class="sect2"><a href="drm-mode-setting.html#id-1.3.4.7.9">Locking</a></span></dt></dl></dd><dt><span class="sect1"><a href="drm-kms-init.html">KMS Initialization and Cleanup</a></span></dt><dd><dl><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.3">CRTCs (struct drm_crtc)</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.4">Planes (struct drm_plane)</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.5">Encoders (struct drm_encoder)</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.6">Connectors (struct drm_connector)</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.7">Cleanup</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.8">Output discovery and initialization example</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.9">KMS API Functions</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.10">KMS Data Structures</a></span></dt><dt><span class="sect2"><a href="drm-kms-init.html#id-1.3.4.8.11">KMS Locking</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">Mode Setting Helper Functions</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.6">Helper Functions</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.7">CRTC Helper Operations</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.8">Encoder Helper Operations</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.9">Connector Helper Operations</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.10">Atomic Modeset Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.11">Modeset Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.12">Output Probing Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.13">fbdev Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.14">Display Port Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.15">Display Port MST Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.16">MIPI DSI Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.17">EDID Helper Functions Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.18">Rectangle Utilities Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.19">Flip-work Helper Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.20">HDMI Infoframes Helper Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.21">Plane Helper Reference</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.22">Tile group</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#id-1.3.4.9.23">Bridges</a></span></dt></dl></dd><dt><span class="sect1"><a href="drm-kms-properties.html">KMS Properties</a></span></dt><dd><dl><dt><span class="sect2"><a href="drm-kms-properties.html#id-1.3.4.10.10">Existing KMS Properties</a></span></dt></dl></dd><dt><span class="sect1"><a href="drm-vertical-blank.html">Vertical Blanking</a></span></dt><dd><dl><dt><span class="sect2"><a href="drm-vertical-blank.html#id-1.3.4.11.10">Vertical Blanking and Interrupt Handling Functions Reference</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">Open/Close, File Operations and IOCTLs</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#id-1.3.4.12.2">Open and Close</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#id-1.3.4.12.3">File Operations</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#id-1.3.4.12.4">IOCTLs</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">Legacy Support Code</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#id-1.3.4.13.3">Legacy Suspend/Resume</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#id-1.3.4.13.4">Legacy DMA Services</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="drmExternals.html">3. Userland interfaces</a></span></dt><dd><dl><dt><span class="sect1"><a href="drmExternals.html#id-1.3.5.5">Render nodes</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">VBlank event handling</a></span></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="drmIntroduction.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Linux GPU Driver Developer's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>
6