Commit | Line | Data |
---|---|---|
22554020 JN |
1 | =========================== |
2 | drm/i915 Intel GFX Driver | |
3 | =========================== | |
ca00c2b9 JN |
4 | |
5 | The drm/i915 driver supports all (with the exception of some very early | |
6 | models) integrated GFX chipsets with both Intel display and rendering | |
7 | blocks. This excludes a set of SoC platforms with an SGX rendering unit, | |
8 | those have basic support through the gma500 drm driver. | |
9 | ||
10 | Core Driver Infrastructure | |
22554020 | 11 | ========================== |
ca00c2b9 JN |
12 | |
13 | This section covers core driver infrastructure used by both the display | |
14 | and the GEM parts of the driver. | |
15 | ||
16 | Runtime Power Management | |
22554020 | 17 | ------------------------ |
ca00c2b9 JN |
18 | |
19 | .. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c | |
20 | :doc: runtime pm | |
21 | ||
22 | .. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c | |
23 | :internal: | |
24 | ||
25 | .. kernel-doc:: drivers/gpu/drm/i915/intel_uncore.c | |
26 | :internal: | |
27 | ||
28 | Interrupt Handling | |
22554020 | 29 | ------------------ |
ca00c2b9 JN |
30 | |
31 | .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c | |
32 | :doc: interrupt handling | |
33 | ||
34 | .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c | |
35 | :functions: intel_irq_init intel_irq_init_hw intel_hpd_init | |
36 | ||
37 | .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c | |
38 | :functions: intel_runtime_pm_disable_interrupts | |
39 | ||
40 | .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c | |
41 | :functions: intel_runtime_pm_enable_interrupts | |
42 | ||
43 | Intel GVT-g Guest Support(vGPU) | |
22554020 | 44 | ------------------------------- |
ca00c2b9 JN |
45 | |
46 | .. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c | |
47 | :doc: Intel GVT-g guest support | |
48 | ||
49 | .. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c | |
50 | :internal: | |
51 | ||
22681c7b ZW |
52 | Intel GVT-g Host Support(vGPU device model) |
53 | ------------------------------------------- | |
54 | ||
55 | .. kernel-doc:: drivers/gpu/drm/i915/intel_gvt.c | |
56 | :doc: Intel GVT-g host support | |
57 | ||
58 | .. kernel-doc:: drivers/gpu/drm/i915/intel_gvt.c | |
59 | :internal: | |
60 | ||
ca00c2b9 | 61 | Display Hardware Handling |
22554020 | 62 | ========================= |
ca00c2b9 JN |
63 | |
64 | This section covers everything related to the display hardware including | |
65 | the mode setting infrastructure, plane, sprite and cursor handling and | |
66 | display, output probing and related topics. | |
67 | ||
68 | Mode Setting Infrastructure | |
22554020 | 69 | --------------------------- |
ca00c2b9 JN |
70 | |
71 | The i915 driver is thus far the only DRM driver which doesn't use the | |
72 | common DRM helper code to implement mode setting sequences. Thus it has | |
73 | its own tailor-made infrastructure for executing a display configuration | |
74 | change. | |
75 | ||
76 | Frontbuffer Tracking | |
22554020 | 77 | -------------------- |
ca00c2b9 JN |
78 | |
79 | .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c | |
80 | :doc: frontbuffer tracking | |
81 | ||
5d723d7a CW |
82 | .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.h |
83 | :internal: | |
84 | ||
ca00c2b9 JN |
85 | .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c |
86 | :internal: | |
87 | ||
88 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c | |
89 | :functions: i915_gem_track_fb | |
90 | ||
91 | Display FIFO Underrun Reporting | |
22554020 | 92 | ------------------------------- |
ca00c2b9 JN |
93 | |
94 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c | |
95 | :doc: fifo underrun handling | |
96 | ||
97 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c | |
98 | :internal: | |
99 | ||
100 | Plane Configuration | |
22554020 | 101 | ------------------- |
ca00c2b9 JN |
102 | |
103 | This section covers plane configuration and composition with the primary | |
104 | plane, sprites, cursors and overlays. This includes the infrastructure | |
105 | to do atomic vsync'ed updates of all this state and also tightly coupled | |
106 | topics like watermark setup and computation, framebuffer compression and | |
107 | panel self refresh. | |
108 | ||
109 | Atomic Plane Helpers | |
22554020 | 110 | -------------------- |
ca00c2b9 JN |
111 | |
112 | .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c | |
113 | :doc: atomic plane helpers | |
114 | ||
115 | .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c | |
116 | :internal: | |
117 | ||
118 | Output Probing | |
22554020 | 119 | -------------- |
ca00c2b9 JN |
120 | |
121 | This section covers output probing and related infrastructure like the | |
122 | hotplug interrupt storm detection and mitigation code. Note that the | |
123 | i915 driver still uses most of the common DRM helper code for output | |
124 | probing, so those sections fully apply. | |
125 | ||
126 | Hotplug | |
22554020 | 127 | ------- |
ca00c2b9 JN |
128 | |
129 | .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c | |
130 | :doc: Hotplug | |
131 | ||
132 | .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c | |
133 | :internal: | |
134 | ||
135 | High Definition Audio | |
22554020 | 136 | --------------------- |
ca00c2b9 JN |
137 | |
138 | .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c | |
139 | :doc: High Definition Audio over HDMI and Display Port | |
140 | ||
141 | .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c | |
142 | :internal: | |
143 | ||
144 | .. kernel-doc:: include/drm/i915_component.h | |
145 | :internal: | |
146 | ||
eacc8daf TI |
147 | Intel HDMI LPE Audio Support |
148 | ---------------------------- | |
149 | ||
150 | .. kernel-doc:: drivers/gpu/drm/i915/intel_lpe_audio.c | |
151 | :doc: LPE Audio integration for HDMI or DP playback | |
152 | ||
153 | .. kernel-doc:: drivers/gpu/drm/i915/intel_lpe_audio.c | |
154 | :internal: | |
155 | ||
ca00c2b9 | 156 | Panel Self Refresh PSR (PSR/SRD) |
22554020 | 157 | -------------------------------- |
ca00c2b9 JN |
158 | |
159 | .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c | |
160 | :doc: Panel Self Refresh (PSR/SRD) | |
161 | ||
162 | .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c | |
163 | :internal: | |
164 | ||
165 | Frame Buffer Compression (FBC) | |
22554020 | 166 | ------------------------------ |
ca00c2b9 JN |
167 | |
168 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c | |
169 | :doc: Frame Buffer Compression (FBC) | |
170 | ||
171 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c | |
172 | :internal: | |
173 | ||
174 | Display Refresh Rate Switching (DRRS) | |
22554020 | 175 | ------------------------------------- |
ca00c2b9 JN |
176 | |
177 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
178 | :doc: Display Refresh Rate Switching (DRRS) | |
179 | ||
180 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
181 | :functions: intel_dp_set_drrs_state | |
182 | ||
183 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
184 | :functions: intel_edp_drrs_enable | |
185 | ||
186 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
187 | :functions: intel_edp_drrs_disable | |
188 | ||
189 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
190 | :functions: intel_edp_drrs_invalidate | |
191 | ||
192 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
193 | :functions: intel_edp_drrs_flush | |
194 | ||
195 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
196 | :functions: intel_dp_drrs_init | |
197 | ||
198 | DPIO | |
22554020 | 199 | ---- |
ca00c2b9 | 200 | |
f38861b8 | 201 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dpio_phy.c |
ca00c2b9 JN |
202 | :doc: DPIO |
203 | ||
204 | CSR firmware support for DMC | |
22554020 | 205 | ---------------------------- |
ca00c2b9 JN |
206 | |
207 | .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c | |
208 | :doc: csr support for dmc | |
209 | ||
210 | .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c | |
211 | :internal: | |
212 | ||
213 | Video BIOS Table (VBT) | |
22554020 | 214 | ---------------------- |
ca00c2b9 JN |
215 | |
216 | .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c | |
217 | :doc: Video BIOS Table (VBT) | |
218 | ||
219 | .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c | |
220 | :internal: | |
221 | ||
222 | .. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h | |
223 | :internal: | |
224 | ||
7ff89ca2 VS |
225 | Display clocks |
226 | -------------- | |
227 | ||
228 | .. kernel-doc:: drivers/gpu/drm/i915/intel_cdclk.c | |
229 | :doc: CDCLK / RAWCLK | |
230 | ||
231 | .. kernel-doc:: drivers/gpu/drm/i915/intel_cdclk.c | |
232 | :internal: | |
233 | ||
294591cf ACO |
234 | Display PLLs |
235 | ------------ | |
236 | ||
237 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.c | |
238 | :doc: Display PLLs | |
239 | ||
240 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.c | |
241 | :internal: | |
242 | ||
243 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.h | |
244 | :internal: | |
245 | ||
ca00c2b9 | 246 | Memory Management and Command Submission |
22554020 | 247 | ======================================== |
ca00c2b9 JN |
248 | |
249 | This sections covers all things related to the GEM implementation in the | |
250 | i915 driver. | |
251 | ||
252 | Batchbuffer Parsing | |
22554020 | 253 | ------------------- |
ca00c2b9 JN |
254 | |
255 | .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c | |
256 | :doc: batch buffer command parser | |
257 | ||
258 | .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c | |
259 | :internal: | |
260 | ||
261 | Batchbuffer Pools | |
22554020 | 262 | ----------------- |
ca00c2b9 JN |
263 | |
264 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c | |
265 | :doc: batch pool | |
266 | ||
267 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c | |
268 | :internal: | |
269 | ||
270 | Logical Rings, Logical Ring Contexts and Execlists | |
22554020 | 271 | -------------------------------------------------- |
ca00c2b9 JN |
272 | |
273 | .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c | |
274 | :doc: Logical Rings, Logical Ring Contexts and Execlists | |
275 | ||
276 | .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c | |
277 | :internal: | |
278 | ||
279 | Global GTT views | |
22554020 | 280 | ---------------- |
ca00c2b9 JN |
281 | |
282 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c | |
283 | :doc: Global GTT views | |
284 | ||
285 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c | |
286 | :internal: | |
287 | ||
288 | GTT Fences and Swizzling | |
22554020 | 289 | ------------------------ |
ca00c2b9 | 290 | |
ebc896db | 291 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c |
ca00c2b9 JN |
292 | :internal: |
293 | ||
294 | Global GTT Fence Handling | |
22554020 | 295 | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
ca00c2b9 | 296 | |
ebc896db | 297 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c |
ca00c2b9 JN |
298 | :doc: fence register handling |
299 | ||
300 | Hardware Tiling and Swizzling Details | |
22554020 | 301 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
ca00c2b9 | 302 | |
ebc896db | 303 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c |
ca00c2b9 JN |
304 | :doc: tiling swizzling details |
305 | ||
306 | Object Tiling IOCTLs | |
22554020 | 307 | -------------------- |
ca00c2b9 JN |
308 | |
309 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c | |
310 | :internal: | |
311 | ||
312 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c | |
313 | :doc: buffer object tiling | |
314 | ||
315 | Buffer Object Eviction | |
22554020 | 316 | ---------------------- |
ca00c2b9 JN |
317 | |
318 | This section documents the interface functions for evicting buffer | |
319 | objects to make space available in the virtual gpu address spaces. Note | |
320 | that this is mostly orthogonal to shrinking buffer objects caches, which | |
321 | has the goal to make main memory (shared with the gpu through the | |
322 | unified memory architecture) available. | |
323 | ||
324 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c | |
325 | :internal: | |
326 | ||
327 | Buffer Object Memory Shrinking | |
22554020 | 328 | ------------------------------ |
ca00c2b9 JN |
329 | |
330 | This section documents the interface function for shrinking memory usage | |
331 | of buffer object caches. Shrinking is used to make main memory | |
332 | available. Note that this is mostly orthogonal to evicting buffer | |
333 | objects, which has the goal to make space in gpu virtual address spaces. | |
334 | ||
335 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c | |
336 | :internal: | |
337 | ||
338 | GuC | |
22554020 | 339 | === |
ca00c2b9 JN |
340 | |
341 | GuC-specific firmware loader | |
22554020 | 342 | ---------------------------- |
ca00c2b9 | 343 | |
c1f08c41 | 344 | .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c |
ca00c2b9 JN |
345 | :internal: |
346 | ||
347 | GuC-based command submission | |
22554020 | 348 | ---------------------------- |
ca00c2b9 JN |
349 | |
350 | .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c | |
351 | :doc: GuC-based command submission | |
352 | ||
353 | .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c | |
354 | :internal: | |
355 | ||
356 | GuC Firmware Layout | |
22554020 | 357 | ------------------- |
ca00c2b9 JN |
358 | |
359 | .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h | |
360 | :doc: GuC Firmware Layout | |
361 | ||
362 | Tracing | |
22554020 | 363 | ======= |
ca00c2b9 JN |
364 | |
365 | This sections covers all things related to the tracepoints implemented | |
366 | in the i915 driver. | |
367 | ||
368 | i915_ppgtt_create and i915_ppgtt_release | |
22554020 | 369 | ---------------------------------------- |
ca00c2b9 JN |
370 | |
371 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h | |
372 | :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints | |
373 | ||
374 | i915_context_create and i915_context_free | |
22554020 | 375 | ----------------------------------------- |
ca00c2b9 JN |
376 | |
377 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h | |
378 | :doc: i915_context_create and i915_context_free tracepoints | |
379 | ||
380 | switch_mm | |
22554020 | 381 | --------- |
ca00c2b9 JN |
382 | |
383 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h | |
384 | :doc: switch_mm tracepoint | |
385 | ||
16d98b31 RB |
386 | Perf |
387 | ==== | |
388 | ||
389 | Overview | |
390 | -------- | |
391 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
392 | :doc: i915 Perf Overview | |
393 | ||
394 | Comparison with Core Perf | |
395 | ------------------------- | |
396 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
397 | :doc: i915 Perf History and Comparison with Core Perf | |
398 | ||
399 | i915 Driver Entry Points | |
400 | ------------------------ | |
401 | ||
402 | This section covers the entrypoints exported outside of i915_perf.c to | |
403 | integrate with drm/i915 and to handle the `DRM_I915_PERF_OPEN` ioctl. | |
404 | ||
405 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
406 | :functions: i915_perf_init | |
407 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
408 | :functions: i915_perf_fini | |
409 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
410 | :functions: i915_perf_register | |
411 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
412 | :functions: i915_perf_unregister | |
413 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
414 | :functions: i915_perf_open_ioctl | |
415 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
416 | :functions: i915_perf_release | |
f89823c2 LL |
417 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
418 | :functions: i915_perf_add_config_ioctl | |
419 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
420 | :functions: i915_perf_remove_config_ioctl | |
16d98b31 RB |
421 | |
422 | i915 Perf Stream | |
423 | ---------------- | |
424 | ||
425 | This section covers the stream-semantics-agnostic structures and functions | |
426 | for representing an i915 perf stream FD and associated file operations. | |
427 | ||
428 | .. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h | |
429 | :functions: i915_perf_stream | |
430 | .. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h | |
431 | :functions: i915_perf_stream_ops | |
432 | ||
433 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
434 | :functions: read_properties_unlocked | |
435 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
436 | :functions: i915_perf_open_ioctl_locked | |
437 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
438 | :functions: i915_perf_destroy_locked | |
439 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
440 | :functions: i915_perf_read | |
441 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
442 | :functions: i915_perf_ioctl | |
443 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
444 | :functions: i915_perf_enable_locked | |
445 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
446 | :functions: i915_perf_disable_locked | |
447 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
448 | :functions: i915_perf_poll | |
449 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
450 | :functions: i915_perf_poll_locked | |
451 | ||
452 | i915 Perf Observation Architecture Stream | |
453 | ----------------------------------------- | |
454 | ||
455 | .. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h | |
456 | :functions: i915_oa_ops | |
457 | ||
458 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
459 | :functions: i915_oa_stream_init | |
460 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
461 | :functions: i915_oa_read | |
462 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
463 | :functions: i915_oa_stream_enable | |
464 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
465 | :functions: i915_oa_stream_disable | |
466 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
467 | :functions: i915_oa_wait_unlocked | |
468 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
469 | :functions: i915_oa_poll_wait | |
470 | ||
471 | All i915 Perf Internals | |
472 | ----------------------- | |
473 | ||
474 | This section simply includes all currently documented i915 perf internals, in | |
475 | no particular order, but may include some more minor utilities or platform | |
476 | specific details than found in the more high-level sections. | |
477 | ||
478 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c | |
479 | :internal: | |
1aa920ea JN |
480 | |
481 | Style | |
482 | ===== | |
483 | ||
484 | The drm/i915 driver codebase has some style rules in addition to (and, in some | |
485 | cases, deviating from) the kernel coding style. | |
486 | ||
487 | Register macro definition style | |
488 | ------------------------------- | |
489 | ||
490 | The style guide for ``i915_reg.h``. | |
491 | ||
492 | .. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h | |
493 | :doc: The i915 register macro definition style guide |