Commit 3ab6fe4b authored by Likun Gao's avatar Likun Gao Committed by Alex Deucher
Browse files

drm/amdgpu: update the method to set kcq queue mask



Use a common method to set queue mask before set kiq resource.
The value of queue mask must suitablt for the designated form.

Signed-off-by: default avatarLikun Gao <Likun.Gao@amd.com>
Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 98bf250e
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -485,6 +485,19 @@ int amdgpu_gfx_disable_kcq(struct amdgpu_device *adev)
	return amdgpu_ring_test_helper(kiq_ring);
}

int amdgpu_gfx_kcq_queue_mask_transform(struct amdgpu_device *adev,
					int queue_bit)
{
	int mec, pipe, queue;
	int queue_kcq_bit = 0;

	amdgpu_gfx_bit_to_mec_queue(adev, queue_bit, &mec, &pipe, &queue);

	queue_kcq_bit = mec * 4 * 8 + pipe * 8 + queue;

	return queue_kcq_bit;
}

int amdgpu_gfx_enable_kcq(struct amdgpu_device *adev)
{
	struct amdgpu_kiq *kiq = &adev->gfx.kiq;
@@ -507,7 +520,7 @@ int amdgpu_gfx_enable_kcq(struct amdgpu_device *adev)
			break;
		}

		queue_mask |= (1ull << i);
		queue_mask |= (1ull << amdgpu_gfx_kcq_queue_mask_transform(adev, i));
	}

	DRM_INFO("kiq ring mec %d pipe %d q %d\n", kiq_ring->me, kiq_ring->pipe,