Commit a48f31fb authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/gfx9.4.3: use proper rlc safe mode helpers



Rather than open coding it for the queue reset.

Acked-by: default avatarVitaly Prosyak <vitaly.prosyak@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 27ef61f9
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -321,7 +321,7 @@ static void gfx_v9_4_3_kiq_reset_hw_queue(struct amdgpu_ring *kiq_ring, uint32_t
	unsigned i;

	/* enter save mode */
	gfx_v9_4_3_xcc_set_safe_mode(adev, xcc_id);
	amdgpu_gfx_rlc_enter_safe_mode(adev, xcc_id);
	mutex_lock(&adev->srbm_mutex);
	soc15_grbm_select(adev, me_id, pipe_id, queue_id, 0, xcc_id);

@@ -343,7 +343,7 @@ static void gfx_v9_4_3_kiq_reset_hw_queue(struct amdgpu_ring *kiq_ring, uint32_t
	soc15_grbm_select(adev, 0, 0, 0, 0, 0);
	mutex_unlock(&adev->srbm_mutex);
	/* exit safe mode */
	gfx_v9_4_3_xcc_unset_safe_mode(adev, xcc_id);
	amdgpu_gfx_rlc_exit_safe_mode(adev, xcc_id);
}

static const struct kiq_pm4_funcs gfx_v9_4_3_kiq_pm4_funcs = {
@@ -3495,7 +3495,7 @@ static int gfx_v9_4_3_reset_kcq(struct amdgpu_ring *ring,
		return r;

	/* make sure dequeue is complete*/
	gfx_v9_4_3_xcc_set_safe_mode(adev, ring->xcc_id);
	amdgpu_gfx_rlc_enter_safe_mode(adev, ring->xcc_id);
	mutex_lock(&adev->srbm_mutex);
	soc15_grbm_select(adev, ring->me, ring->pipe, ring->queue, 0, GET_INST(GC, ring->xcc_id));
	for (i = 0; i < adev->usec_timeout; i++) {
@@ -3507,7 +3507,7 @@ static int gfx_v9_4_3_reset_kcq(struct amdgpu_ring *ring,
		r = -ETIMEDOUT;
	soc15_grbm_select(adev, 0, 0, 0, 0, GET_INST(GC, ring->xcc_id));
	mutex_unlock(&adev->srbm_mutex);
	gfx_v9_4_3_xcc_unset_safe_mode(adev, ring->xcc_id);
	amdgpu_gfx_rlc_exit_safe_mode(adev, ring->xcc_id);
	if (r) {
		dev_err(adev->dev, "fail to wait on hqd deactive\n");
		return r;