Skip to content

Commit 2744275

Browse files
committed
Merge tag 'amd-drm-next-6.7-2023-10-13' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-next-6.7-2023-10-13: amdgpu: - DC replay fixes - Misc code cleanups and spelling fixes - Documentation updates - RAS EEPROM Updates - FRU EEPROM Updates - IP discovery updates - SR-IOV fixes - RAS updates - DC PQ fixes - SMU 13.0.6 updates - GC 11.5 Support - NBIO 7.11 Support - GMC 11 Updates - Reset fixes - SMU 11.5 Updates - SMU 13.0 OD support - Use flexible arrays for bo list handling - W=1 Fixes - SubVP fixes - DPIA fixes - DCN 3.5 Support - Devcoredump fixes - VPE 6.1 support - VCN 4.0 Updates - S/G display fixes - DML fixes - DML2 Support - MST fixes - VRR fixes - Enable seamless boot in more cases - Enable content type property for HDMI - OLED fixes - Rework and clean up GPUVM TLB flushing - DC ODM fixes - DP 2.x fixes - AGP aperture fixes - SDMA firmware loading cleanups - Cyan Skillfish GPU clock counter fix - GC 11 GART fix - Cache GPU fault info for userspace queries - DC cursor check fixes - eDP fixes - DC FP handling fixes - Variable sized array fixes - SMU 13.0.x fixes - IB start and size alignment fixes for VCN - SMU 14 Support - Suspend and resume sequence rework - vkms fix amdkfd: - GC 11 fixes - GC 10 fixes - Doorbell fixes - CWSR fixes - SVM fixes - Clean up GC info enumeration - Rework memory limit handling - Coherent memory handling fixes - Use partial migrations in GPU faults - TLB flush fixes - DMA unmap fixes - GC 9.4.3 fixes - SQ interrupt fix - GTT mapping fix - GC 11.5 Support radeon: - Misc code cleanups - W=1 Fixes - Fix possible buffer overflow - Fix possible NULL pointer dereference UAPI: - Add EXT_COHERENT memory allocation flags. These allow for system scope atomics. Proposed userspace: ROCm/ROCT-Thunk-Interface#88 - Add support for new VPE engine. This is a memory to memory copy engine with advanced scaling, CSC, and color management features Proposed mesa MR: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 - Add INFO IOCTL interface to query GPU faults Proposed Mesa MR: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238 Proposed libdrm MR: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/298 Signed-off-by: Dave Airlie <[email protected]> From: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 0805725 + cd90511 commit 2744275

File tree

569 files changed

+266209
-5433
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

569 files changed

+266209
-5433
lines changed

Documentation/gpu/amdgpu/driver-misc.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,30 @@ serial_number
2626
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
2727
:doc: serial_number
2828

29+
fru_id
30+
-------------
31+
32+
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
33+
:doc: fru_id
34+
35+
manufacturer
36+
-------------
37+
38+
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
39+
:doc: manufacturer
40+
2941
unique_id
3042
---------
3143

3244
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
3345
:doc: unique_id
3446

47+
board_info
48+
----------
49+
50+
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
51+
:doc: board_info
52+
3553
Accelerated Processing Units (APU) Info
3654
---------------------------------------
3755

Documentation/gpu/amdgpu/thermal.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,36 @@ gpu_metrics
6464
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
6565
:doc: gpu_metrics
6666

67+
fan_curve
68+
---------
69+
70+
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
71+
:doc: fan_curve
72+
73+
acoustic_limit_rpm_threshold
74+
----------------------------
75+
76+
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
77+
:doc: acoustic_limit_rpm_threshold
78+
79+
acoustic_target_rpm_threshold
80+
-----------------------------
81+
82+
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
83+
:doc: acoustic_target_rpm_threshold
84+
85+
fan_target_temperature
86+
----------------------
87+
88+
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
89+
:doc: fan_target_temperature
90+
91+
fan_minimum_pwm
92+
---------------
93+
94+
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
95+
:doc: fan_minimum_pwm
96+
6797
GFXOFF
6898
======
6999

drivers/gpu/drm/amd/amdgpu/Makefile

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ amdgpu-y += \
9898
vega20_reg_init.o nbio_v7_4.o nbio_v2_3.o nv.o arct_reg_init.o mxgpu_nv.o \
9999
nbio_v7_2.o hdp_v4_0.o hdp_v5_0.o aldebaran_reg_init.o aldebaran.o soc21.o \
100100
sienna_cichlid.o smu_v13_0_10.o nbio_v4_3.o hdp_v6_0.o nbio_v7_7.o hdp_v5_2.o lsdma_v6_0.o \
101-
nbio_v7_9.o aqua_vanjaram.o
101+
nbio_v7_9.o aqua_vanjaram.o nbio_v7_11.o
102102

103103
# add DF block
104104
amdgpu-y += \
@@ -113,11 +113,12 @@ amdgpu-y += \
113113
gfxhub_v1_0.o mmhub_v1_0.o gmc_v9_0.o gfxhub_v1_1.o mmhub_v9_4.o \
114114
gfxhub_v2_0.o mmhub_v2_0.o gmc_v10_0.o gfxhub_v2_1.o mmhub_v2_3.o \
115115
mmhub_v1_7.o gfxhub_v3_0.o mmhub_v3_0.o mmhub_v3_0_2.o gmc_v11_0.o \
116-
mmhub_v3_0_1.o gfxhub_v3_0_3.o gfxhub_v1_2.o mmhub_v1_8.o
116+
mmhub_v3_0_1.o gfxhub_v3_0_3.o gfxhub_v1_2.o mmhub_v1_8.o mmhub_v3_3.o \
117+
gfxhub_v11_5_0.o
117118

118119
# add UMC block
119120
amdgpu-y += \
120-
umc_v6_0.o umc_v6_1.o umc_v6_7.o umc_v8_7.o umc_v8_10.o
121+
umc_v6_0.o umc_v6_1.o umc_v6_7.o umc_v8_7.o umc_v8_10.o umc_v12_0.o
121122

122123
# add IH block
123124
amdgpu-y += \
@@ -205,14 +206,27 @@ amdgpu-y += \
205206
vcn_v3_0.o \
206207
vcn_v4_0.o \
207208
vcn_v4_0_3.o \
209+
vcn_v4_0_5.o \
208210
amdgpu_jpeg.o \
209211
jpeg_v1_0.o \
210212
jpeg_v2_0.o \
211213
jpeg_v2_5.o \
212214
jpeg_v3_0.o \
213215
jpeg_v4_0.o \
214-
jpeg_v4_0_3.o
216+
jpeg_v4_0_3.o \
217+
jpeg_v4_0_5.o
215218

219+
# add VPE block
220+
amdgpu-y += \
221+
amdgpu_vpe.o \
222+
vpe_v6_1.o
223+
224+
# add UMSCH block
225+
amdgpu-y += \
226+
amdgpu_umsch_mm.o \
227+
umsch_mm_v4_0.o
228+
229+
#
216230
# add ATHUB block
217231
amdgpu-y += \
218232
athub_v1_0.o \

drivers/gpu/drm/amd/amdgpu/aldebaran.c

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ static bool aldebaran_is_mode2_default(struct amdgpu_reset_control *reset_ctl)
3535
{
3636
struct amdgpu_device *adev = (struct amdgpu_device *)reset_ctl->handle;
3737

38-
if ((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 2) &&
38+
if ((amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 2) &&
3939
adev->gmc.xgmi.connected_to_cpu))
4040
return true;
4141

@@ -48,27 +48,24 @@ aldebaran_get_reset_handler(struct amdgpu_reset_control *reset_ctl,
4848
{
4949
struct amdgpu_reset_handler *handler;
5050
struct amdgpu_device *adev = (struct amdgpu_device *)reset_ctl->handle;
51+
int i;
52+
53+
if (reset_context->method == AMD_RESET_METHOD_NONE) {
54+
if (aldebaran_is_mode2_default(reset_ctl))
55+
reset_context->method = AMD_RESET_METHOD_MODE2;
56+
else
57+
reset_context->method = amdgpu_asic_reset_method(adev);
58+
}
5159

5260
if (reset_context->method != AMD_RESET_METHOD_NONE) {
5361
dev_dbg(adev->dev, "Getting reset handler for method %d\n",
5462
reset_context->method);
55-
list_for_each_entry(handler, &reset_ctl->reset_handlers,
56-
handler_list) {
63+
for_each_handler(i, handler, reset_ctl) {
5764
if (handler->reset_method == reset_context->method)
5865
return handler;
5966
}
6067
}
6168

62-
if (aldebaran_is_mode2_default(reset_ctl)) {
63-
list_for_each_entry(handler, &reset_ctl->reset_handlers,
64-
handler_list) {
65-
if (handler->reset_method == AMD_RESET_METHOD_MODE2) {
66-
reset_context->method = AMD_RESET_METHOD_MODE2;
67-
return handler;
68-
}
69-
}
70-
}
71-
7269
dev_dbg(adev->dev, "Reset handler not found!\n");
7370

7471
return NULL;
@@ -124,9 +121,9 @@ static void aldebaran_async_reset(struct work_struct *work)
124121
struct amdgpu_reset_control *reset_ctl =
125122
container_of(work, struct amdgpu_reset_control, reset_work);
126123
struct amdgpu_device *adev = (struct amdgpu_device *)reset_ctl->handle;
124+
int i;
127125

128-
list_for_each_entry(handler, &reset_ctl->reset_handlers,
129-
handler_list) {
126+
for_each_handler(i, handler, reset_ctl) {
130127
if (handler->reset_method == reset_ctl->active_reset) {
131128
dev_dbg(adev->dev, "Resetting device\n");
132129
handler->do_reset(adev);
@@ -157,7 +154,7 @@ aldebaran_mode2_perform_reset(struct amdgpu_reset_control *reset_ctl,
157154
if (reset_device_list == NULL)
158155
return -EINVAL;
159156

160-
if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 2) &&
157+
if (amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 2) &&
161158
reset_context->hive == NULL) {
162159
/* Wrong context, return error */
163160
return -EINVAL;
@@ -338,7 +335,7 @@ aldebaran_mode2_restore_hwcontext(struct amdgpu_reset_control *reset_ctl,
338335
if (reset_device_list == NULL)
339336
return -EINVAL;
340337

341-
if (reset_context->reset_req_dev->ip_versions[MP1_HWIP][0] ==
338+
if (amdgpu_ip_version(reset_context->reset_req_dev, MP1_HWIP, 0) ==
342339
IP_VERSION(13, 0, 2) &&
343340
reset_context->hive == NULL) {
344341
/* Wrong context, return error */
@@ -395,6 +392,11 @@ static struct amdgpu_reset_handler aldebaran_mode2_handler = {
395392
.do_reset = aldebaran_mode2_reset,
396393
};
397394

395+
static struct amdgpu_reset_handler
396+
*aldebaran_rst_handlers[AMDGPU_RESET_MAX_HANDLERS] = {
397+
&aldebaran_mode2_handler,
398+
};
399+
398400
int aldebaran_reset_init(struct amdgpu_device *adev)
399401
{
400402
struct amdgpu_reset_control *reset_ctl;
@@ -408,10 +410,9 @@ int aldebaran_reset_init(struct amdgpu_device *adev)
408410
reset_ctl->active_reset = AMD_RESET_METHOD_NONE;
409411
reset_ctl->get_reset_handler = aldebaran_get_reset_handler;
410412

411-
INIT_LIST_HEAD(&reset_ctl->reset_handlers);
412413
INIT_WORK(&reset_ctl->reset_work, reset_ctl->async_reset);
413414
/* Only mode2 is handled through reset control now */
414-
amdgpu_reset_add_handler(reset_ctl, &aldebaran_mode2_handler);
415+
reset_ctl->reset_handlers = &aldebaran_rst_handlers;
415416

416417
adev->reset_cntl = reset_ctl;
417418

0 commit comments

Comments
 (0)