Linux GPU Driver Developer's Guide
Jesse Barnes
Initial version
Intel Corporation
Initial version
Intel Corporation
Laurent Pinchart
Driver internals
Ideas on board SPRL
Driver internals
Ideas on board SPRL
Daniel Vetter
Contributions all over the place
Intel Corporation
Contributions all over the place
Intel Corporation
Lukas Wunner
vga_switcheroo documentation
Copyright © 2008-2009, 2013-2014 Intel Corporation
Copyright © 2012 Laurent Pinchart
Copyright © 2015 Lukas Wunner
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.0 2012-07-13 LP Added extensive documentation about driver internals. Revision 1.1 2015-10-11 LW Added vga_switcheroo documentation.
Table of Contents
I. DRM Core
-
2. DRM Internals
-
Memory management
The Translation Table Manager (TTM)
The Graphics Execution Manager (GEM)
GEM Function Reference
VMA Offset Manager
PRIME Buffer Sharing
PRIME Function References
DRM MM Range Allocator
DRM MM Range Allocator Function References
CMA Helper Functions Reference
Mode Setting
Display Modes Function Reference
Atomic Mode Setting Function Reference
Frame Buffer Abstraction
Dumb Buffer Objects
Output Polling
Locking
KMS Initialization and Cleanup
CRTCs (struct drm_crtc)
Planes (struct drm_plane)
Encoders (struct drm_encoder)
Connectors (struct drm_connector)
Cleanup
Output discovery and initialization example
KMS API Functions
KMS Data Structures
KMS Locking
Mode Setting Helper Functions
Atomic Modeset Helper Functions Reference
Modeset Helper Reference for Common Vtables
Legacy CRTC/Modeset Helper Functions Reference
Output Probing Helper Functions Reference
fbdev Helper Functions Reference
Display Port Helper Functions Reference
Display Port MST Helper Functions Reference
MIPI DSI Helper Functions Reference
EDID Helper Functions Reference
Rectangle Utilities Reference
Flip-work Helper Reference
HDMI Infoframes Helper Reference
Plane Helper Reference
Tile group
Bridges
KMS Properties
Existing KMS Properties
Vertical Blanking
Vertical Blanking and Interrupt Handling Functions Reference
Open/Close, File Operations and IOCTLs
Open and Close
File Operations
IOCTLs
Legacy Support Code
Legacy Suspend/Resume
Legacy DMA Services
3. Userland interfaces
Render nodes
VBlank event handling
II. DRM Drivers
4. drm/i915 Intel GFX Driver
-
Display Hardware Handling
Mode Setting Infrastructure
Frontbuffer Tracking
Display FIFO Underrun Reporting
Plane Configuration
Atomic Plane Helpers
Output Probing
Hotplug
High Definition Audio
Panel Self Refresh PSR (PSR/SRD)
Frame Buffer Compression (FBC)
Display Refresh Rate Switching (DRRS)
DPIO
CSR firmware support for DMC
Memory Management and Command Submission
Batchbuffer Parsing
Batchbuffer Pools
Logical Rings, Logical Ring Contexts and Execlists
Global GTT views
GTT Fences and Swizzling
Object Tiling IOCTLs
Buffer Object Eviction
Buffer Object Memory Shrinking
GuC
GuC-specific firmware loader
GuC-based command submission
GuC Firmware Layout
Tracing
i915_ppgtt_create and i915_ppgtt_release
i915_context_create and i915_context_free
switch_mm
III. vga_switcheroo
6. API
Public functions
Public structures
Public constants
Private structures
7. Handlers
vga_switcheroo documentation
Copyright © 2008-2009, 2013-2014 Intel Corporation
Copyright © 2012 Laurent Pinchart
Copyright © 2015 Lukas Wunner
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.0 | 2012-07-13 | LP |
Added extensive documentation about driver internals. | ||
Revision 1.1 | 2015-10-11 | LW |
Added vga_switcheroo documentation. |
Table of Contents
-
I. DRM Core
- 2. DRM Internals
- Memory management The Translation Table Manager (TTM) The Graphics Execution Manager (GEM) GEM Function Reference VMA Offset Manager PRIME Buffer Sharing PRIME Function References DRM MM Range Allocator DRM MM Range Allocator Function References CMA Helper Functions Reference Mode Setting Display Modes Function Reference Atomic Mode Setting Function Reference Frame Buffer Abstraction Dumb Buffer Objects Output Polling Locking KMS Initialization and Cleanup CRTCs (struct drm_crtc) Planes (struct drm_plane) Encoders (struct drm_encoder) Connectors (struct drm_connector) Cleanup Output discovery and initialization example KMS API Functions KMS Data Structures KMS Locking Mode Setting Helper Functions Atomic Modeset Helper Functions Reference Modeset Helper Reference for Common Vtables Legacy CRTC/Modeset Helper Functions Reference Output Probing Helper Functions Reference fbdev Helper Functions Reference Display Port Helper Functions Reference Display Port MST Helper Functions Reference MIPI DSI Helper Functions Reference EDID Helper Functions Reference Rectangle Utilities Reference Flip-work Helper Reference HDMI Infoframes Helper Reference Plane Helper Reference Tile group Bridges KMS Properties Existing KMS Properties Vertical Blanking Vertical Blanking and Interrupt Handling Functions Reference Open/Close, File Operations and IOCTLs Open and Close File Operations IOCTLs Legacy Support Code Legacy Suspend/Resume Legacy DMA Services
-
4. drm/i915 Intel GFX Driver
- Display Hardware Handling Mode Setting Infrastructure Frontbuffer Tracking Display FIFO Underrun Reporting Plane Configuration Atomic Plane Helpers Output Probing Hotplug High Definition Audio Panel Self Refresh PSR (PSR/SRD) Frame Buffer Compression (FBC) Display Refresh Rate Switching (DRRS) DPIO CSR firmware support for DMC