| .. | .. |
|---|
| 61 | 61 | Workarounds |
|---|
| 62 | 62 | ----------- |
|---|
| 63 | 63 | |
|---|
| 64 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_workarounds.c |
|---|
| 64 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_workarounds.c |
|---|
| 65 | 65 | :doc: Hardware workarounds |
|---|
| 66 | 66 | |
|---|
| 67 | 67 | Display Hardware Handling |
|---|
| .. | .. |
|---|
| 82 | 82 | Frontbuffer Tracking |
|---|
| 83 | 83 | -------------------- |
|---|
| 84 | 84 | |
|---|
| 85 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c |
|---|
| 85 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_frontbuffer.c |
|---|
| 86 | 86 | :doc: frontbuffer tracking |
|---|
| 87 | 87 | |
|---|
| 88 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.h |
|---|
| 88 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_frontbuffer.h |
|---|
| 89 | 89 | :internal: |
|---|
| 90 | 90 | |
|---|
| 91 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c |
|---|
| 91 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_frontbuffer.c |
|---|
| 92 | 92 | :internal: |
|---|
| 93 | | - |
|---|
| 94 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c |
|---|
| 95 | | - :functions: i915_gem_track_fb |
|---|
| 96 | 93 | |
|---|
| 97 | 94 | Display FIFO Underrun Reporting |
|---|
| 98 | 95 | ------------------------------- |
|---|
| 99 | 96 | |
|---|
| 100 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c |
|---|
| 97 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_fifo_underrun.c |
|---|
| 101 | 98 | :doc: fifo underrun handling |
|---|
| 102 | 99 | |
|---|
| 103 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c |
|---|
| 100 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_fifo_underrun.c |
|---|
| 104 | 101 | :internal: |
|---|
| 105 | 102 | |
|---|
| 106 | 103 | Plane Configuration |
|---|
| .. | .. |
|---|
| 115 | 112 | Atomic Plane Helpers |
|---|
| 116 | 113 | -------------------- |
|---|
| 117 | 114 | |
|---|
| 118 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c |
|---|
| 115 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_atomic_plane.c |
|---|
| 119 | 116 | :doc: atomic plane helpers |
|---|
| 120 | 117 | |
|---|
| 121 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c |
|---|
| 118 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_atomic_plane.c |
|---|
| 122 | 119 | :internal: |
|---|
| 123 | 120 | |
|---|
| 124 | 121 | Output Probing |
|---|
| .. | .. |
|---|
| 132 | 129 | Hotplug |
|---|
| 133 | 130 | ------- |
|---|
| 134 | 131 | |
|---|
| 135 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c |
|---|
| 132 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_hotplug.c |
|---|
| 136 | 133 | :doc: Hotplug |
|---|
| 137 | 134 | |
|---|
| 138 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c |
|---|
| 135 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_hotplug.c |
|---|
| 139 | 136 | :internal: |
|---|
| 140 | 137 | |
|---|
| 141 | 138 | High Definition Audio |
|---|
| 142 | 139 | --------------------- |
|---|
| 143 | 140 | |
|---|
| 144 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c |
|---|
| 141 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_audio.c |
|---|
| 145 | 142 | :doc: High Definition Audio over HDMI and Display Port |
|---|
| 146 | 143 | |
|---|
| 147 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c |
|---|
| 144 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_audio.c |
|---|
| 148 | 145 | :internal: |
|---|
| 149 | 146 | |
|---|
| 150 | 147 | .. kernel-doc:: include/drm/i915_component.h |
|---|
| .. | .. |
|---|
| 153 | 150 | Intel HDMI LPE Audio Support |
|---|
| 154 | 151 | ---------------------------- |
|---|
| 155 | 152 | |
|---|
| 156 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_lpe_audio.c |
|---|
| 153 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_lpe_audio.c |
|---|
| 157 | 154 | :doc: LPE Audio integration for HDMI or DP playback |
|---|
| 158 | 155 | |
|---|
| 159 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_lpe_audio.c |
|---|
| 156 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_lpe_audio.c |
|---|
| 160 | 157 | :internal: |
|---|
| 161 | 158 | |
|---|
| 162 | 159 | Panel Self Refresh PSR (PSR/SRD) |
|---|
| 163 | 160 | -------------------------------- |
|---|
| 164 | 161 | |
|---|
| 165 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c |
|---|
| 162 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_psr.c |
|---|
| 166 | 163 | :doc: Panel Self Refresh (PSR/SRD) |
|---|
| 167 | 164 | |
|---|
| 168 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c |
|---|
| 165 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_psr.c |
|---|
| 169 | 166 | :internal: |
|---|
| 170 | 167 | |
|---|
| 171 | 168 | Frame Buffer Compression (FBC) |
|---|
| 172 | 169 | ------------------------------ |
|---|
| 173 | 170 | |
|---|
| 174 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c |
|---|
| 171 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_fbc.c |
|---|
| 175 | 172 | :doc: Frame Buffer Compression (FBC) |
|---|
| 176 | 173 | |
|---|
| 177 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c |
|---|
| 174 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_fbc.c |
|---|
| 178 | 175 | :internal: |
|---|
| 179 | 176 | |
|---|
| 180 | 177 | Display Refresh Rate Switching (DRRS) |
|---|
| 181 | 178 | ------------------------------------- |
|---|
| 182 | 179 | |
|---|
| 183 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 180 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 184 | 181 | :doc: Display Refresh Rate Switching (DRRS) |
|---|
| 185 | 182 | |
|---|
| 186 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 183 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 187 | 184 | :functions: intel_dp_set_drrs_state |
|---|
| 188 | 185 | |
|---|
| 189 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 186 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 190 | 187 | :functions: intel_edp_drrs_enable |
|---|
| 191 | 188 | |
|---|
| 192 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 189 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 193 | 190 | :functions: intel_edp_drrs_disable |
|---|
| 194 | 191 | |
|---|
| 195 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 192 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 196 | 193 | :functions: intel_edp_drrs_invalidate |
|---|
| 197 | 194 | |
|---|
| 198 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 195 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 199 | 196 | :functions: intel_edp_drrs_flush |
|---|
| 200 | 197 | |
|---|
| 201 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c |
|---|
| 198 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c |
|---|
| 202 | 199 | :functions: intel_dp_drrs_init |
|---|
| 203 | 200 | |
|---|
| 204 | 201 | DPIO |
|---|
| 205 | 202 | ---- |
|---|
| 206 | 203 | |
|---|
| 207 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dpio_phy.c |
|---|
| 204 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dpio_phy.c |
|---|
| 208 | 205 | :doc: DPIO |
|---|
| 209 | 206 | |
|---|
| 210 | 207 | CSR firmware support for DMC |
|---|
| 211 | 208 | ---------------------------- |
|---|
| 212 | 209 | |
|---|
| 213 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c |
|---|
| 210 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_csr.c |
|---|
| 214 | 211 | :doc: csr support for dmc |
|---|
| 215 | 212 | |
|---|
| 216 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c |
|---|
| 213 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_csr.c |
|---|
| 217 | 214 | :internal: |
|---|
| 218 | 215 | |
|---|
| 219 | 216 | Video BIOS Table (VBT) |
|---|
| 220 | 217 | ---------------------- |
|---|
| 221 | 218 | |
|---|
| 222 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c |
|---|
| 219 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_bios.c |
|---|
| 223 | 220 | :doc: Video BIOS Table (VBT) |
|---|
| 224 | 221 | |
|---|
| 225 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c |
|---|
| 222 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_bios.c |
|---|
| 226 | 223 | :internal: |
|---|
| 227 | 224 | |
|---|
| 228 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h |
|---|
| 225 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_vbt_defs.h |
|---|
| 229 | 226 | :internal: |
|---|
| 230 | 227 | |
|---|
| 231 | 228 | Display clocks |
|---|
| 232 | 229 | -------------- |
|---|
| 233 | 230 | |
|---|
| 234 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_cdclk.c |
|---|
| 231 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_cdclk.c |
|---|
| 235 | 232 | :doc: CDCLK / RAWCLK |
|---|
| 236 | 233 | |
|---|
| 237 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_cdclk.c |
|---|
| 234 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_cdclk.c |
|---|
| 238 | 235 | :internal: |
|---|
| 239 | 236 | |
|---|
| 240 | 237 | Display PLLs |
|---|
| 241 | 238 | ------------ |
|---|
| 242 | 239 | |
|---|
| 243 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.c |
|---|
| 240 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dpll_mgr.c |
|---|
| 244 | 241 | :doc: Display PLLs |
|---|
| 245 | 242 | |
|---|
| 246 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.c |
|---|
| 243 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dpll_mgr.c |
|---|
| 247 | 244 | :internal: |
|---|
| 248 | 245 | |
|---|
| 249 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_dpll_mgr.h |
|---|
| 246 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dpll_mgr.h |
|---|
| 247 | + :internal: |
|---|
| 248 | + |
|---|
| 249 | +Display State Buffer |
|---|
| 250 | +-------------------- |
|---|
| 251 | + |
|---|
| 252 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dsb.c |
|---|
| 253 | + :doc: DSB |
|---|
| 254 | + |
|---|
| 255 | +.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dsb.c |
|---|
| 250 | 256 | :internal: |
|---|
| 251 | 257 | |
|---|
| 252 | 258 | Memory Management and Command Submission |
|---|
| .. | .. |
|---|
| 323 | 329 | refer to GPU-addresses so that the kernel can edit the buffer correctly. |
|---|
| 324 | 330 | This process is dubbed relocation. |
|---|
| 325 | 331 | |
|---|
| 332 | +Locking Guidelines |
|---|
| 333 | +------------------ |
|---|
| 334 | + |
|---|
| 335 | +.. note:: |
|---|
| 336 | + This is a description of how the locking should be after |
|---|
| 337 | + refactoring is done. Does not necessarily reflect what the locking |
|---|
| 338 | + looks like while WIP. |
|---|
| 339 | + |
|---|
| 340 | +#. All locking rules and interface contracts with cross-driver interfaces |
|---|
| 341 | + (dma-buf, dma_fence) need to be followed. |
|---|
| 342 | + |
|---|
| 343 | +#. No struct_mutex anywhere in the code |
|---|
| 344 | + |
|---|
| 345 | +#. dma_resv will be the outermost lock (when needed) and ww_acquire_ctx |
|---|
| 346 | + is to be hoisted at highest level and passed down within i915_gem_ctx |
|---|
| 347 | + in the call chain |
|---|
| 348 | + |
|---|
| 349 | +#. While holding lru/memory manager (buddy, drm_mm, whatever) locks |
|---|
| 350 | + system memory allocations are not allowed |
|---|
| 351 | + |
|---|
| 352 | + * Enforce this by priming lockdep (with fs_reclaim). If we |
|---|
| 353 | + allocate memory while holding these looks we get a rehash |
|---|
| 354 | + of the shrinker vs. struct_mutex saga, and that would be |
|---|
| 355 | + real bad. |
|---|
| 356 | + |
|---|
| 357 | +#. Do not nest different lru/memory manager locks within each other. |
|---|
| 358 | + Take them in turn to update memory allocations, relying on the object’s |
|---|
| 359 | + dma_resv ww_mutex to serialize against other operations. |
|---|
| 360 | + |
|---|
| 361 | +#. The suggestion for lru/memory managers locks is that they are small |
|---|
| 362 | + enough to be spinlocks. |
|---|
| 363 | + |
|---|
| 364 | +#. All features need to come with exhaustive kernel selftests and/or |
|---|
| 365 | + IGT tests when appropriate |
|---|
| 366 | + |
|---|
| 367 | +#. All LMEM uAPI paths need to be fully restartable (_interruptible() |
|---|
| 368 | + for all locks/waits/sleeps) |
|---|
| 369 | + |
|---|
| 370 | + * Error handling validation through signal injection. |
|---|
| 371 | + Still the best strategy we have for validating GEM uAPI |
|---|
| 372 | + corner cases. |
|---|
| 373 | + Must be excessively used in the IGT, and we need to check |
|---|
| 374 | + that we really have full path coverage of all error cases. |
|---|
| 375 | + |
|---|
| 376 | + * -EDEADLK handling with ww_mutex |
|---|
| 377 | + |
|---|
| 326 | 378 | GEM BO Management Implementation Details |
|---|
| 327 | 379 | ---------------------------------------- |
|---|
| 328 | 380 | |
|---|
| 329 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_vma.h |
|---|
| 381 | +.. kernel-doc:: drivers/gpu/drm/i915/i915_vma_types.h |
|---|
| 330 | 382 | :doc: Virtual Memory Address |
|---|
| 331 | 383 | |
|---|
| 332 | 384 | Buffer Object Eviction |
|---|
| .. | .. |
|---|
| 349 | 401 | available. Note that this is mostly orthogonal to evicting buffer |
|---|
| 350 | 402 | objects, which has the goal to make space in gpu virtual address spaces. |
|---|
| 351 | 403 | |
|---|
| 352 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c |
|---|
| 404 | +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_shrinker.c |
|---|
| 353 | 405 | :internal: |
|---|
| 354 | 406 | |
|---|
| 355 | 407 | Batchbuffer Parsing |
|---|
| .. | .. |
|---|
| 361 | 413 | .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c |
|---|
| 362 | 414 | :internal: |
|---|
| 363 | 415 | |
|---|
| 364 | | -Batchbuffer Pools |
|---|
| 365 | | ------------------ |
|---|
| 366 | | - |
|---|
| 367 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c |
|---|
| 368 | | - :doc: batch pool |
|---|
| 369 | | - |
|---|
| 370 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c |
|---|
| 371 | | - :internal: |
|---|
| 372 | | - |
|---|
| 373 | 416 | User Batchbuffer Execution |
|---|
| 374 | 417 | -------------------------- |
|---|
| 375 | 418 | |
|---|
| 376 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_execbuffer.c |
|---|
| 419 | +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c |
|---|
| 377 | 420 | :doc: User command execution |
|---|
| 378 | 421 | |
|---|
| 379 | 422 | Logical Rings, Logical Ring Contexts and Execlists |
|---|
| 380 | 423 | -------------------------------------------------- |
|---|
| 381 | 424 | |
|---|
| 382 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c |
|---|
| 425 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c |
|---|
| 383 | 426 | :doc: Logical Rings, Logical Ring Contexts and Execlists |
|---|
| 384 | | - |
|---|
| 385 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c |
|---|
| 386 | | - :internal: |
|---|
| 387 | 427 | |
|---|
| 388 | 428 | Global GTT views |
|---|
| 389 | 429 | ---------------- |
|---|
| 390 | 430 | |
|---|
| 391 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c |
|---|
| 431 | +.. kernel-doc:: drivers/gpu/drm/i915/i915_vma_types.h |
|---|
| 392 | 432 | :doc: Global GTT views |
|---|
| 393 | 433 | |
|---|
| 394 | 434 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c |
|---|
| .. | .. |
|---|
| 397 | 437 | GTT Fences and Swizzling |
|---|
| 398 | 438 | ------------------------ |
|---|
| 399 | 439 | |
|---|
| 400 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c |
|---|
| 440 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c |
|---|
| 401 | 441 | :internal: |
|---|
| 402 | 442 | |
|---|
| 403 | 443 | Global GTT Fence Handling |
|---|
| 404 | 444 | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 405 | 445 | |
|---|
| 406 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c |
|---|
| 446 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c |
|---|
| 407 | 447 | :doc: fence register handling |
|---|
| 408 | 448 | |
|---|
| 409 | 449 | Hardware Tiling and Swizzling Details |
|---|
| 410 | 450 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 411 | 451 | |
|---|
| 412 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence_reg.c |
|---|
| 452 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c |
|---|
| 413 | 453 | :doc: tiling swizzling details |
|---|
| 414 | 454 | |
|---|
| 415 | 455 | Object Tiling IOCTLs |
|---|
| 416 | 456 | -------------------- |
|---|
| 417 | 457 | |
|---|
| 418 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c |
|---|
| 458 | +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_tiling.c |
|---|
| 419 | 459 | :internal: |
|---|
| 420 | 460 | |
|---|
| 421 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c |
|---|
| 461 | +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_tiling.c |
|---|
| 422 | 462 | :doc: buffer object tiling |
|---|
| 423 | 463 | |
|---|
| 464 | +Microcontrollers |
|---|
| 465 | +================ |
|---|
| 466 | + |
|---|
| 467 | +Starting from gen9, three microcontrollers are available on the HW: the |
|---|
| 468 | +graphics microcontroller (GuC), the HEVC/H.265 microcontroller (HuC) and the |
|---|
| 469 | +display microcontroller (DMC). The driver is responsible for loading the |
|---|
| 470 | +firmwares on the microcontrollers; the GuC and HuC firmwares are transferred |
|---|
| 471 | +to WOPCM using the DMA engine, while the DMC firmware is written through MMIO. |
|---|
| 472 | + |
|---|
| 424 | 473 | WOPCM |
|---|
| 425 | | -===== |
|---|
| 474 | +----- |
|---|
| 426 | 475 | |
|---|
| 427 | 476 | WOPCM Layout |
|---|
| 428 | | ------------- |
|---|
| 477 | +~~~~~~~~~~~~ |
|---|
| 429 | 478 | |
|---|
| 430 | 479 | .. kernel-doc:: drivers/gpu/drm/i915/intel_wopcm.c |
|---|
| 431 | 480 | :doc: WOPCM Layout |
|---|
| 432 | 481 | |
|---|
| 433 | 482 | GuC |
|---|
| 434 | | -=== |
|---|
| 483 | +--- |
|---|
| 484 | + |
|---|
| 485 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc.c |
|---|
| 486 | + :doc: GuC |
|---|
| 487 | + |
|---|
| 488 | +GuC Firmware Layout |
|---|
| 489 | +~~~~~~~~~~~~~~~~~~~ |
|---|
| 490 | + |
|---|
| 491 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h |
|---|
| 492 | + :doc: Firmware Layout |
|---|
| 493 | + |
|---|
| 494 | +GuC Memory Management |
|---|
| 495 | +~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 496 | + |
|---|
| 497 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc.c |
|---|
| 498 | + :doc: GuC Memory Management |
|---|
| 499 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc.c |
|---|
| 500 | + :functions: intel_guc_allocate_vma |
|---|
| 501 | + |
|---|
| 435 | 502 | |
|---|
| 436 | 503 | GuC-specific firmware loader |
|---|
| 437 | | ----------------------------- |
|---|
| 504 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 438 | 505 | |
|---|
| 439 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c |
|---|
| 506 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c |
|---|
| 440 | 507 | :internal: |
|---|
| 441 | 508 | |
|---|
| 442 | 509 | GuC-based command submission |
|---|
| 443 | | ----------------------------- |
|---|
| 510 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 444 | 511 | |
|---|
| 445 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_submission.c |
|---|
| 512 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c |
|---|
| 446 | 513 | :doc: GuC-based command submission |
|---|
| 447 | 514 | |
|---|
| 448 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_submission.c |
|---|
| 449 | | - :internal: |
|---|
| 515 | +HuC |
|---|
| 516 | +--- |
|---|
| 517 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_huc.c |
|---|
| 518 | + :doc: HuC |
|---|
| 519 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_huc.c |
|---|
| 520 | + :functions: intel_huc_auth |
|---|
| 450 | 521 | |
|---|
| 451 | | -GuC Firmware Layout |
|---|
| 452 | | -------------------- |
|---|
| 522 | +HuC Memory Management |
|---|
| 523 | +~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 453 | 524 | |
|---|
| 454 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h |
|---|
| 455 | | - :doc: GuC Firmware Layout |
|---|
| 525 | +.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_huc.c |
|---|
| 526 | + :doc: HuC Memory Management |
|---|
| 456 | 527 | |
|---|
| 457 | | -GuC Address Space |
|---|
| 458 | | ------------------ |
|---|
| 528 | +HuC Firmware Layout |
|---|
| 529 | +~~~~~~~~~~~~~~~~~~~ |
|---|
| 530 | +The HuC FW layout is the same as the GuC one, see `GuC Firmware Layout`_ |
|---|
| 459 | 531 | |
|---|
| 460 | | -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc.c |
|---|
| 461 | | - :doc: GuC Address Space |
|---|
| 532 | +DMC |
|---|
| 533 | +--- |
|---|
| 534 | +See `CSR firmware support for DMC`_ |
|---|
| 462 | 535 | |
|---|
| 463 | 536 | Tracing |
|---|
| 464 | 537 | ======= |
|---|
| .. | .. |
|---|
| 477 | 550 | |
|---|
| 478 | 551 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h |
|---|
| 479 | 552 | :doc: i915_context_create and i915_context_free tracepoints |
|---|
| 480 | | - |
|---|
| 481 | | -switch_mm |
|---|
| 482 | | ---------- |
|---|
| 483 | | - |
|---|
| 484 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h |
|---|
| 485 | | - :doc: switch_mm tracepoint |
|---|
| 486 | 553 | |
|---|
| 487 | 554 | Perf |
|---|
| 488 | 555 | ==== |
|---|
| .. | .. |
|---|
| 526 | 593 | This section covers the stream-semantics-agnostic structures and functions |
|---|
| 527 | 594 | for representing an i915 perf stream FD and associated file operations. |
|---|
| 528 | 595 | |
|---|
| 529 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h |
|---|
| 596 | +.. kernel-doc:: drivers/gpu/drm/i915/i915_perf_types.h |
|---|
| 530 | 597 | :functions: i915_perf_stream |
|---|
| 531 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h |
|---|
| 598 | +.. kernel-doc:: drivers/gpu/drm/i915/i915_perf_types.h |
|---|
| 532 | 599 | :functions: i915_perf_stream_ops |
|---|
| 533 | 600 | |
|---|
| 534 | 601 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
|---|
| .. | .. |
|---|
| 553 | 620 | i915 Perf Observation Architecture Stream |
|---|
| 554 | 621 | ----------------------------------------- |
|---|
| 555 | 622 | |
|---|
| 556 | | -.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h |
|---|
| 623 | +.. kernel-doc:: drivers/gpu/drm/i915/i915_perf_types.h |
|---|
| 557 | 624 | :functions: i915_oa_ops |
|---|
| 558 | 625 | |
|---|
| 559 | 626 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
|---|
| .. | .. |
|---|
| 569 | 636 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
|---|
| 570 | 637 | :functions: i915_oa_poll_wait |
|---|
| 571 | 638 | |
|---|
| 572 | | -All i915 Perf Internals |
|---|
| 573 | | ------------------------ |
|---|
| 639 | +Other i915 Perf Internals |
|---|
| 640 | +------------------------- |
|---|
| 574 | 641 | |
|---|
| 575 | | -This section simply includes all currently documented i915 perf internals, in |
|---|
| 576 | | -no particular order, but may include some more minor utilities or platform |
|---|
| 642 | +This section simply includes all other currently documented i915 perf internals, |
|---|
| 643 | +in no particular order, but may include some more minor utilities or platform |
|---|
| 577 | 644 | specific details than found in the more high-level sections. |
|---|
| 578 | 645 | |
|---|
| 579 | 646 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
|---|
| 580 | 647 | :internal: |
|---|
| 648 | + :no-identifiers: |
|---|
| 649 | + i915_perf_init |
|---|
| 650 | + i915_perf_fini |
|---|
| 651 | + i915_perf_register |
|---|
| 652 | + i915_perf_unregister |
|---|
| 653 | + i915_perf_open_ioctl |
|---|
| 654 | + i915_perf_release |
|---|
| 655 | + i915_perf_add_config_ioctl |
|---|
| 656 | + i915_perf_remove_config_ioctl |
|---|
| 657 | + read_properties_unlocked |
|---|
| 658 | + i915_perf_open_ioctl_locked |
|---|
| 659 | + i915_perf_destroy_locked |
|---|
| 660 | + i915_perf_read i915_perf_ioctl |
|---|
| 661 | + i915_perf_enable_locked |
|---|
| 662 | + i915_perf_disable_locked |
|---|
| 663 | + i915_perf_poll i915_perf_poll_locked |
|---|
| 664 | + i915_oa_stream_init i915_oa_read |
|---|
| 665 | + i915_oa_stream_enable |
|---|
| 666 | + i915_oa_stream_disable |
|---|
| 667 | + i915_oa_wait_unlocked |
|---|
| 668 | + i915_oa_poll_wait |
|---|
| 581 | 669 | |
|---|
| 582 | 670 | Style |
|---|
| 583 | 671 | ===== |
|---|