drm/amdgpu: add new ring reset callback
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 9 Apr 2024 17:11:53 +0000 (13:11 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 16 Aug 2024 18:17:40 +0000 (14:17 -0400)
Use this to reset just a single ring.

Acked-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h

index 582053f1cd56557cdef4fe9adf3419614a0d9dbe..c7f15edeb367979894a12cba64ab360d44171124 100644 (file)
@@ -235,6 +235,7 @@ struct amdgpu_ring_funcs {
        void (*patch_cntl)(struct amdgpu_ring *ring, unsigned offset);
        void (*patch_ce)(struct amdgpu_ring *ring, unsigned offset);
        void (*patch_de)(struct amdgpu_ring *ring, unsigned offset);
+       int (*reset)(struct amdgpu_ring *ring, unsigned int vmid);
 };
 
 struct amdgpu_ring {
@@ -334,6 +335,7 @@ struct amdgpu_ring {
 #define amdgpu_ring_patch_cntl(r, o) ((r)->funcs->patch_cntl((r), (o)))
 #define amdgpu_ring_patch_ce(r, o) ((r)->funcs->patch_ce((r), (o)))
 #define amdgpu_ring_patch_de(r, o) ((r)->funcs->patch_de((r), (o)))
+#define amdgpu_ring_reset(r, v) (r)->funcs->reset((r), (v))
 
 unsigned int amdgpu_ring_max_ibs(enum amdgpu_ring_type type);
 int amdgpu_ring_alloc(struct amdgpu_ring *ring, unsigned ndw);