Linux GPU Driver Developer’s Guide¶
- Introduction
- DRM Internals
- DRM Memory Management
- Kernel Mode Setting (KMS)
- Overview
- KMS Core Structures and Functions
- Modeset Base Object Abstraction
- Atomic Mode Setting
- CRTC Abstraction
- Frame Buffer Abstraction
- DRM Format Handling
- Dumb Buffer Objects
- Plane Abstraction
- Display Modes Function Reference
- Connector Abstraction
- Encoder Abstraction
- KMS Locking
- KMS Properties
- Vertical Blanking
- Mode Setting Helper Functions
- Modeset Helper Reference for Common Vtables
- Atomic Modeset Helper Functions Reference
- Simple KMS Helper Reference
- fbdev Helper Functions Reference
- Framebuffer CMA Helper Functions Reference
- Framebuffer GEM Helper Reference
- Bridges
- Panel Helper Reference
- Display Port Helper Functions Reference
- Display Port CEC Helper Functions Reference
- Display Port Dual Mode Adaptor Helper Functions Reference
- Display Port MST Helpers
- MIPI DSI Helper Functions Reference
- Display Stream Compression Helper Functions Reference
- Output Probing Helper Functions Reference
- EDID Helper Functions Reference
- SCDC Helper Functions Reference
- HDMI Infoframes Helper Reference
- Rectangle Utilities Reference
- Flip-work Helper Reference
- Auxiliary Modeset Helpers
- OF/DT Helpers
- Legacy Plane Helper Reference
- Legacy CRTC/Modeset Helper Functions Reference
- Userland interfaces
- Kernel clients
- GPU Driver Documentation
- drm/amdgpu AMDgpu driver
- drm/amd/display - Display Core (DC)
- drm/i915 Intel GFX Driver
- Core Driver Infrastructure
- Display Hardware Handling
- Mode Setting Infrastructure
- Frontbuffer Tracking
- Display FIFO Underrun Reporting
- Plane Configuration
- Atomic Plane Helpers
- Output Probing
- Hotplug
- High Definition Audio
- Intel HDMI LPE Audio Support
- Panel Self Refresh PSR (PSR/SRD)
- Frame Buffer Compression (FBC)
- Display Refresh Rate Switching (DRRS)
- DPIO
- CSR firmware support for DMC
- Video BIOS Table (VBT)
- Display clocks
- Display PLLs
- Memory Management and Command Submission
- WOPCM
- GuC
- Tracing
- Perf
- Style
- drm/meson AmLogic Meson Video Processing Unit
- drm/pl111 ARM PrimeCell PL111 CLCD Driver
- drm/tegra NVIDIA Tegra GPU and display driver
- drm/tinydrm Driver library
- drm/tve200 Faraday TV Encoder 200
- drm/v3d Broadcom V3D Graphics Driver
- drm/vc4 Broadcom VC4 Graphics Driver
- drm/vkms Virtual Kernel Modesetting
- drm/bridge/dw-hdmi Synopsys DesignWare HDMI Controller
- drm/xen-front Xen para-virtualized frontend driver
- Arm Framebuffer Compression (AFBC)
- drm/komeda Arm display driver
- VGA Switcheroo
- VGA Arbiter
- TODO list
- Subsystem-wide refactorings
- De-midlayer drivers
- Remove custom dumb_map_offset implementations
- Convert existing KMS drivers to atomic modesetting
- Clean up the clipped coordination confusion around planes
- Convert early atomic drivers to async commit helpers
- Fallout from atomic KMS
- Get rid of dev->struct_mutex from GEM drivers
- Convert instances of dev_info/dev_err/dev_warn to their DRM_DEV_* equivalent
- Convert drivers to use simple modeset suspend/resume
- Convert drivers to use drm_fb_helper_fbdev_setup/teardown()
- Clean up mmap forwarding
- Generic fbdev defio support
- Put a reservation_object into drm_gem_object
- idr_init_base()
- Defaults for .gem_prime_import and export
- struct drm_gem_object_funcs
- Use DRM_MODESET_LOCK_ALL_* helpers instead of boilerplate
- Rename CMA helpers to DMA helpers
- Convert direct mode.vrefresh accesses to use drm_mode_vrefresh()
- Remove drm_display_mode.hsync
- Core refactorings
- Better Testing
- Driver Specific
- Outside DRM
- Subsystem-wide refactorings