soc: mediatek: mtk-cmdq: Add specific purpose register definitions for GCE
authorJason-JH.Lin <jason-jh.lin@mediatek.com>
Thu, 7 Mar 2024 01:34:55 +0000 (09:34 +0800)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tue, 23 Apr 2024 10:16:55 +0000 (12:16 +0200)
Add specific purpose register definitions for GCE, so CMDQ users can
use them as a buffer to store data.

Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240307013458.23550-2-jason-jh.lin@mediatek.com
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
include/linux/soc/mediatek/mtk-cmdq.h

index e5335fb22a3b46a5434c6697edde5e3c0a09fbb9..042c61f29dc1b1cd85eec479be0f7cb31c3c5912 100644 (file)
 #define CMDQ_ADDR_HIGH(addr)   ((u32)(((addr) >> 16) & GENMASK(31, 0)))
 #define CMDQ_ADDR_LOW(addr)    ((u16)(addr) | BIT(1))
 
+/*
+ * Every cmdq thread has its own SPRs (Specific Purpose Registers),
+ * so there are 4 * N (threads) SPRs in GCE that shares the same indexes below.
+ */
+#define CMDQ_THR_SPR_IDX0      (0)
+#define CMDQ_THR_SPR_IDX1      (1)
+#define CMDQ_THR_SPR_IDX2      (2)
+#define CMDQ_THR_SPR_IDX3      (3)
+
 struct cmdq_pkt;
 
 struct cmdq_client_reg {