diff options
| author | Alex Deucher <alexander.deucher@amd.com> | 2023-04-26 14:49:00 -0400 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2023-06-09 09:29:04 -0400 | 
| commit | 45b54a7dd3437632352ed28163e982233ef190a8 (patch) | |
| tree | 13f77f4ab87436304ded43fe897088fb023da3f7 /drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | |
| parent | 42cdf6f687daa1a1992db400e8311e1e49c787fb (diff) | |
drm/amdgpu/gfx9: always restore kcq MQDs
Always restore the MQD not just when we do a reset.
This allows us to move the MQD to VRAM if we want.
v2: always reset ring pointer as well (Christian)
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 7 | 
1 files changed, 2 insertions, 5 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index 8fb027cf1bfb..4a7556099469 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -3589,17 +3589,14 @@ static int gfx_v9_0_kcq_init_queue(struct amdgpu_ring *ring)  		if (adev->gfx.mec.mqd_backup[mqd_idx])  			memcpy(adev->gfx.mec.mqd_backup[mqd_idx], mqd, sizeof(struct v9_mqd_allocation)); -	} else if (amdgpu_in_reset(adev)) { /* for GPU_RESET case */ -		/* reset MQD to a clean status */ +	} else { +		/* restore MQD to a clean status */  		if (adev->gfx.mec.mqd_backup[mqd_idx])  			memcpy(mqd, adev->gfx.mec.mqd_backup[mqd_idx], sizeof(struct v9_mqd_allocation)); -  		/* reset ring buffer */  		ring->wptr = 0;  		atomic64_set((atomic64_t *)ring->wptr_cpu_addr, 0);  		amdgpu_ring_clear_ring(ring); -	} else { -		amdgpu_ring_clear_ring(ring);  	}  	return 0; | 
