Il 27/08/25 13:37, Jason-JH Lin ha scritto:
Since shift_pa will be stored into the cmdq_mobx_priv of cmdq_pkt, all
the shif_pa parameters in CMDQ helper APIs can be removed.
Add cmdq_pkt_jump_rel_temp() for the current users of cmdq_pkt_jump_rel(),
and then remove shift_pa after all users have migrated to the new APIs.
Fixes: ade176534112 ("soc: mediatek: cmdq: Add parameter shift_pa to
cmdq_pkt_jump()")
Signed-off-by: Jason-JH Lin <[email protected]>
---
drivers/soc/mediatek/mtk-cmdq-helper.c | 6 ++++++
include/linux/soc/mediatek/mtk-cmdq.h | 9 +++++++++
2 files changed, 15 insertions(+)
diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c
b/drivers/soc/mediatek/mtk-cmdq-helper.c
index 8feeaa320359..4b1591e5b1ae 100644
--- a/drivers/soc/mediatek/mtk-cmdq-helper.c
+++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
@@ -515,6 +515,12 @@ int cmdq_pkt_jump_rel(struct cmdq_pkt *pkt, s32 offset, u8
shift_pa)
}
EXPORT_SYMBOL(cmdq_pkt_jump_rel);
+int cmdq_pkt_jump_rel_temp(struct cmdq_pkt *pkt, s32 offset, u8 shift_pa)
+{
+ return cmdq_pkt_jump_rel(pkt, offset, shift_pa);
+}
+EXPORT_SYMBOL(cmdq_pkt_jump_rel_temp);
+
int cmdq_pkt_eoc(struct cmdq_pkt *pkt)
{
struct cmdq_instruction inst = {
diff --git a/include/linux/soc/mediatek/mtk-cmdq.h
b/include/linux/soc/mediatek/mtk-cmdq.h
index 0c3906e8ad19..5e3a0e807980 100644
--- a/include/linux/soc/mediatek/mtk-cmdq.h
+++ b/include/linux/soc/mediatek/mtk-cmdq.h
@@ -377,6 +377,9 @@ static inline int cmdq_pkt_jump(struct cmdq_pkt *pkt,
dma_addr_t addr, u8 shift_
*/
int cmdq_pkt_jump_rel(struct cmdq_pkt *pkt, s32 offset, u8 shift_pa);
+/* This wrapper has to be removed after all users migrated to jump_rel */
+int cmdq_pkt_jump_rel_temp(struct cmdq_pkt *pkt, s32 offset, u8 shift_pa);
/**
* cmdq_pkt_jump_rel_v0() - Temporary wrapper for new CMDQ helper API
* @pkt: xyz (copy the descriptions from cmdq_pkt_jump_rel() here)
* @offset: whatever
* @shift_pa: [DEPRECATED] abc
*
* This function is a temporary wrapper that was introduced only for ease of
* migration of the many users of the CMDQ API located in multiple kernel
* subsystems.
*
* This has to be removed after all users are migrated to the newer CMDQ API.
*/
static inline int cmdq_pkt_jump_rel_v0(struct cmdq_pkt *pkt, s32 offset, u8
shift_pa)
{
return cmdq_pkt_jump_rel(pkt, offset, shift_pa);
}
...so you don't even need to add it in mtk-cmdq-helper.c: less files to care
about.
+
/**
* cmdq_pkt_eoc() - Append EOC and ask GCE to generate an IRQ at end of
execution
* @pkt: The CMDQ packet
@@ -506,6 +509,12 @@ static inline int cmdq_pkt_jump_rel(struct cmdq_pkt *pkt,
s32 offset, u8 shift_p
return -EINVAL;
}
+/* This wrapper has to be removed after all users migrated to jump_rel */
+static inline int cmdq_pkt_jump_rel_temp(struct cmdq_pkt *pkt, s32 offset, u8
shift_pa)
+{
+ return -EIMVAL;
+}
+
static inline int cmdq_pkt_eoc(struct cmdq_pkt *pkt)
{
return -EINVAL;