On Mon, Nov 17, 2025 at 12:42 AM Yifan Zha <[email protected]> wrote:
>
> [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 <[email protected]>

Acked-by: Alex Deucher <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c 
> b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> index 02d7cfae22bd..8a2ee2de390f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
> @@ -5874,9 +5874,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);
> --
> 2.43.0
>

Reply via email to