1 drm/i915 Intel GFX Driver
2 =========================
4 The drm/i915 driver supports all (with the exception of some very early
5 models) integrated GFX chipsets with both Intel display and rendering
6 blocks. This excludes a set of SoC platforms with an SGX rendering unit,
7 those have basic support through the gma500 drm driver.
9 Core Driver Infrastructure
10 --------------------------
12 This section covers core driver infrastructure used by both the display
13 and the GEM parts of the driver.
15 Runtime Power Management
16 ~~~~~~~~~~~~~~~~~~~~~~~~
18 .. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
21 .. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
24 .. kernel-doc:: drivers/gpu/drm/i915/intel_uncore.c
30 .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
31 :doc: interrupt handling
33 .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
34 :functions: intel_irq_init intel_irq_init_hw intel_hpd_init
36 .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
37 :functions: intel_runtime_pm_disable_interrupts
39 .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
40 :functions: intel_runtime_pm_enable_interrupts
42 Intel GVT-g Guest Support(vGPU)
43 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 .. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
46 :doc: Intel GVT-g guest support
48 .. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
51 Display Hardware Handling
52 -------------------------
54 This section covers everything related to the display hardware including
55 the mode setting infrastructure, plane, sprite and cursor handling and
56 display, output probing and related topics.
58 Mode Setting Infrastructure
59 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
61 The i915 driver is thus far the only DRM driver which doesn't use the
62 common DRM helper code to implement mode setting sequences. Thus it has
63 its own tailor-made infrastructure for executing a display configuration
69 .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
70 :doc: frontbuffer tracking
72 .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
75 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c
76 :functions: i915_gem_track_fb
78 Display FIFO Underrun Reporting
79 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81 .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
82 :doc: fifo underrun handling
84 .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
90 This section covers plane configuration and composition with the primary
91 plane, sprites, cursors and overlays. This includes the infrastructure
92 to do atomic vsync'ed updates of all this state and also tightly coupled
93 topics like watermark setup and computation, framebuffer compression and
99 .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
100 :doc: atomic plane helpers
102 .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
108 This section covers output probing and related infrastructure like the
109 hotplug interrupt storm detection and mitigation code. Note that the
110 i915 driver still uses most of the common DRM helper code for output
111 probing, so those sections fully apply.
116 .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
119 .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
122 High Definition Audio
123 ~~~~~~~~~~~~~~~~~~~~~
125 .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
126 :doc: High Definition Audio over HDMI and Display Port
128 .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
131 .. kernel-doc:: include/drm/i915_component.h
134 Panel Self Refresh PSR (PSR/SRD)
135 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137 .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
138 :doc: Panel Self Refresh (PSR/SRD)
140 .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
143 Frame Buffer Compression (FBC)
144 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146 .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
147 :doc: Frame Buffer Compression (FBC)
149 .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
152 Display Refresh Rate Switching (DRRS)
153 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
155 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
156 :doc: Display Refresh Rate Switching (DRRS)
158 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
159 :functions: intel_dp_set_drrs_state
161 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
162 :functions: intel_edp_drrs_enable
164 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
165 :functions: intel_edp_drrs_disable
167 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
168 :functions: intel_edp_drrs_invalidate
170 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
171 :functions: intel_edp_drrs_flush
173 .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
174 :functions: intel_dp_drrs_init
179 .. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h
182 CSR firmware support for DMC
183 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
185 .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
186 :doc: csr support for dmc
188 .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
191 Video BIOS Table (VBT)
192 ~~~~~~~~~~~~~~~~~~~~~~
194 .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
195 :doc: Video BIOS Table (VBT)
197 .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
200 .. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h
203 Memory Management and Command Submission
204 ----------------------------------------
206 This sections covers all things related to the GEM implementation in the
212 .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
213 :doc: batch buffer command parser
215 .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
221 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
224 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
227 Logical Rings, Logical Ring Contexts and Execlists
228 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
230 .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
231 :doc: Logical Rings, Logical Ring Contexts and Execlists
233 .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
239 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
240 :doc: Global GTT views
242 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
245 GTT Fences and Swizzling
246 ~~~~~~~~~~~~~~~~~~~~~~~~
248 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
251 Global GTT Fence Handling
252 ^^^^^^^^^^^^^^^^^^^^^^^^^
254 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
255 :doc: fence register handling
257 Hardware Tiling and Swizzling Details
258 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
260 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
261 :doc: tiling swizzling details
266 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
269 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
270 :doc: buffer object tiling
272 Buffer Object Eviction
273 ~~~~~~~~~~~~~~~~~~~~~~
275 This section documents the interface functions for evicting buffer
276 objects to make space available in the virtual gpu address spaces. Note
277 that this is mostly orthogonal to shrinking buffer objects caches, which
278 has the goal to make main memory (shared with the gpu through the
279 unified memory architecture) available.
281 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c
284 Buffer Object Memory Shrinking
285 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
287 This section documents the interface function for shrinking memory usage
288 of buffer object caches. Shrinking is used to make main memory
289 available. Note that this is mostly orthogonal to evicting buffer
290 objects, which has the goal to make space in gpu virtual address spaces.
292 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
298 GuC-specific firmware loader
299 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301 .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
302 :doc: GuC-specific firmware loader
304 .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
307 GuC-based command submission
308 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
310 .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
311 :doc: GuC-based command submission
313 .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
319 .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h
320 :doc: GuC Firmware Layout
325 This sections covers all things related to the tracepoints implemented
328 i915_ppgtt_create and i915_ppgtt_release
329 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
331 .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
332 :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints
334 i915_context_create and i915_context_free
335 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
337 .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
338 :doc: i915_context_create and i915_context_free tracepoints
343 .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
344 :doc: switch_mm tracepoint
346 .. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c