Skip to content

Commit

Permalink
drm/amdgpu: Enable MES to handle doorbell ring on unmapped queue
Browse files Browse the repository at this point in the history
On MES12, HW can monitor up to 2048 doorbells that not be
mapped currently and trigger the interrupt to MES when these unmapped
doorbell been ringed.

Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
shaoyunl authored and Alex Deucher committed May 2, 2024
1 parent 745f46b commit d817c47
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,27 @@ static void mes_v12_0_init_aggregated_doorbell(struct amdgpu_mes *mes)
WREG32_SOC15(GC, 0, regCP_HQD_GFX_CONTROL, data);
}


static void mes_v12_0_enable_unmapped_doorbell_handling(
struct amdgpu_mes *mes, bool enable)
{
struct amdgpu_device *adev = mes->adev;
uint32_t data = RREG32_SOC15(GC, 0, regCP_UNMAPPED_DOORBELL);

/*
* The default PROC_LSB settng is 0xc which means doorbell
* addr[16:12] gives the doorbell page number. For kfd, each
* process will use 2 pages of doorbell, we need to change the
* setting to 0xd
*/
data &= ~CP_UNMAPPED_DOORBELL__PROC_LSB_MASK;
data |= 0xd << CP_UNMAPPED_DOORBELL__PROC_LSB__SHIFT;

data |= (enable ? 1 : 0) << CP_UNMAPPED_DOORBELL__ENABLE__SHIFT;

WREG32_SOC15(GC, 0, regCP_UNMAPPED_DOORBELL, data);
}

static const struct amdgpu_mes_funcs mes_v12_0_funcs = {
.add_hw_queue = mes_v12_0_add_hw_queue,
.remove_hw_queue = mes_v12_0_remove_hw_queue,
Expand Down Expand Up @@ -1233,6 +1254,9 @@ static int mes_v12_0_hw_init(void *handle)

mes_v12_0_init_aggregated_doorbell(&adev->mes);

/* Enable the MES to handle doorbell ring on unmapped queue */
mes_v12_0_enable_unmapped_doorbell_handling(&adev->mes, true);

r = mes_v12_0_query_sched_status(&adev->mes);
if (r) {
DRM_ERROR("MES is busy\n");
Expand Down

0 comments on commit d817c47

Please sign in to comment.