]> git.karo-electronics.de Git - linux-beck.git/blob - Documentation/gpu/i915.rst
9c6732123c3c7d09c984cf2f9f68813233b19f37
[linux-beck.git] / Documentation / gpu / i915.rst
1 drm/i915 Intel GFX Driver
2 =========================
3
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.
8
9 Core Driver Infrastructure
10 --------------------------
11
12 This section covers core driver infrastructure used by both the display
13 and the GEM parts of the driver.
14
15 Runtime 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
27 Interrupt 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
42 Intel 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
51 Display Hardware Handling
52 -------------------------
53
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.
57
58 Mode Setting Infrastructure
59 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
60
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
64 change.
65
66 Frontbuffer 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
78 Display 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
87 Plane Configuration
88 ~~~~~~~~~~~~~~~~~~~
89
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
94 panel self refresh.
95
96 Atomic 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
105 Output Probing
106 ~~~~~~~~~~~~~~
107
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.
112
113 Hotplug
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
122 High 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
134 Panel 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
143 Frame 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
152 Display 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
176 DPIO
177 ~~~~
178
179 .. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h
180    :doc: DPIO
181
182 CSR 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
191 Video 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
203 Memory Management and Command Submission
204 ----------------------------------------
205
206 This sections covers all things related to the GEM implementation in the
207 i915 driver.
208
209 Batchbuffer 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
218 Batchbuffer 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
227 Logical 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
236 Global 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
245 GTT Fences and Swizzling
246 ~~~~~~~~~~~~~~~~~~~~~~~~
247
248 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
249    :internal:
250
251 Global GTT Fence Handling
252 ^^^^^^^^^^^^^^^^^^^^^^^^^
253
254 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
255    :doc: fence register handling
256
257 Hardware Tiling and Swizzling Details
258 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
259
260 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
261    :doc: tiling swizzling details
262
263 Object 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
272 Buffer Object Eviction
273 ~~~~~~~~~~~~~~~~~~~~~~
274
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.
280
281 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c
282    :internal:
283
284 Buffer Object Memory Shrinking
285 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
286
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.
291
292 .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
293    :internal:
294
295 GuC
296 ---
297
298 GuC-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
307 GuC-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
316 GuC Firmware Layout
317 ~~~~~~~~~~~~~~~~~~~
318
319 .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h
320    :doc: GuC Firmware Layout
321
322 Tracing
323 -------
324
325 This sections covers all things related to the tracepoints implemented
326 in the i915 driver.
327
328 i915_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
334 i915_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
340 switch_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