treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / gpu / amdgpu.rst
blob0efede580039cdcbb074983521731f59d3a7b946
1 =========================
2  drm/amdgpu AMDgpu driver
3 =========================
5 The drm/amdgpu driver supports all AMD Radeon GPUs based on the Graphics Core
6 Next (GCN) architecture.
8 Module Parameters
9 =================
11 The amdgpu driver supports the following module parameters:
13 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
15 Core Driver Infrastructure
16 ==========================
18 This section covers core driver infrastructure.
20 .. _amdgpu_memory_domains:
22 Memory Domains
23 --------------
25 .. kernel-doc:: include/uapi/drm/amdgpu_drm.h
26    :doc: memory domains
28 Buffer Objects
29 --------------
31 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
32    :doc: amdgpu_object
34 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
35    :internal:
37 PRIME Buffer Sharing
38 --------------------
40 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
41    :doc: PRIME Buffer Sharing
43 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
44    :internal:
46 MMU Notifier
47 ------------
49 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
50    :doc: MMU Notifier
52 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
53    :internal:
55 AMDGPU Virtual Memory
56 ---------------------
58 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
59    :doc: GPUVM
61 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
62    :internal:
64 Interrupt Handling
65 ------------------
67 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
68    :doc: Interrupt Handling
70 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
71    :internal:
73 AMDGPU XGMI Support
74 ===================
76 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
77    :doc: AMDGPU XGMI Support
79 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
80    :internal:
82 AMDGPU RAS Support
83 ==================
85 The AMDGPU RAS interfaces are exposed via sysfs (for informational queries) and
86 debugfs (for error injection).
88 RAS debugfs/sysfs Control and Error Injection Interfaces
89 --------------------------------------------------------
91 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
92    :doc: AMDGPU RAS debugfs control interface
94 RAS Reboot Behavior for Unrecoverable Errors
95 --------------------------------------------------------
97 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
98    :doc: AMDGPU RAS Reboot Behavior for Unrecoverable Errors
100 RAS Error Count sysfs Interface
101 -------------------------------
103 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
104    :doc: AMDGPU RAS sysfs Error Count Interface
106 RAS EEPROM debugfs Interface
107 ----------------------------
109 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
110    :doc: AMDGPU RAS debugfs EEPROM table reset interface
112 RAS VRAM Bad Pages sysfs Interface
113 ----------------------------------
115 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
116    :doc: AMDGPU RAS sysfs gpu_vram_bad_pages Interface
118 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
119    :internal:
121 Sample Code
122 -----------
123 Sample code for testing error injection can be found here:
124 https://cgit.freedesktop.org/mesa/drm/tree/tests/amdgpu/ras_tests.c
126 This is part of the libdrm amdgpu unit tests which cover several areas of the GPU.
127 There are four sets of tests:
129 RAS Basic Test
131 The test verifies the RAS feature enabled status and makes sure the necessary sysfs and debugfs files
132 are present.
134 RAS Query Test
136 This test checks the RAS availability and enablement status for each supported IP block as well as
137 the error counts.
139 RAS Inject Test
141 This test injects errors for each IP.
143 RAS Disable Test
145 This test tests disabling of RAS features for each IP block.
148 GPU Power/Thermal Controls and Monitoring
149 =========================================
151 This section covers hwmon and power/thermal controls.
153 HWMON Interfaces
154 ----------------
156 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
157    :doc: hwmon
159 GPU sysfs Power State Interfaces
160 --------------------------------
162 GPU power controls are exposed via sysfs files.
164 power_dpm_state
165 ~~~~~~~~~~~~~~~
167 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
168    :doc: power_dpm_state
170 power_dpm_force_performance_level
171 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
174    :doc: power_dpm_force_performance_level
176 pp_table
177 ~~~~~~~~
179 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
180    :doc: pp_table
182 pp_od_clk_voltage
183 ~~~~~~~~~~~~~~~~~
185 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
186    :doc: pp_od_clk_voltage
188 pp_dpm_*
189 ~~~~~~~~
191 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
192    :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie
194 pp_power_profile_mode
195 ~~~~~~~~~~~~~~~~~~~~~
197 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
198    :doc: pp_power_profile_mode
200 busy_percent
201 ~~~~~~~~~~~~
203 .. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
204    :doc: busy_percent