]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/mes12: set doorbell offset for suspending userq
authorPrike Liang <Prike.Liang@amd.com>
Thu, 25 Jun 2026 02:42:27 +0000 (10:42 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Jul 2026 17:01:29 +0000 (13:01 -0400)
Updating the union MESAPI__SUSPEND and union MESAPI__RESUME to
add the doorbell offset for suspending userq.

Signed-off-by: Prike Liang <Prike.Liang@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 5b58a2c120063544869d0284d3b355527f9f04f5)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
drivers/gpu/drm/amd/amdgpu/mes_v12_1.c

index 7453fb11289e72df3bacf12c941b6c25c4d11958..b6cbc25e1ab478ea742baac9de6f27bfc9942f0a 100644 (file)
@@ -592,6 +592,7 @@ static int mes_v12_0_suspend_gang(struct amdgpu_mes *mes,
        mes_suspend_gang_pkt.gang_context_addr = input->gang_context_addr;
        mes_suspend_gang_pkt.suspend_fence_addr = input->suspend_fence_addr;
        mes_suspend_gang_pkt.suspend_fence_value = input->suspend_fence_value;
+       mes_suspend_gang_pkt.doorbell_offset = input->doorbell_offset;
 
        return mes_v12_0_submit_pkt_and_poll_completion(mes, AMDGPU_MES_SCHED_PIPE,
                        &mes_suspend_gang_pkt, sizeof(mes_suspend_gang_pkt),
@@ -611,6 +612,7 @@ static int mes_v12_0_resume_gang(struct amdgpu_mes *mes,
 
        mes_resume_gang_pkt.resume_all_gangs = input->resume_all_gangs;
        mes_resume_gang_pkt.gang_context_addr = input->gang_context_addr;
+       mes_resume_gang_pkt.doorbell_offset = input->doorbell_offset;
 
        return mes_v12_0_submit_pkt_and_poll_completion(mes, AMDGPU_MES_SCHED_PIPE,
                        &mes_resume_gang_pkt, sizeof(mes_resume_gang_pkt),
index 8a90ad5a51b8b5f402a6339c1a4c053cea83e1aa..e13535d94c5163e6dec9864ed2ee67dcde804bbb 100644 (file)
@@ -484,6 +484,7 @@ static int mes_v12_1_suspend_gang(struct amdgpu_mes *mes,
        mes_suspend_gang_pkt.gang_context_addr = input->gang_context_addr;
        mes_suspend_gang_pkt.suspend_fence_addr = input->suspend_fence_addr;
        mes_suspend_gang_pkt.suspend_fence_value = input->suspend_fence_value;
+       mes_suspend_gang_pkt.doorbell_offset = input->doorbell_offset;
 
        /* Suspend gang is handled by master MES */
        return mes_v12_1_submit_pkt_and_poll_completion(mes, input->xcc_id, AMDGPU_MES_SCHED_PIPE,
@@ -504,6 +505,7 @@ static int mes_v12_1_resume_gang(struct amdgpu_mes *mes,
 
        mes_resume_gang_pkt.resume_all_gangs = input->resume_all_gangs;
        mes_resume_gang_pkt.gang_context_addr = input->gang_context_addr;
+       mes_resume_gang_pkt.doorbell_offset = input->doorbell_offset;
 
        /* Resume gang is handled by master MES */
        return mes_v12_1_submit_pkt_and_poll_completion(mes, input->xcc_id, AMDGPU_MES_SCHED_PIPE,