Skip to content

Commit 478a527

Browse files
committed
Merge tag 'amd-drm-next-6.11-2024-07-12' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-next-6.11-2024-07-12: amdgpu: - RAS fixes - SMU fixes - GC 12 updates - SR-IOV fixes - IH 7 updates - DCC fixes - GC 11.5 fixes - DP MST fixes - GFX 9.4.4 fixes - SMU 14 updates - Documentation updates - MAINTAINERS updates - PSR SU fix - Misc small fixes Signed-off-by: Dave Airlie <[email protected]> From: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents c58c391 + 1cff101 commit 478a527

40 files changed

+1039
-134
lines changed

Documentation/gpu/amdgpu/dgpu-asic-info-table.csv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ Radeon (RX/Pro) 500 /540(X) /550 /640 /WX2100 /WX3100 /WX200 Series, POLARIS12,
1515
Radeon (RX|TM) (PRO|WX) Vega /MI25 /V320 /V340L /8200 /9100 /SSG MxGPU, VEGA10, DCE 12, 9.0.1, VCE 4.0.0 / UVD 7.0.0, 4.0.0
1616
AMD Radeon (Pro) VII /MI50 /MI60, VEGA20, DCE 12, 9.4.0, VCE 4.1.0 / UVD 7.2.0, 4.2.0
1717
MI100, ARCTURUS, *, 9.4.1, VCN 2.5.0, 4.2.2
18-
MI200, ALDEBARAN, *, 9.4.2, VCN 2.6.0, 4.4.0
19-
MI300, AQUA_VANGARAM, *, 9.4.3, VCN 4.0.3, 4.4.2
18+
MI200 Series, ALDEBARAN, *, 9.4.2, VCN 2.6.0, 4.4.0
19+
MI300 Series, AQUA_VANJARAM, *, 9.4.3, VCN 4.0.3, 4.4.2
2020
AMD Radeon (RX|Pro) 5600(M|XT) /5700 (M|XT|XTB) /W5700, NAVI10, DCN 2.0.0, 10.1.10, VCN 2.0.0, 5.0.0
2121
AMD Radeon (Pro) 5300 /5500XTB/5500(XT|M) /W5500M /W5500, NAVI14, DCN 2.0.0, 10.1.1, VCN 2.0.2, 5.0.2
2222
AMD Radeon RX 6800(XT) /6900(XT) /W6800, SIENNA_CICHLID, DCN 3.0.0, 10.3.0, VCN 3.0.0, 5.2.0

MAINTAINERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,7 +1092,7 @@ F: Documentation/ABI/testing/sysfs-amd-pmf
10921092
F: drivers/platform/x86/amd/pmf/
10931093

10941094
AMD POWERPLAY AND SWSMU
1095-
M: Evan Quan <evan.quan@amd.com>
1095+
M: Kenneth Feng <kenneth.feng@amd.com>
10961096
10971097
S: Supported
10981098
T: git https://gitlab.freedesktop.org/agd5f/linux.git
@@ -18656,7 +18656,7 @@ F: drivers/net/wireless/quantenna
1865618656
RADEON and AMDGPU DRM DRIVERS
1865718657
M: Alex Deucher <[email protected]>
1865818658
M: Christian König <[email protected]>
18659-
M: Pan, Xinhui <[email protected]>
18659+
M: Xinhui Pan <[email protected]>
1866018660
1866118661
S: Supported
1866218662
B: https://gitlab.freedesktop.org/drm/amd/-/issues

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,6 @@ static int aldebaran_mode2_restore_ip(struct amdgpu_device *adev)
316316
adev->ip_blocks[i].status.late_initialized = true;
317317
}
318318

319-
amdgpu_ras_set_error_query_ready(adev, true);
320-
321319
amdgpu_device_set_cg_state(adev, AMD_CG_STATE_GATE);
322320
amdgpu_device_set_pg_state(adev, AMD_PG_STATE_GATE);
323321

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ static struct aca_regs_dump {
119119
static void aca_smu_bank_dump(struct amdgpu_device *adev, int idx, int total, struct aca_bank *bank,
120120
struct ras_query_context *qctx)
121121
{
122-
u64 event_id = qctx ? qctx->event_id : 0ULL;
122+
u64 event_id = qctx ? qctx->evid.event_id : RAS_EVENT_INVALID_ID;
123123
int i;
124124

125125
RAS_EVENT_LOG(adev, event_id, HW_ERR "Accelerator Check Architecture events logged\n");

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,21 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
10931093
unsigned int i;
10941094
int r;
10951095

1096+
/*
1097+
* We can't use gang submit on with reserved VMIDs when the VM changes
1098+
* can't be invalidated by more than one engine at the same time.
1099+
*/
1100+
if (p->gang_size > 1 && !p->adev->vm_manager.concurrent_flush) {
1101+
for (i = 0; i < p->gang_size; ++i) {
1102+
struct drm_sched_entity *entity = p->entities[i];
1103+
struct drm_gpu_scheduler *sched = entity->rq->sched;
1104+
struct amdgpu_ring *ring = to_amdgpu_ring(sched);
1105+
1106+
if (amdgpu_vmid_uses_reserved(vm, ring->vm_hub))
1107+
return -EINVAL;
1108+
}
1109+
}
1110+
10961111
r = amdgpu_vm_clear_freed(adev, vm, NULL);
10971112
if (r)
10981113
return r;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3142,7 +3142,8 @@ static int amdgpu_device_ip_late_init(struct amdgpu_device *adev)
31423142
return r;
31433143
}
31443144

3145-
amdgpu_ras_set_error_query_ready(adev, true);
3145+
if (!amdgpu_in_reset(adev))
3146+
amdgpu_ras_set_error_query_ready(adev, true);
31463147

31473148
amdgpu_device_set_cg_state(adev, AMD_CG_STATE_GATE);
31483149
amdgpu_device_set_pg_state(adev, AMD_PG_STATE_GATE);

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2161,8 +2161,6 @@ static int amdgpu_discovery_set_gc_ip_blocks(struct amdgpu_device *adev)
21612161
break;
21622162
case IP_VERSION(12, 0, 0):
21632163
case IP_VERSION(12, 0, 1):
2164-
if (!amdgpu_exp_hw_support)
2165-
return -EINVAL;
21662164
amdgpu_device_ip_block_add(adev, &gfx_v12_0_ip_block);
21672165
break;
21682166
default:

drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ struct amdgpu_gfx_funcs {
297297
int (*switch_partition_mode)(struct amdgpu_device *adev,
298298
int num_xccs_per_xcp);
299299
int (*ih_node_to_logical_xcc)(struct amdgpu_device *adev, int ih_node);
300+
int (*get_xccs_per_xcp)(struct amdgpu_device *adev);
300301
};
301302

302303
struct sq_work {

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ int amdgpu_vmid_grab(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
424424
if (r || !idle)
425425
goto error;
426426

427-
if (vm->reserved_vmid[vmhub] || (enforce_isolation && (vmhub == AMDGPU_GFXHUB(0)))) {
427+
if (amdgpu_vmid_uses_reserved(vm, vmhub)) {
428428
r = amdgpu_vmid_grab_reserved(vm, ring, job, &id, fence);
429429
if (r || !id)
430430
goto error;
@@ -474,6 +474,19 @@ int amdgpu_vmid_grab(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
474474
return r;
475475
}
476476

477+
/*
478+
* amdgpu_vmid_uses_reserved - check if a VM will use a reserved VMID
479+
* @vm: the VM to check
480+
* @vmhub: the VMHUB which will be used
481+
*
482+
* Returns: True if the VM will use a reserved VMID.
483+
*/
484+
bool amdgpu_vmid_uses_reserved(struct amdgpu_vm *vm, unsigned int vmhub)
485+
{
486+
return vm->reserved_vmid[vmhub] ||
487+
(enforce_isolation && (vmhub == AMDGPU_GFXHUB(0)));
488+
}
489+
477490
int amdgpu_vmid_alloc_reserved(struct amdgpu_device *adev,
478491
unsigned vmhub)
479492
{

drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ void amdgpu_pasid_free_delayed(struct dma_resv *resv,
7878

7979
bool amdgpu_vmid_had_gpu_reset(struct amdgpu_device *adev,
8080
struct amdgpu_vmid *id);
81+
bool amdgpu_vmid_uses_reserved(struct amdgpu_vm *vm, unsigned int vmhub);
8182
int amdgpu_vmid_alloc_reserved(struct amdgpu_device *adev,
8283
unsigned vmhub);
8384
void amdgpu_vmid_free_reserved(struct amdgpu_device *adev,

0 commit comments

Comments
 (0)