Commit | Line | Data |
---|---|---|
22554020 JN |
1 | =========================== |
2 | drm/i915 Intel GFX Driver | |
3 | =========================== | |
ca00c2b9 JN |
4 | |
5 | The drm/i915 driver supports all (with the exception of some very early | |
6 | models) integrated GFX chipsets with both Intel display and rendering | |
7 | blocks. This excludes a set of SoC platforms with an SGX rendering unit, | |
8 | those have basic support through the gma500 drm driver. | |
9 | ||
10 | Core Driver Infrastructure | |
22554020 | 11 | ========================== |
ca00c2b9 JN |
12 | |
13 | This section covers core driver infrastructure used by both the display | |
14 | and the GEM parts of the driver. | |
15 | ||
16 | Runtime Power Management | |
22554020 | 17 | ------------------------ |
ca00c2b9 JN |
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 | ||
28 | Interrupt Handling | |
22554020 | 29 | ------------------ |
ca00c2b9 JN |
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 | ||
43 | Intel GVT-g Guest Support(vGPU) | |
22554020 | 44 | ------------------------------- |
ca00c2b9 JN |
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 | ||
52 | Display Hardware Handling | |
22554020 | 53 | ========================= |
ca00c2b9 JN |
54 | |
55 | This section covers everything related to the display hardware including | |
56 | the mode setting infrastructure, plane, sprite and cursor handling and | |
57 | display, output probing and related topics. | |
58 | ||
59 | Mode Setting Infrastructure | |
22554020 | 60 | --------------------------- |
ca00c2b9 JN |
61 | |
62 | The i915 driver is thus far the only DRM driver which doesn't use the | |
63 | common DRM helper code to implement mode setting sequences. Thus it has | |
64 | its own tailor-made infrastructure for executing a display configuration | |
65 | change. | |
66 | ||
67 | Frontbuffer Tracking | |
22554020 | 68 | -------------------- |
ca00c2b9 JN |
69 | |
70 | .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c | |
71 | :doc: frontbuffer tracking | |
72 | ||
73 | .. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c | |
74 | :internal: | |
75 | ||
76 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem.c | |
77 | :functions: i915_gem_track_fb | |
78 | ||
79 | Display FIFO Underrun Reporting | |
22554020 | 80 | ------------------------------- |
ca00c2b9 JN |
81 | |
82 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c | |
83 | :doc: fifo underrun handling | |
84 | ||
85 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c | |
86 | :internal: | |
87 | ||
88 | Plane Configuration | |
22554020 | 89 | ------------------- |
ca00c2b9 JN |
90 | |
91 | This section covers plane configuration and composition with the primary | |
92 | plane, sprites, cursors and overlays. This includes the infrastructure | |
93 | to do atomic vsync'ed updates of all this state and also tightly coupled | |
94 | topics like watermark setup and computation, framebuffer compression and | |
95 | panel self refresh. | |
96 | ||
97 | Atomic Plane Helpers | |
22554020 | 98 | -------------------- |
ca00c2b9 JN |
99 | |
100 | .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c | |
101 | :doc: atomic plane helpers | |
102 | ||
103 | .. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c | |
104 | :internal: | |
105 | ||
106 | Output Probing | |
22554020 | 107 | -------------- |
ca00c2b9 JN |
108 | |
109 | This section covers output probing and related infrastructure like the | |
110 | hotplug interrupt storm detection and mitigation code. Note that the | |
111 | i915 driver still uses most of the common DRM helper code for output | |
112 | probing, so those sections fully apply. | |
113 | ||
114 | Hotplug | |
22554020 | 115 | ------- |
ca00c2b9 JN |
116 | |
117 | .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c | |
118 | :doc: Hotplug | |
119 | ||
120 | .. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c | |
121 | :internal: | |
122 | ||
123 | High Definition Audio | |
22554020 | 124 | --------------------- |
ca00c2b9 JN |
125 | |
126 | .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c | |
127 | :doc: High Definition Audio over HDMI and Display Port | |
128 | ||
129 | .. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c | |
130 | :internal: | |
131 | ||
132 | .. kernel-doc:: include/drm/i915_component.h | |
133 | :internal: | |
134 | ||
135 | Panel Self Refresh PSR (PSR/SRD) | |
22554020 | 136 | -------------------------------- |
ca00c2b9 JN |
137 | |
138 | .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c | |
139 | :doc: Panel Self Refresh (PSR/SRD) | |
140 | ||
141 | .. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c | |
142 | :internal: | |
143 | ||
144 | Frame Buffer Compression (FBC) | |
22554020 | 145 | ------------------------------ |
ca00c2b9 JN |
146 | |
147 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c | |
148 | :doc: Frame Buffer Compression (FBC) | |
149 | ||
150 | .. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c | |
151 | :internal: | |
152 | ||
153 | Display Refresh Rate Switching (DRRS) | |
22554020 | 154 | ------------------------------------- |
ca00c2b9 JN |
155 | |
156 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
157 | :doc: Display Refresh Rate Switching (DRRS) | |
158 | ||
159 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
160 | :functions: intel_dp_set_drrs_state | |
161 | ||
162 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
163 | :functions: intel_edp_drrs_enable | |
164 | ||
165 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
166 | :functions: intel_edp_drrs_disable | |
167 | ||
168 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
169 | :functions: intel_edp_drrs_invalidate | |
170 | ||
171 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
172 | :functions: intel_edp_drrs_flush | |
173 | ||
174 | .. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c | |
175 | :functions: intel_dp_drrs_init | |
176 | ||
177 | DPIO | |
22554020 | 178 | ---- |
ca00c2b9 JN |
179 | |
180 | .. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h | |
181 | :doc: DPIO | |
182 | ||
183 | CSR firmware support for DMC | |
22554020 | 184 | ---------------------------- |
ca00c2b9 JN |
185 | |
186 | .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c | |
187 | :doc: csr support for dmc | |
188 | ||
189 | .. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c | |
190 | :internal: | |
191 | ||
192 | Video BIOS Table (VBT) | |
22554020 | 193 | ---------------------- |
ca00c2b9 JN |
194 | |
195 | .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c | |
196 | :doc: Video BIOS Table (VBT) | |
197 | ||
198 | .. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c | |
199 | :internal: | |
200 | ||
201 | .. kernel-doc:: drivers/gpu/drm/i915/intel_vbt_defs.h | |
202 | :internal: | |
203 | ||
204 | Memory Management and Command Submission | |
22554020 | 205 | ======================================== |
ca00c2b9 JN |
206 | |
207 | This sections covers all things related to the GEM implementation in the | |
208 | i915 driver. | |
209 | ||
210 | Batchbuffer Parsing | |
22554020 | 211 | ------------------- |
ca00c2b9 JN |
212 | |
213 | .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c | |
214 | :doc: batch buffer command parser | |
215 | ||
216 | .. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c | |
217 | :internal: | |
218 | ||
219 | Batchbuffer Pools | |
22554020 | 220 | ----------------- |
ca00c2b9 JN |
221 | |
222 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c | |
223 | :doc: batch pool | |
224 | ||
225 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c | |
226 | :internal: | |
227 | ||
228 | Logical Rings, Logical Ring Contexts and Execlists | |
22554020 | 229 | -------------------------------------------------- |
ca00c2b9 JN |
230 | |
231 | .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c | |
232 | :doc: Logical Rings, Logical Ring Contexts and Execlists | |
233 | ||
234 | .. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c | |
235 | :internal: | |
236 | ||
237 | Global GTT views | |
22554020 | 238 | ---------------- |
ca00c2b9 JN |
239 | |
240 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c | |
241 | :doc: Global GTT views | |
242 | ||
243 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c | |
244 | :internal: | |
245 | ||
246 | GTT Fences and Swizzling | |
22554020 | 247 | ------------------------ |
ca00c2b9 JN |
248 | |
249 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c | |
250 | :internal: | |
251 | ||
252 | Global GTT Fence Handling | |
22554020 | 253 | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
ca00c2b9 JN |
254 | |
255 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c | |
256 | :doc: fence register handling | |
257 | ||
258 | Hardware Tiling and Swizzling Details | |
22554020 | 259 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
ca00c2b9 JN |
260 | |
261 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c | |
262 | :doc: tiling swizzling details | |
263 | ||
264 | Object Tiling IOCTLs | |
22554020 | 265 | -------------------- |
ca00c2b9 JN |
266 | |
267 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c | |
268 | :internal: | |
269 | ||
270 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c | |
271 | :doc: buffer object tiling | |
272 | ||
273 | Buffer Object Eviction | |
22554020 | 274 | ---------------------- |
ca00c2b9 JN |
275 | |
276 | This section documents the interface functions for evicting buffer | |
277 | objects to make space available in the virtual gpu address spaces. Note | |
278 | that this is mostly orthogonal to shrinking buffer objects caches, which | |
279 | has the goal to make main memory (shared with the gpu through the | |
280 | unified memory architecture) available. | |
281 | ||
282 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_evict.c | |
283 | :internal: | |
284 | ||
285 | Buffer Object Memory Shrinking | |
22554020 | 286 | ------------------------------ |
ca00c2b9 JN |
287 | |
288 | This section documents the interface function for shrinking memory usage | |
289 | of buffer object caches. Shrinking is used to make main memory | |
290 | available. Note that this is mostly orthogonal to evicting buffer | |
291 | objects, which has the goal to make space in gpu virtual address spaces. | |
292 | ||
293 | .. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c | |
294 | :internal: | |
295 | ||
296 | GuC | |
22554020 | 297 | === |
ca00c2b9 JN |
298 | |
299 | GuC-specific firmware loader | |
22554020 | 300 | ---------------------------- |
ca00c2b9 JN |
301 | |
302 | .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c | |
303 | :doc: GuC-specific firmware loader | |
304 | ||
305 | .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c | |
306 | :internal: | |
307 | ||
308 | GuC-based command submission | |
22554020 | 309 | ---------------------------- |
ca00c2b9 JN |
310 | |
311 | .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c | |
312 | :doc: GuC-based command submission | |
313 | ||
314 | .. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c | |
315 | :internal: | |
316 | ||
317 | GuC Firmware Layout | |
22554020 | 318 | ------------------- |
ca00c2b9 JN |
319 | |
320 | .. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h | |
321 | :doc: GuC Firmware Layout | |
322 | ||
323 | Tracing | |
22554020 | 324 | ======= |
ca00c2b9 JN |
325 | |
326 | This sections covers all things related to the tracepoints implemented | |
327 | in the i915 driver. | |
328 | ||
329 | i915_ppgtt_create and i915_ppgtt_release | |
22554020 | 330 | ---------------------------------------- |
ca00c2b9 JN |
331 | |
332 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h | |
333 | :doc: i915_ppgtt_create and i915_ppgtt_release tracepoints | |
334 | ||
335 | i915_context_create and i915_context_free | |
22554020 | 336 | ----------------------------------------- |
ca00c2b9 JN |
337 | |
338 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h | |
339 | :doc: i915_context_create and i915_context_free tracepoints | |
340 | ||
341 | switch_mm | |
22554020 | 342 | --------- |
ca00c2b9 JN |
343 | |
344 | .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h | |
345 | :doc: switch_mm tracepoint | |
346 | ||
347 | .. WARNING: DOCPROC directive not supported: !Cdrivers/gpu/drm/i915/i915_irq.c |