]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Skip emit de meta data on gfx11 with rs64 enabled
authorYifan Zha <Yifan.Zha@amd.com>
Fri, 14 Nov 2025 09:48:58 +0000 (17:48 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 19 Nov 2025 23:08:37 +0000 (18:08 -0500)
[Why]
Accoreding to CP updated to RS64 on gfx11,
WRITE_DATA with PREEMPTION_META_MEMORY(dst_sel=8) is illegal for CP FW.
That packet is used for MCBP on F32 based system.
So it would lead to incorrect GRBM write and FW is not handling that
extra case correctly.

[How]
With gfx11 rs64 enabled, skip emit de meta data.

Signed-off-by: Yifan Zha <Yifan.Zha@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 8366cd442d226463e673bed5d199df916f4ecbcf)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c

index d61eb9f187c649c21f594f7bead9656cdb8c77e5..f2be16e700c41afc9c3268b6f299787c4683a84f 100644 (file)
@@ -5872,9 +5872,9 @@ static void gfx_v11_0_ring_emit_ib_gfx(struct amdgpu_ring *ring,
                if (flags & AMDGPU_IB_PREEMPTED)
                        control |= INDIRECT_BUFFER_PRE_RESUME(1);
 
-               if (vmid)
+               if (vmid && !ring->adev->gfx.rs64_enable)
                        gfx_v11_0_ring_emit_de_meta(ring,
-                                   (!amdgpu_sriov_vf(ring->adev) && flags & AMDGPU_IB_PREEMPTED) ? true : false);
+                               !amdgpu_sriov_vf(ring->adev) && (flags & AMDGPU_IB_PREEMPTED));
        }
 
        amdgpu_ring_write(ring, header);