]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - Documentation/gpu/i915.rst
Documentation/gpu: split up the gpu documentation
[mirror_ubuntu-hirsute-kernel.git] / Documentation / gpu / i915.rst
CommitLineData
ca00c2b9
JN
1drm/i915 Intel GFX Driver
2=========================
3
4The drm/i915 driver supports all (with the exception of some very early
5models) integrated GFX chipsets with both Intel display and rendering
6blocks. This excludes a set of SoC platforms with an SGX rendering unit,
7those have basic support through the gma500 drm driver.
8
9Core Driver Infrastructure
10--------------------------
11
12This section covers core driver infrastructure used by both the display
13and the GEM parts of the driver.
14
15Runtime Power Management
16~~~~~~~~~~~~~~~~~~~~~~~~
17
18.. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
19 :doc: runtime pm
20
21.. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
22 :internal:
23
24.. kernel-doc:: drivers/gpu/drm/i915/intel_uncore.c
25 :internal:
26
27Interrupt Handling
28~~~~~~~~~~~~~~~~~~
29
30.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
31 :doc: interrupt handling
32
33.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
34 :functions: intel_irq_init intel_irq_init_hw intel_hpd_init
35
36.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
37 :functions: intel_runtime_pm_disable_interrupts
38
39.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
40 :functions: intel_runtime_pm_enable_interrupts
41
42Intel GVT-g Guest Support(vGPU)
43~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44
45.. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
46 :doc: Intel GVT-g guest support
47
48.. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
49 :internal:
50
51Display Hardware Handling
52-------------------------
53
54This section covers everything related to the display hardware including
55the mode setting infrastructure, plane, sprite and cursor handling and
56display, output probing and related topics.
57
58Mode Setting Infrastructure
59~~~~~~~~~~~~~~~~~~~~~~~~~~~
60
61The i915 driver is thus far the only DRM driver which doesn't use the
62common DRM helper code to implement mode setting sequences. Thus it has
63its own tailor-made infrastructure for executing a display configuration
64change.
65
66Frontbuffer Tracking
67~~~~~~~~~~~~~~~~~~~~
68
69.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
70 :doc: frontbuffer tracking
71
72.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
73 :internal:
74
75.. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c
76 :functions: i915_gem_track_fb
77
78Display FIFO Underrun Reporting
79~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80
81.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
82 :doc: fifo underrun handling
83
84.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
85 :internal:
86
87Plane Configuration
88~~~~~~~~~~~~~~~~~~~
89
90This section covers plane configuration and composition with the primary
91plane, sprites, cursors and overlays. This includes the infrastructure
92to do atomic vsync'ed updates of all this state and also tightly coupled
93topics like watermark setup and computation, framebuffer compression and
94panel self refresh.
95
96Atomic Plane Helpers
97~~~~~~~~~~~~~~~~~~~~
98
99.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
100 :doc: atomic plane helpers
101
102.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
103 :internal:
104
105Output Probing
106~~~~~~~~~~~~~~
107
108This section covers output probing and related infrastructure like the
109hotplug interrupt storm detection and mitigation code. Note that the
110i915 driver still uses most of the common DRM helper code for output
111probing, so those sections fully apply.
112
113Hotplug
114~~~~~~~
115
116.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
117 :doc: Hotplug
118
119.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
120 :internal:
121
122High Definition Audio
123~~~~~~~~~~~~~~~~~~~~~
124
125.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
126 :doc: High Definition Audio over HDMI and Display Port
127
128.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
129 :internal:
130
131.. kernel-doc:: include/drm/i915_component.h
132 :internal:
133
134Panel Self Refresh PSR (PSR/SRD)
135~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136
137.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
138 :doc: Panel Self Refresh (PSR/SRD)
139
140.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
141 :internal:
142
143Frame Buffer Compression (FBC)
144~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145
146.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
147 :doc: Frame Buffer Compression (FBC)
148
149.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
150 :internal:
151
152Display Refresh Rate Switching (DRRS)
153~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
154
155.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
156 :doc: Display Refresh Rate Switching (DRRS)
157
158.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
159 :functions: intel_dp_set_drrs_state
160
161.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
162 :functions: intel_edp_drrs_enable
163
164.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
165 :functions: intel_edp_drrs_disable
166
167.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
168 :functions: intel_edp_drrs_invalidate
169
170.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
171 :functions: intel_edp_drrs_flush
172
173.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
174 :functions: intel_dp_drrs_init
175
176DPIO
177~~~~
178
179.. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h
180 :doc: DPIO
181
182CSR firmware support for DMC
183~~~~~~~~~~~~~~~~~~~~~~~~~~~~
184
185.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
186 :doc: csr support for dmc
187
188.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
189 :internal:
190
191Video BIOS Table (VBT)
192~~~~~~~~~~~~~~~~~~~~~~
193
194.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
195 :doc: Video BIOS Table (VBT)
196
197.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
198 :internal:
199
200.. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h
201 :internal:
202
203Memory Management and Command Submission
204----------------------------------------
205
206This sections covers all things related to the GEM implementation in the
207i915 driver.
208
209Batchbuffer Parsing
210~~~~~~~~~~~~~~~~~~~
211
212.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
213 :doc: batch buffer command parser
214
215.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
216 :internal:
217
218Batchbuffer Pools
219~~~~~~~~~~~~~~~~~
220
221.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
222 :doc: batch pool
223
224.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
225 :internal:
226
227Logical Rings, Logical Ring Contexts and Execlists
228~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229
230.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
231 :doc: Logical Rings, Logical Ring Contexts and Execlists
232
233.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
234 :internal:
235
236Global GTT views
237~~~~~~~~~~~~~~~~
238
239.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
240 :doc: Global GTT views
241
242.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
243 :internal:
244
245GTT Fences and Swizzling
246~~~~~~~~~~~~~~~~~~~~~~~~
247
248.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
249 :internal:
250
251Global GTT Fence Handling
252^^^^^^^^^^^^^^^^^^^^^^^^^
253
254.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
255 :doc: fence register handling
256
257Hardware Tiling and Swizzling Details
258^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
259
260.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
261 :doc: tiling swizzling details
262
263Object Tiling IOCTLs
264~~~~~~~~~~~~~~~~~~~~
265
266.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
267 :internal:
268
269.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
270 :doc: buffer object tiling
271
272Buffer Object Eviction
273~~~~~~~~~~~~~~~~~~~~~~
274
275This section documents the interface functions for evicting buffer
276objects to make space available in the virtual gpu address spaces. Note
277that this is mostly orthogonal to shrinking buffer objects caches, which
278has the goal to make main memory (shared with the gpu through the
279unified memory architecture) available.
280
281.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c
282 :internal:
283
284Buffer Object Memory Shrinking
285~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
286
287This section documents the interface function for shrinking memory usage
288of buffer object caches. Shrinking is used to make main memory
289available. Note that this is mostly orthogonal to evicting buffer
290objects, which has the goal to make space in gpu virtual address spaces.
291
292.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
293 :internal:
294
295GuC
296---
297
298GuC-specific firmware loader
299~~~~~~~~~~~~~~~~~~~~~~~~~~~~
300
301.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
302 :doc: GuC-specific firmware loader
303
304.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
305 :internal:
306
307GuC-based command submission
308~~~~~~~~~~~~~~~~~~~~~~~~~~~~
309
310.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
311 :doc: GuC-based command submission
312
313.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
314 :internal:
315
316GuC Firmware Layout
317~~~~~~~~~~~~~~~~~~~
318
319.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h
320 :doc: GuC Firmware Layout
321
322Tracing
323-------
324
325This sections covers all things related to the tracepoints implemented
326in the i915 driver.
327
328i915_ppgtt_create and i915_ppgtt_release
329~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
330
331.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
332 :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints
333
334i915_context_create and i915_context_free
335~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
336
337.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
338 :doc: i915_context_create and i915_context_free tracepoints
339
340switch_mm
341~~~~~~~~~~
342
343.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
344 :doc: switch_mm tracepoint
345
346.. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c