@@ -1612,9 +1612,9 @@ static int gfx_v11_0_sw_init(struct amdgpu_ip_block *ip_block)
16121612 case IP_VERSION(11, 0, 2):
16131613 case IP_VERSION(11, 0, 3):
16141614 if (!adev->gfx.disable_uq &&
1615- adev->gfx.me_fw_version >= 2390 &&
1616- adev->gfx.pfp_fw_version >= 2530 &&
1617- adev->gfx.mec_fw_version >= 2600 &&
1615+ adev->gfx.me_fw_version >= 2420 &&
1616+ adev->gfx.pfp_fw_version >= 2580 &&
1617+ adev->gfx.mec_fw_version >= 2650 &&
16181618 adev->mes.fw_version[0] >= 120) {
16191619 adev->userq_funcs[AMDGPU_HW_IP_GFX] = &userq_mes_funcs;
16201620 adev->userq_funcs[AMDGPU_HW_IP_COMPUTE] = &userq_mes_funcs;
@@ -4129,6 +4129,8 @@ static int gfx_v11_0_gfx_mqd_init(struct amdgpu_device *adev, void *m,
41294129#endif
41304130 if (prop->tmz_queue)
41314131 tmp = REG_SET_FIELD(tmp, CP_GFX_HQD_CNTL, TMZ_MATCH, 1);
4132+ if (!prop->kernel_queue)
4133+ tmp = REG_SET_FIELD(tmp, CP_GFX_HQD_CNTL, RB_NON_PRIV, 1);
41324134 mqd->cp_gfx_hqd_cntl = tmp;
41334135
41344136 /* set up cp_doorbell_control */
@@ -4281,8 +4283,10 @@ static int gfx_v11_0_compute_mqd_init(struct amdgpu_device *adev, void *m,
42814283 tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, UNORD_DISPATCH, 1);
42824284 tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, TUNNEL_DISPATCH,
42834285 prop->allow_tunneling);
4284- tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, PRIV_STATE, 1);
4285- tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, KMD_QUEUE, 1);
4286+ if (prop->kernel_queue) {
4287+ tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, PRIV_STATE, 1);
4288+ tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, KMD_QUEUE, 1);
4289+ }
42864290 if (prop->tmz_queue)
42874291 tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_CONTROL, TMZ, 1);
42884292 mqd->cp_hqd_pq_control = tmp;
0 commit comments