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