i915.rst 12.3 KB
Newer Older
1 2 3
===========================
 drm/i915 Intel GFX Driver
===========================
4 5 6 7 8 9 10

The drm/i915 driver supports all (with the exception of some very early
models) integrated GFX chipsets with both Intel display and rendering
blocks. This excludes a set of SoC platforms with an SGX rendering unit,
those have basic support through the gma500 drm driver.

Core Driver Infrastructure
11
==========================
12 13 14 15 16

This section covers core driver infrastructure used by both the display
and the GEM parts of the driver.

Runtime Power Management
17
------------------------
18 19 20 21 22 23 24 25 26 27 28

.. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
   :doc: runtime pm

.. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
   :internal:

.. kernel-doc:: drivers/gpu/drm/i915/intel_uncore.c
   :internal:

Interrupt Handling
29
------------------
30 31 32 33 34 35 36 37 38 39 40 41 42 43

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
   :doc: interrupt handling

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
   :functions: intel_irq_init intel_irq_init_hw intel_hpd_init

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
   :functions: intel_runtime_pm_disable_interrupts

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
   :functions: intel_runtime_pm_enable_interrupts

Intel GVT-g Guest Support(vGPU)
44
-------------------------------
45 46 47 48 49 50 51

.. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
   :doc: Intel GVT-g guest support

.. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
   :internal:

52 53 54 55 56 57 58 59 60
Intel GVT-g Host Support(vGPU device model)
-------------------------------------------

.. kernel-doc:: drivers/gpu/drm/i915/intel_gvt.c
   :doc: Intel GVT-g host support

.. kernel-doc:: drivers/gpu/drm/i915/intel_gvt.c
   :internal:

61
Display Hardware Handling
62
=========================
63 64 65 66 67 68

This section covers everything related to the display hardware including
the mode setting infrastructure, plane, sprite and cursor handling and
display, output probing and related topics.

Mode Setting Infrastructure
69
---------------------------
70 71 72 73 74 75 76

The i915 driver is thus far the only DRM driver which doesn't use the
common DRM helper code to implement mode setting sequences. Thus it has
its own tailor-made infrastructure for executing a display configuration
change.

Frontbuffer Tracking
77
--------------------
78 79 80 81

.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
   :doc: frontbuffer tracking

82 83 84
.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.h
   :internal:

85 86 87 88 89 90 91
.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
   :internal:

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c
   :functions: i915_gem_track_fb

Display FIFO Underrun Reporting
92
-------------------------------
93 94 95 96 97 98 99 100

.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
   :doc: fifo underrun handling

.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
   :internal:

Plane Configuration
101
-------------------
102 103 104 105 106 107 108 109

This section covers plane configuration and composition with the primary
plane, sprites, cursors and overlays. This includes the infrastructure
to do atomic vsync'ed updates of all this state and also tightly coupled
topics like watermark setup and computation, framebuffer compression and
panel self refresh.

Atomic Plane Helpers
110
--------------------
111 112 113 114 115 116 117 118

.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
   :doc: atomic plane helpers

.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
   :internal:

Output Probing
119
--------------
120 121 122 123 124 125 126

This section covers output probing and related infrastructure like the
hotplug interrupt storm detection and mitigation code. Note that the
i915 driver still uses most of the common DRM helper code for output
probing, so those sections fully apply.

Hotplug
127
-------
128 129 130 131 132 133 134 135

.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
   :doc: Hotplug

.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
   :internal:

High Definition Audio
136
---------------------
137 138 139 140 141 142 143 144 145 146 147

.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
   :doc: High Definition Audio over HDMI and Display Port

.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
   :internal:

.. kernel-doc:: include/drm/i915_component.h
   :internal:

Panel Self Refresh PSR (PSR/SRD)
148
--------------------------------
149 150 151 152 153 154 155 156

.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
   :doc: Panel Self Refresh (PSR/SRD)

.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
   :internal:

Frame Buffer Compression (FBC)
157
------------------------------
158 159 160 161 162 163 164 165

.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
   :doc: Frame Buffer Compression (FBC)

.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
   :internal:

Display Refresh Rate Switching (DRRS)
166
-------------------------------------
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :doc: Display Refresh Rate Switching (DRRS)

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :functions: intel_dp_set_drrs_state

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :functions: intel_edp_drrs_enable

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :functions: intel_edp_drrs_disable

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :functions: intel_edp_drrs_invalidate

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :functions: intel_edp_drrs_flush

.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
   :functions: intel_dp_drrs_init

DPIO
190
----
191

192
.. kernel-doc:: drivers/gpu/drm/i915/intel_dpio_phy.c
193 194 195
   :doc: DPIO

CSR firmware support for DMC
196
----------------------------
197 198 199 200 201 202 203 204

.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
   :doc: csr support for dmc

.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
   :internal:

Video BIOS Table (VBT)
205
----------------------
206 207 208 209 210 211 212 213 214 215 216

.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
   :doc: Video BIOS Table (VBT)

.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
   :internal:

.. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h
   :internal:

Memory Management and Command Submission
217
========================================
218 219 220 221 222

This sections covers all things related to the GEM implementation in the
i915 driver.

Batchbuffer Parsing
223
-------------------
224 225 226 227 228 229 230 231

.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
   :doc: batch buffer command parser

.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
   :internal:

Batchbuffer Pools
232
-----------------
233 234 235 236 237 238 239 240

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
   :doc: batch pool

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
   :internal:

Logical Rings, Logical Ring Contexts and Execlists
241
--------------------------------------------------
242 243 244 245 246 247 248 249

.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
   :doc: Logical Rings, Logical Ring Contexts and Execlists

.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
   :internal:

Global GTT views
250
----------------
251 252 253 254 255 256 257 258

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
   :doc: Global GTT views

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
   :internal:

GTT Fences and Swizzling
259
------------------------
260

D
Daniel Vetter 已提交
261
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c
262 263 264
   :internal:

Global GTT Fence Handling
265
~~~~~~~~~~~~~~~~~~~~~~~~~
266

D
Daniel Vetter 已提交
267
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c
268 269 270
   :doc: fence register handling

Hardware Tiling and Swizzling Details
271
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
272

D
Daniel Vetter 已提交
273
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c
274 275 276
   :doc: tiling swizzling details

Object Tiling IOCTLs
277
--------------------
278 279 280 281 282 283 284 285

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
   :internal:

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
   :doc: buffer object tiling

Buffer Object Eviction
286
----------------------
287 288 289 290 291 292 293 294 295 296 297

This section documents the interface functions for evicting buffer
objects to make space available in the virtual gpu address spaces. Note
that this is mostly orthogonal to shrinking buffer objects caches, which
has the goal to make main memory (shared with the gpu through the
unified memory architecture) available.

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c
   :internal:

Buffer Object Memory Shrinking
298
------------------------------
299 300 301 302 303 304 305 306 307 308

This section documents the interface function for shrinking memory usage
of buffer object caches. Shrinking is used to make main memory
available. Note that this is mostly orthogonal to evicting buffer
objects, which has the goal to make space in gpu virtual address spaces.

.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
   :internal:

GuC
309
===
310 311

GuC-specific firmware loader
312
----------------------------
313 314 315 316 317 318 319 320

.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
   :doc: GuC-specific firmware loader

.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
   :internal:

GuC-based command submission
321
----------------------------
322 323 324 325 326 327 328 329

.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
   :doc: GuC-based command submission

.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
   :internal:

GuC Firmware Layout
330
-------------------
331 332 333 334 335

.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h
   :doc: GuC Firmware Layout

Tracing
336
=======
337 338 339 340 341

This sections covers all things related to the tracepoints implemented
in the i915 driver.

i915_ppgtt_create and i915_ppgtt_release
342
----------------------------------------
343 344 345 346 347

.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
   :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints

i915_context_create and i915_context_free
348
-----------------------------------------
349 350 351 352 353

.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
   :doc: i915_context_create and i915_context_free tracepoints

switch_mm
354
---------
355 356 357 358

.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
   :doc: switch_mm tracepoint

359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
Perf
====

Overview
--------
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :doc: i915 Perf Overview

Comparison with Core Perf
-------------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :doc: i915 Perf History and Comparison with Core Perf

i915 Driver Entry Points
------------------------

This section covers the entrypoints exported outside of i915_perf.c to
integrate with drm/i915 and to handle the `DRM_I915_PERF_OPEN` ioctl.

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_init
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_fini
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_register
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_unregister
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_open_ioctl
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_release

i915 Perf Stream
----------------

This section covers the stream-semantics-agnostic structures and functions
for representing an i915 perf stream FD and associated file operations.

.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h
   :functions: i915_perf_stream
.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h
   :functions: i915_perf_stream_ops

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: read_properties_unlocked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_open_ioctl_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_destroy_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_read
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_ioctl
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_enable_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_disable_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_poll
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_perf_poll_locked

i915 Perf Observation Architecture Stream
-----------------------------------------

.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h
   :functions: i915_oa_ops

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_oa_stream_init
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_oa_read
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_oa_stream_enable
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_oa_stream_disable
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_oa_wait_unlocked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :functions: i915_oa_poll_wait

All i915 Perf Internals
-----------------------

This section simply includes all currently documented i915 perf internals, in
no particular order, but may include some more minor utilities or platform
specific details than found in the more high-level sections.

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
   :internal:

450
.. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c