From c20c46cf7b44429f3f075f95eccc8c79bb1781fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 26 Dec 2024 06:09:50 -0500 Subject: [PATCH] ac: update ATOMIC_MEM definitions Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/amd/common/ac_sqtt.c | 2 +- src/amd/common/sid.h | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/amd/common/ac_sqtt.c b/src/amd/common/ac_sqtt.c index 83982ba2eca..4349c856d61 100644 --- a/src/amd/common/ac_sqtt.c +++ b/src/amd/common/ac_sqtt.c @@ -544,7 +544,7 @@ ac_sqtt_copy_info_regs(const struct radeon_info *info, struct ac_pm4_state *pm4, uint32_t init_wptr_value = shifted_data_va & 0x1fffffff; ac_pm4_cmd_add(pm4, PKT3(PKT3_ATOMIC_MEM, 7, 0)); - ac_pm4_cmd_add(pm4, ATOMIC_OP(TC_OP_ATOMIC_SUB_32)); + ac_pm4_cmd_add(pm4, ATOMIC_OP(TC_OP_ATOMIC_SUB_RTN_32)); ac_pm4_cmd_add(pm4, info_va); /* addr lo */ ac_pm4_cmd_add(pm4, info_va >> 32); /* addr hi */ ac_pm4_cmd_add(pm4, init_wptr_value); /* data lo */ diff --git a/src/amd/common/sid.h b/src/amd/common/sid.h index 62177e853e9..4249dfb9bef 100644 --- a/src/amd/common/sid.h +++ b/src/amd/common/sid.h @@ -45,11 +45,17 @@ #define PKT3_DISPATCH_INDIRECT 0x16 #define PKT3_ATOMIC_MEM 0x1E #define ATOMIC_OP(x) ((unsigned)((x)&0x7f) << 0) -#define TC_OP_ATOMIC_SUB_32 0x10 -#define TC_OP_ATOMIC_CMPSWAP_32 0x48 +#define TC_OP_ATOMIC_SUB_RTN_32 16 +#define TC_OP_ATOMIC_SUB_RTN_64 48 +#define TC_OP_ATOMIC_CMPSWAP_32 72 +#define TC_OP_ATOMIC_SUB_64 112 +#define TC_OP_ATOMIC_XOR_64 119 #define ATOMIC_COMMAND(x) ((unsigned)((x)&0x3) << 8) -#define ATOMIC_COMMAND_SINGLE_PASS 0x0 -#define ATOMIC_COMMAND_LOOP 0x1 +#define ATOMIC_COMMAND_SEND_RTN 0x0 /* only RTN opcodes */ +#define ATOMIC_COMMAND_LOOP 0x1 /* only RTN opcodes */ +#define ATOMIC_COMMAND_WR_CONFIRM 0x2 /* only non-RTN opcodes */ +#define ATOMIC_COMMAND_SEND_NO_RTN 0x3 /* only non-RTN opcodes */ +#define ATOMIC_ENGINE_PFP (1 << 30) #define PKT3_OCCLUSION_QUERY 0x1F /* GFX7+ */ #define PKT3_SET_PREDICATION 0x20 #define PREDICATION_DRAW_NOT_VISIBLE (0 << 8)