i915.rst 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. ===========================
  2. drm/i915 Intel GFX Driver
  3. ===========================
  4. The drm/i915 driver supports all (with the exception of some very early
  5. models) integrated GFX chipsets with both Intel display and rendering
  6. blocks. This excludes a set of SoC platforms with an SGX rendering unit,
  7. those have basic support through the gma500 drm driver.
  8. Core Driver Infrastructure
  9. ==========================
  10. This section covers core driver infrastructure used by both the display
  11. and the GEM parts of the driver.
  12. Runtime Power Management
  13. ------------------------
  14. .. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
  15. :doc: runtime pm
  16. .. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
  17. :internal:
  18. .. kernel-doc:: drivers/gpu/drm/i915/intel_uncore.c
  19. :internal:
  20. Interrupt Handling
  21. ------------------
  22. .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
  23. :doc: interrupt handling
  24. .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
  25. :functions: intel_irq_init intel_irq_init_hw intel_hpd_init
  26. .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
  27. :functions: intel_runtime_pm_disable_interrupts
  28. .. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
  29. :functions: intel_runtime_pm_enable_interrupts
  30. Intel GVT-g Guest Support(vGPU)
  31. -------------------------------
  32. .. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
  33. :doc: Intel GVT-g guest support
  34. .. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
  35. :internal:
  36. Display Hardware Handling
  37. =========================
  38. This section covers everything related to the display hardware including
  39. the mode setting infrastructure, plane, sprite and cursor handling and
  40. display, output probing and related topics.
  41. Mode Setting Infrastructure
  42. ---------------------------
  43. The i915 driver is thus far the only DRM driver which doesn't use the
  44. common DRM helper code to implement mode setting sequences. Thus it has
  45. its own tailor-made infrastructure for executing a display configuration
  46. change.
  47. Frontbuffer Tracking
  48. --------------------
  49. .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
  50. :doc: frontbuffer tracking
  51. .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.h
  52. :internal:
  53. .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
  54. :internal:
  55. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c
  56. :functions: i915_gem_track_fb
  57. Display FIFO Underrun Reporting
  58. -------------------------------
  59. .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
  60. :doc: fifo underrun handling
  61. .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
  62. :internal:
  63. Plane Configuration
  64. -------------------
  65. This section covers plane configuration and composition with the primary
  66. plane, sprites, cursors and overlays. This includes the infrastructure
  67. to do atomic vsync'ed updates of all this state and also tightly coupled
  68. topics like watermark setup and computation, framebuffer compression and
  69. panel self refresh.
  70. Atomic Plane Helpers
  71. --------------------
  72. .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
  73. :doc: atomic plane helpers
  74. .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
  75. :internal:
  76. Output Probing
  77. --------------
  78. This section covers output probing and related infrastructure like the
  79. hotplug interrupt storm detection and mitigation code. Note that the
  80. i915 driver still uses most of the common DRM helper code for output
  81. probing, so those sections fully apply.
  82. Hotplug
  83. -------
  84. .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
  85. :doc: Hotplug
  86. .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
  87. :internal:
  88. High Definition Audio
  89. ---------------------
  90. .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
  91. :doc: High Definition Audio over HDMI and Display Port
  92. .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
  93. :internal:
  94. .. kernel-doc:: include/drm/i915_component.h
  95. :internal:
  96. Panel Self Refresh PSR (PSR/SRD)
  97. --------------------------------
  98. .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
  99. :doc: Panel Self Refresh (PSR/SRD)
  100. .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
  101. :internal:
  102. Frame Buffer Compression (FBC)
  103. ------------------------------
  104. .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
  105. :doc: Frame Buffer Compression (FBC)
  106. .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
  107. :internal:
  108. Display Refresh Rate Switching (DRRS)
  109. -------------------------------------
  110. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  111. :doc: Display Refresh Rate Switching (DRRS)
  112. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  113. :functions: intel_dp_set_drrs_state
  114. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  115. :functions: intel_edp_drrs_enable
  116. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  117. :functions: intel_edp_drrs_disable
  118. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  119. :functions: intel_edp_drrs_invalidate
  120. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  121. :functions: intel_edp_drrs_flush
  122. .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
  123. :functions: intel_dp_drrs_init
  124. DPIO
  125. ----
  126. .. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h
  127. :doc: DPIO
  128. CSR firmware support for DMC
  129. ----------------------------
  130. .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
  131. :doc: csr support for dmc
  132. .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
  133. :internal:
  134. Video BIOS Table (VBT)
  135. ----------------------
  136. .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
  137. :doc: Video BIOS Table (VBT)
  138. .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
  139. :internal:
  140. .. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h
  141. :internal:
  142. Memory Management and Command Submission
  143. ========================================
  144. This sections covers all things related to the GEM implementation in the
  145. i915 driver.
  146. Batchbuffer Parsing
  147. -------------------
  148. .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
  149. :doc: batch buffer command parser
  150. .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
  151. :internal:
  152. Batchbuffer Pools
  153. -----------------
  154. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
  155. :doc: batch pool
  156. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
  157. :internal:
  158. Logical Rings, Logical Ring Contexts and Execlists
  159. --------------------------------------------------
  160. .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
  161. :doc: Logical Rings, Logical Ring Contexts and Execlists
  162. .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
  163. :internal:
  164. Global GTT views
  165. ----------------
  166. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
  167. :doc: Global GTT views
  168. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
  169. :internal:
  170. GTT Fences and Swizzling
  171. ------------------------
  172. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
  173. :internal:
  174. Global GTT Fence Handling
  175. ~~~~~~~~~~~~~~~~~~~~~~~~~
  176. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
  177. :doc: fence register handling
  178. Hardware Tiling and Swizzling Details
  179. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  180. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
  181. :doc: tiling swizzling details
  182. Object Tiling IOCTLs
  183. --------------------
  184. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
  185. :internal:
  186. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
  187. :doc: buffer object tiling
  188. Buffer Object Eviction
  189. ----------------------
  190. This section documents the interface functions for evicting buffer
  191. objects to make space available in the virtual gpu address spaces. Note
  192. that this is mostly orthogonal to shrinking buffer objects caches, which
  193. has the goal to make main memory (shared with the gpu through the
  194. unified memory architecture) available.
  195. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c
  196. :internal:
  197. Buffer Object Memory Shrinking
  198. ------------------------------
  199. This section documents the interface function for shrinking memory usage
  200. of buffer object caches. Shrinking is used to make main memory
  201. available. Note that this is mostly orthogonal to evicting buffer
  202. objects, which has the goal to make space in gpu virtual address spaces.
  203. .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
  204. :internal:
  205. GuC
  206. ===
  207. GuC-specific firmware loader
  208. ----------------------------
  209. .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
  210. :doc: GuC-specific firmware loader
  211. .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
  212. :internal:
  213. GuC-based command submission
  214. ----------------------------
  215. .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
  216. :doc: GuC-based command submission
  217. .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
  218. :internal:
  219. GuC Firmware Layout
  220. -------------------
  221. .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h
  222. :doc: GuC Firmware Layout
  223. Tracing
  224. =======
  225. This sections covers all things related to the tracepoints implemented
  226. in the i915 driver.
  227. i915_ppgtt_create and i915_ppgtt_release
  228. ----------------------------------------
  229. .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
  230. :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints
  231. i915_context_create and i915_context_free
  232. -----------------------------------------
  233. .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
  234. :doc: i915_context_create and i915_context_free tracepoints
  235. switch_mm
  236. ---------
  237. .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
  238. :doc: switch_mm tracepoint
  239. .. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c