Skip to content

Commit 8b2429a

Browse files
jiadozhualexdeucher
authored andcommitted
drm/amdgpu/mes: modify mes api for mmio queue reset
Add me/pipe/queue parameters for queue reset input. v2: fix build (Alex) Acked-by: Vitaly Prosyak <[email protected]> Signed-off-by: Jiadong Zhu <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 8fe4fde commit 8b2429a

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,8 @@ int amdgpu_mes_unmap_legacy_queue(struct amdgpu_device *adev,
873873

874874
int amdgpu_mes_reset_legacy_queue(struct amdgpu_device *adev,
875875
struct amdgpu_ring *ring,
876-
unsigned int vmid)
876+
unsigned int vmid,
877+
bool use_mmio)
877878
{
878879
struct mes_reset_legacy_queue_input queue_input;
879880
int r;

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,13 @@ struct mes_remove_queue_input {
252252
struct mes_reset_queue_input {
253253
uint32_t doorbell_offset;
254254
uint64_t gang_context_addr;
255+
bool use_mmio;
256+
uint32_t queue_type;
257+
uint32_t me_id;
258+
uint32_t pipe_id;
259+
uint32_t queue_id;
260+
uint32_t xcc_id;
261+
uint32_t vmid;
255262
};
256263

257264
struct mes_map_legacy_queue_input {
@@ -288,6 +295,8 @@ struct mes_resume_gang_input {
288295
struct mes_reset_legacy_queue_input {
289296
uint32_t queue_type;
290297
uint32_t doorbell_offset;
298+
bool use_mmio;
299+
uint32_t me_id;
291300
uint32_t pipe_id;
292301
uint32_t queue_id;
293302
uint64_t mqd_addr;
@@ -397,6 +406,8 @@ int amdgpu_mes_add_hw_queue(struct amdgpu_device *adev, int gang_id,
397406
int *queue_id);
398407
int amdgpu_mes_remove_hw_queue(struct amdgpu_device *adev, int queue_id);
399408
int amdgpu_mes_reset_hw_queue(struct amdgpu_device *adev, int queue_id);
409+
int amdgpu_mes_reset_hw_queue_mmio(struct amdgpu_device *adev, int queue_type,
410+
int me_id, int pipe_id, int queue_id, int vmid);
400411

401412
int amdgpu_mes_map_legacy_queue(struct amdgpu_device *adev,
402413
struct amdgpu_ring *ring);
@@ -406,7 +417,8 @@ int amdgpu_mes_unmap_legacy_queue(struct amdgpu_device *adev,
406417
u64 gpu_addr, u64 seq);
407418
int amdgpu_mes_reset_legacy_queue(struct amdgpu_device *adev,
408419
struct amdgpu_ring *ring,
409-
unsigned int vmid);
420+
unsigned int vmid,
421+
bool use_mmio);
410422

411423
uint32_t amdgpu_mes_rreg(struct amdgpu_device *adev, uint32_t reg);
412424
int amdgpu_mes_wreg(struct amdgpu_device *adev,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6549,7 +6549,7 @@ static int gfx_v11_0_reset_kgq(struct amdgpu_ring *ring, unsigned int vmid)
65496549
struct amdgpu_device *adev = ring->adev;
65506550
int r;
65516551

6552-
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid);
6552+
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false);
65536553
if (r)
65546554
return r;
65556555

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5163,7 +5163,7 @@ static int gfx_v12_0_reset_kgq(struct amdgpu_ring *ring, unsigned int vmid)
51635163
struct amdgpu_device *adev = ring->adev;
51645164
int r;
51655165

5166-
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid);
5166+
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false);
51675167
if (r) {
51685168
dev_err(adev->dev, "reset via MES failed %d\n", r);
51695169
return r;

0 commit comments

Comments
 (0)