]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu/gfx9.4.3: align mqd settings with KFD
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 16 Mar 2026 21:45:21 +0000 (17:45 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 21 Apr 2026 20:51:48 +0000 (16:51 -0400)
Make sure to set the quantum bits in the compute MQD
for better fairness across queues of the same priority.

Reviewed-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c

index ad4d442e7345e235bd5c11f38f98b33be997a2fb..d0b8fb9317201535f213e7fd9e8b1d6ce38fa517 100644 (file)
@@ -1943,7 +1943,11 @@ static int gfx_v9_4_3_xcc_mqd_init(struct amdgpu_ring *ring, int xcc_id)
 
        /* set static priority for a queue/ring */
        gfx_v9_4_3_mqd_set_priority(ring, mqd);
-       mqd->cp_hqd_quantum = RREG32_SOC15(GC, GET_INST(GC, xcc_id), regCP_HQD_QUANTUM);
+       tmp = RREG32_SOC15(GC, GET_INST(GC, xcc_id), regCP_HQD_QUANTUM);
+       tmp = REG_SET_FIELD(tmp, CP_HQD_QUANTUM, QUANTUM_EN, 1);
+       tmp = REG_SET_FIELD(tmp, CP_HQD_QUANTUM, QUANTUM_SCALE, 1);
+       tmp = REG_SET_FIELD(tmp, CP_HQD_QUANTUM, QUANTUM_DURATION, 1);
+       mqd->cp_hqd_quantum = tmp;
 
        /* map_queues packet doesn't need activate the queue,
         * so only kiq need set this field.