1=========================== 2 drm/i915 Intel GFX Driver 3=========================== 4 5The drm/i915 driver supports all (with the exception of some very early 6models) integrated GFX chipsets with both Intel display and rendering 7blocks. This excludes a set of SoC platforms with an SGX rendering unit, 8those have basic support through the gma500 drm driver. 9 10Core Driver Infrastructure 11========================== 12 13This section covers core driver infrastructure used by both the display 14and the GEM parts of the driver. 15 16Runtime Power Management 17------------------------ 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 28Interrupt Handling 29------------------ 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 43Intel GVT-g Guest Support(vGPU) 44------------------------------- 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 52Intel 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 61Display Hardware Handling 62========================= 63 64This section covers everything related to the display hardware including 65the mode setting infrastructure, plane, sprite and cursor handling and 66display, output probing and related topics. 67 68Mode Setting Infrastructure 69--------------------------- 70 71The i915 driver is thus far the only DRM driver which doesn't use the 72common DRM helper code to implement mode setting sequences. Thus it has 73its own tailor-made infrastructure for executing a display configuration 74change. 75 76Frontbuffer Tracking 77-------------------- 78 79.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c 80 :doc: frontbuffer tracking 81 82.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.h 83 :internal: 84 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 91Display FIFO Underrun Reporting 92------------------------------- 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 100Plane Configuration 101------------------- 102 103This section covers plane configuration and composition with the primary 104plane, sprites, cursors and overlays. This includes the infrastructure 105to do atomic vsync'ed updates of all this state and also tightly coupled 106topics like watermark setup and computation, framebuffer compression and 107panel self refresh. 108 109Atomic Plane Helpers 110-------------------- 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 118Output Probing 119-------------- 120 121This section covers output probing and related infrastructure like the 122hotplug interrupt storm detection and mitigation code. Note that the 123i915 driver still uses most of the common DRM helper code for output 124probing, so those sections fully apply. 125 126Hotplug 127------- 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 135High Definition Audio 136--------------------- 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 147Intel 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 156Panel Self Refresh PSR (PSR/SRD) 157-------------------------------- 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 165Frame Buffer Compression (FBC) 166------------------------------ 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 174Display Refresh Rate Switching (DRRS) 175------------------------------------- 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 198DPIO 199---- 200 201.. kernel-doc:: drivers/gpu/drm/i915/intel_dpio_phy.c 202 :doc: DPIO 203 204CSR firmware support for DMC 205---------------------------- 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 213Video BIOS Table (VBT) 214---------------------- 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 225Display 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 234Display 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 246Memory Management and Command Submission 247======================================== 248 249This sections covers all things related to the GEM implementation in the 250i915 driver. 251 252Batchbuffer Parsing 253------------------- 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 261Batchbuffer Pools 262----------------- 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 270Logical Rings, Logical Ring Contexts and Execlists 271-------------------------------------------------- 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 279Global GTT views 280---------------- 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 288GTT Fences and Swizzling 289------------------------ 290 291.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c 292 :internal: 293 294Global GTT Fence Handling 295~~~~~~~~~~~~~~~~~~~~~~~~~ 296 297.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c 298 :doc: fence register handling 299 300Hardware Tiling and Swizzling Details 301~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 302 303.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c 304 :doc: tiling swizzling details 305 306Object Tiling IOCTLs 307-------------------- 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 315Buffer Object Eviction 316---------------------- 317 318This section documents the interface functions for evicting buffer 319objects to make space available in the virtual gpu address spaces. Note 320that this is mostly orthogonal to shrinking buffer objects caches, which 321has the goal to make main memory (shared with the gpu through the 322unified memory architecture) available. 323 324.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c 325 :internal: 326 327Buffer Object Memory Shrinking 328------------------------------ 329 330This section documents the interface function for shrinking memory usage 331of buffer object caches. Shrinking is used to make main memory 332available. Note that this is mostly orthogonal to evicting buffer 333objects, 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 338GuC 339=== 340 341GuC-specific firmware loader 342---------------------------- 343 344.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c 345 :internal: 346 347GuC-based command submission 348---------------------------- 349 350.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_submission.c 351 :doc: GuC-based command submission 352 353.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_submission.c 354 :internal: 355 356GuC Firmware Layout 357------------------- 358 359.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h 360 :doc: GuC Firmware Layout 361 362Tracing 363======= 364 365This sections covers all things related to the tracepoints implemented 366in the i915 driver. 367 368i915_ppgtt_create and i915_ppgtt_release 369---------------------------------------- 370 371.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h 372 :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints 373 374i915_context_create and i915_context_free 375----------------------------------------- 376 377.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h 378 :doc: i915_context_create and i915_context_free tracepoints 379 380switch_mm 381--------- 382 383.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h 384 :doc: switch_mm tracepoint 385 386Perf 387==== 388 389Overview 390-------- 391.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 392 :doc: i915 Perf Overview 393 394Comparison 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 399i915 Driver Entry Points 400------------------------ 401 402This section covers the entrypoints exported outside of i915_perf.c to 403integrate 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 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 421 422i915 Perf Stream 423---------------- 424 425This section covers the stream-semantics-agnostic structures and functions 426for 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 452i915 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 471All i915 Perf Internals 472----------------------- 473 474This section simply includes all currently documented i915 perf internals, in 475no particular order, but may include some more minor utilities or platform 476specific details than found in the more high-level sections. 477 478.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 479 :internal: 480 481Style 482===== 483 484The drm/i915 driver codebase has some style rules in addition to (and, in some 485cases, deviating from) the kernel coding style. 486 487Register macro definition style 488------------------------------- 489 490The 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 494