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 PLLs 226------------ 227 228.. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.c 229 :doc: Display PLLs 230 231.. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.c 232 :internal: 233 234.. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.h 235 :internal: 236 237Memory Management and Command Submission 238======================================== 239 240This sections covers all things related to the GEM implementation in the 241i915 driver. 242 243Batchbuffer Parsing 244------------------- 245 246.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c 247 :doc: batch buffer command parser 248 249.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c 250 :internal: 251 252Batchbuffer Pools 253----------------- 254 255.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c 256 :doc: batch pool 257 258.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c 259 :internal: 260 261Logical Rings, Logical Ring Contexts and Execlists 262-------------------------------------------------- 263 264.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c 265 :doc: Logical Rings, Logical Ring Contexts and Execlists 266 267.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c 268 :internal: 269 270Global GTT views 271---------------- 272 273.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c 274 :doc: Global GTT views 275 276.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c 277 :internal: 278 279GTT Fences and Swizzling 280------------------------ 281 282.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c 283 :internal: 284 285Global GTT Fence Handling 286~~~~~~~~~~~~~~~~~~~~~~~~~ 287 288.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c 289 :doc: fence register handling 290 291Hardware Tiling and Swizzling Details 292~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 293 294.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c 295 :doc: tiling swizzling details 296 297Object Tiling IOCTLs 298-------------------- 299 300.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c 301 :internal: 302 303.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c 304 :doc: buffer object tiling 305 306Buffer Object Eviction 307---------------------- 308 309This section documents the interface functions for evicting buffer 310objects to make space available in the virtual gpu address spaces. Note 311that this is mostly orthogonal to shrinking buffer objects caches, which 312has the goal to make main memory (shared with the gpu through the 313unified memory architecture) available. 314 315.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c 316 :internal: 317 318Buffer Object Memory Shrinking 319------------------------------ 320 321This section documents the interface function for shrinking memory usage 322of buffer object caches. Shrinking is used to make main memory 323available. Note that this is mostly orthogonal to evicting buffer 324objects, which has the goal to make space in gpu virtual address spaces. 325 326.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c 327 :internal: 328 329GuC 330=== 331 332GuC-specific firmware loader 333---------------------------- 334 335.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c 336 :doc: GuC-specific firmware loader 337 338.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c 339 :internal: 340 341GuC-based command submission 342---------------------------- 343 344.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c 345 :doc: GuC-based command submission 346 347.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c 348 :internal: 349 350GuC Firmware Layout 351------------------- 352 353.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h 354 :doc: GuC Firmware Layout 355 356Tracing 357======= 358 359This sections covers all things related to the tracepoints implemented 360in the i915 driver. 361 362i915_ppgtt_create and i915_ppgtt_release 363---------------------------------------- 364 365.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h 366 :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints 367 368i915_context_create and i915_context_free 369----------------------------------------- 370 371.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h 372 :doc: i915_context_create and i915_context_free tracepoints 373 374switch_mm 375--------- 376 377.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h 378 :doc: switch_mm tracepoint 379 380Perf 381==== 382 383Overview 384-------- 385.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 386 :doc: i915 Perf Overview 387 388Comparison with Core Perf 389------------------------- 390.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 391 :doc: i915 Perf History and Comparison with Core Perf 392 393i915 Driver Entry Points 394------------------------ 395 396This section covers the entrypoints exported outside of i915_perf.c to 397integrate with drm/i915 and to handle the `DRM_I915_PERF_OPEN` ioctl. 398 399.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 400 :functions: i915_perf_init 401.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 402 :functions: i915_perf_fini 403.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 404 :functions: i915_perf_register 405.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 406 :functions: i915_perf_unregister 407.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 408 :functions: i915_perf_open_ioctl 409.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 410 :functions: i915_perf_release 411 412i915 Perf Stream 413---------------- 414 415This section covers the stream-semantics-agnostic structures and functions 416for representing an i915 perf stream FD and associated file operations. 417 418.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h 419 :functions: i915_perf_stream 420.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h 421 :functions: i915_perf_stream_ops 422 423.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 424 :functions: read_properties_unlocked 425.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 426 :functions: i915_perf_open_ioctl_locked 427.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 428 :functions: i915_perf_destroy_locked 429.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 430 :functions: i915_perf_read 431.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 432 :functions: i915_perf_ioctl 433.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 434 :functions: i915_perf_enable_locked 435.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 436 :functions: i915_perf_disable_locked 437.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 438 :functions: i915_perf_poll 439.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 440 :functions: i915_perf_poll_locked 441 442i915 Perf Observation Architecture Stream 443----------------------------------------- 444 445.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h 446 :functions: i915_oa_ops 447 448.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 449 :functions: i915_oa_stream_init 450.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 451 :functions: i915_oa_read 452.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 453 :functions: i915_oa_stream_enable 454.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 455 :functions: i915_oa_stream_disable 456.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 457 :functions: i915_oa_wait_unlocked 458.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 459 :functions: i915_oa_poll_wait 460 461All i915 Perf Internals 462----------------------- 463 464This section simply includes all currently documented i915 perf internals, in 465no particular order, but may include some more minor utilities or platform 466specific details than found in the more high-level sections. 467 468.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c 469 :internal: 470 471.. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c 472