Commit 27f5e0c1 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/gfx11: set MQD as appriopriate for queue types



Set the MQD as appropriate for the kernel vs user queues.

Acked-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 063d6683)
Cc: stable@vger.kernel.org
parent 1b237f19
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -4129,6 +4129,8 @@ static int gfx_v11_0_gfx_mqd_init(struct amdgpu_device *adev, void *m,
#endif
	if (prop->tmz_queue)
		tmp = REG_SET_FIELD(tmp, CP_GFX_HQD_CNTL, TMZ_MATCH, 1);
	if (!prop->kernel_queue)
		tmp = REG_SET_FIELD(tmp, CP_GFX_HQD_CNTL, RB_NON_PRIV, 1);
	mqd->cp_gfx_hqd_cntl = tmp;

	/* set up cp_doorbell_control */
@@ -4281,8 +4283,10 @@ static int gfx_v11_0_compute_mqd_init(struct amdgpu_device *adev, void *m,
	tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, UNORD_DISPATCH, 1);
	tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, TUNNEL_DISPATCH,
			    prop->allow_tunneling);
	if (prop->kernel_queue) {
		tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, PRIV_STATE, 1);
		tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, KMD_QUEUE, 1);
	}
	if (prop->tmz_queue)
		tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, TMZ, 1);
	mqd->cp_hqd_pq_control = tmp;