]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu/mes: add compatibility checks for set_hw_resource_1
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 20 May 2025 14:02:14 +0000 (10:02 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 24 Jun 2025 14:34:56 +0000 (10:34 -0400)
Seems some older MES firmware versions do not properly support
this packet.  Add back some the compatibility checks.

v2: switch to fw version check (Shaoyun)

Fixes: f81cd793119e ("drm/amd/amdgpu: Fix MES init sequence")
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4295
Cc: Shaoyun Liu <shaoyun.liu@amd.com>
Reviewed-by: shaoyun.liu <shaoyun.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 0180e0a5dd5c6ff118043ee42dbbbddaf881f283)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c

index c9eba537de0940ddf56d97544dca10b1392bdfeb..28eb846280dd406cb9d4f8a4b2c9ad4d05a39c4f 100644 (file)
@@ -1630,10 +1630,12 @@ static int mes_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
        if (r)
                goto failure;
 
-       r = mes_v11_0_set_hw_resources_1(&adev->mes);
-       if (r) {
-               DRM_ERROR("failed mes_v11_0_set_hw_resources_1, r=%d\n", r);
-               goto failure;
+       if ((adev->mes.sched_version & AMDGPU_MES_VERSION_MASK) >= 0x50) {
+               r = mes_v11_0_set_hw_resources_1(&adev->mes);
+               if (r) {
+                       DRM_ERROR("failed mes_v11_0_set_hw_resources_1, r=%d\n", r);
+                       goto failure;
+               }
        }
 
        r = mes_v11_0_query_sched_status(&adev->mes);
index b4f17332d46643e33b61e4e9558b5253feb66e9e..6b222630f3fa1d3b047122254f46bc31c06a3f3d 100644 (file)
@@ -1742,7 +1742,8 @@ static int mes_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
        if (r)
                goto failure;
 
-       mes_v12_0_set_hw_resources_1(&adev->mes, AMDGPU_MES_SCHED_PIPE);
+       if ((adev->mes.sched_version & AMDGPU_MES_VERSION_MASK) >= 0x4b)
+               mes_v12_0_set_hw_resources_1(&adev->mes, AMDGPU_MES_SCHED_PIPE);
 
        mes_v12_0_init_aggregated_doorbell(&adev->mes);