* [PATCH v2 0/3] Remove deprecated CMDQ APIs (series 4/4)
@ 2026-03-25 4:04 Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 1/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_jump() and cmdq_pkt_jump_rel_temp() Jason-JH Lin
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jason-JH Lin @ 2026-03-25 4:04 UTC (permalink / raw)
To: Jassi Brar, Chun-Kuang Hu, AngeloGioacchino Del Regno,
Nicolas Dufresne, Mauro Carvalho Chehab
Cc: Matthias Brugger, Jason-JH Lin, Nancy Lin, Singo Chang,
Paul-PL Chen, Moudy Ho, Xiandong Wang, Sirius Wang, Fei Shao,
Chen-yu Tsai, Project_Global_Chrome_Upstream_Group, linux-kernel,
dri-devel, linux-mediatek, linux-arm-kernel, linux-media
This series migrates the MediaTek SoC, DRM, and MDP3 drivers to the new
CMDQ APIs introduced for MT8196.
Series application order:
1. [Series V2 2/4] Migrate subsystems to new CMDQ APIs (this series)
- https://lore.kernel.org/all/20260325035836.2110757-1-jason-jh.lin@mediatek.com/
2. [Series V2 3/4] Remove shift_pa from CMDQ jump functions
- https://lore.kernel.org/all/20260325040239.2112517-1-jason-jh.lin@mediatek.com/
3. [Series V2 4/4] Remove deprecated CMDQ APIs
Please apply this series after the MT8196 GCE support series,
and before the following series.
---
Change in v2:
1. Rebase on linux-next 20260324
---
Jason-JH Lin (3):
soc: mediatek: mtk-cmdq: Remove cmdq_pkt_jump() and
cmdq_pkt_jump_rel_temp()
soc: mediatek: mtk-cmdq: Remove cmdq_pkt_write() and
cmdq_pkt_write_mask()
mailbox: mtk-cmdq: Remove unsued cmdq_get_shift_pa()
drivers/mailbox/mtk-cmdq-mailbox.c | 8 ---
drivers/soc/mediatek/mtk-cmdq-helper.c | 49 +++++++-----------
include/linux/mailbox/mtk-cmdq-mailbox.h | 12 -----
include/linux/soc/mediatek/mtk-cmdq.h | 65 ------------------------
4 files changed, 18 insertions(+), 116 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_jump() and cmdq_pkt_jump_rel_temp()
2026-03-25 4:04 [PATCH v2 0/3] Remove deprecated CMDQ APIs (series 4/4) Jason-JH Lin
@ 2026-03-25 4:04 ` Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 2/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_write() and cmdq_pkt_write_mask() Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 3/3] mailbox: mtk-cmdq: Remove unsued cmdq_get_shift_pa() Jason-JH Lin
2 siblings, 0 replies; 4+ messages in thread
From: Jason-JH Lin @ 2026-03-25 4:04 UTC (permalink / raw)
To: Jassi Brar, Chun-Kuang Hu, AngeloGioacchino Del Regno,
Nicolas Dufresne, Mauro Carvalho Chehab
Cc: Matthias Brugger, Jason-JH Lin, Nancy Lin, Singo Chang,
Paul-PL Chen, Moudy Ho, Xiandong Wang, Sirius Wang, Fei Shao,
Chen-yu Tsai, Project_Global_Chrome_Upstream_Group, linux-kernel,
dri-devel, linux-mediatek, linux-arm-kernel, linux-media
Since all users have migrated to the new cmdq_pkt_jump* APIs without
shift_pa, the wrapper APIs cmdq_pkt_jump() and cmdq_pkt_jump_rel_temp()
can be removed.
Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
include/linux/soc/mediatek/mtk-cmdq.h | 30 ---------------------------
1 file changed, 30 deletions(-)
diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h
index 3d0de1a9cac1..be67bee043ce 100644
--- a/include/linux/soc/mediatek/mtk-cmdq.h
+++ b/include/linux/soc/mediatek/mtk-cmdq.h
@@ -423,12 +423,6 @@ int cmdq_pkt_poll_addr(struct cmdq_pkt *pkt, dma_addr_t addr, u32 value, u32 mas
*/
int cmdq_pkt_jump_abs(struct cmdq_pkt *pkt, dma_addr_t addr);
-/* This wrapper has to be removed after all users migrated to jump_abs */
-static inline int cmdq_pkt_jump(struct cmdq_pkt *pkt, dma_addr_t addr)
-{
- return cmdq_pkt_jump_abs(pkt, addr);
-}
-
/**
* cmdq_pkt_jump_rel() - Append jump command to the CMDQ packet, ask GCE
* to execute an instruction that change current thread
@@ -441,24 +435,6 @@ static inline int cmdq_pkt_jump(struct cmdq_pkt *pkt, dma_addr_t addr)
*/
int cmdq_pkt_jump_rel(struct cmdq_pkt *pkt, s32 offset);
-/**
- * cmdq_pkt_jump_rel_temp() - Temporary wrapper for new CMDQ helper API
- * @pkt: the CMDQ packet
- * @offset: relative offset of target instruction buffer from current PC.
- * @shift_pa: [DEPRECATED] shift bits of physical address in CMDQ instruction.
- * This value is got by cmdq_get_shift_pa().
- *
- * 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_temp(struct cmdq_pkt *pkt, s32 offset, u8 shift_pa)
-{
- return cmdq_pkt_jump_rel(pkt, offset);
-}
-
/**
* cmdq_pkt_eoc() - Append EOC and ask GCE to generate an IRQ at end of execution
* @pkt: The CMDQ packet
@@ -613,12 +589,6 @@ static inline int cmdq_pkt_jump_rel(struct cmdq_pkt *pkt, s32 offset)
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 -EINVAL;
-}
-
static inline int cmdq_pkt_eoc(struct cmdq_pkt *pkt)
{
return -EINVAL;
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_write() and cmdq_pkt_write_mask()
2026-03-25 4:04 [PATCH v2 0/3] Remove deprecated CMDQ APIs (series 4/4) Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 1/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_jump() and cmdq_pkt_jump_rel_temp() Jason-JH Lin
@ 2026-03-25 4:04 ` Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 3/3] mailbox: mtk-cmdq: Remove unsued cmdq_get_shift_pa() Jason-JH Lin
2 siblings, 0 replies; 4+ messages in thread
From: Jason-JH Lin @ 2026-03-25 4:04 UTC (permalink / raw)
To: Jassi Brar, Chun-Kuang Hu, AngeloGioacchino Del Regno,
Nicolas Dufresne, Mauro Carvalho Chehab
Cc: Matthias Brugger, Jason-JH Lin, Nancy Lin, Singo Chang,
Paul-PL Chen, Moudy Ho, Xiandong Wang, Sirius Wang, Fei Shao,
Chen-yu Tsai, Project_Global_Chrome_Upstream_Group, linux-kernel,
dri-devel, linux-mediatek, linux-arm-kernel, linux-media
The original cmdq_pkt_write() and cmdq_pkt_write_mask() only supported
generating GCE instructions with subsys ID. They have been replaced by
cmdq_pkt_write_pa(), cmdq_pkt_write_subsys(), cmdq_pkt_write_mask_pa()
and cmdq_pkt_write_mask_subsys().
These 2 functions can now be removed as they are no longer in use.
Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/soc/mediatek/mtk-cmdq-helper.c | 49 ++++++++++----------------
include/linux/soc/mediatek/mtk-cmdq.h | 35 ------------------
2 files changed, 18 insertions(+), 66 deletions(-)
diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c
index 9cec6a096d8b..be5e6d80f4c0 100644
--- a/drivers/soc/mediatek/mtk-cmdq-helper.c
+++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
@@ -215,18 +215,6 @@ static int cmdq_pkt_mask(struct cmdq_pkt *pkt, u32 mask)
return cmdq_pkt_append_command(pkt, inst);
}
-int cmdq_pkt_write(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value)
-{
- struct cmdq_instruction inst = {
- .op = CMDQ_CODE_WRITE,
- .value = value,
- .offset = offset,
- .subsys = subsys
- };
- return cmdq_pkt_append_command(pkt, inst);
-}
-EXPORT_SYMBOL(cmdq_pkt_write);
-
int cmdq_pkt_write_pa(struct cmdq_pkt *pkt, u8 subsys /*unused*/, u32 pa_base,
u16 offset, u32 value)
{
@@ -243,27 +231,16 @@ EXPORT_SYMBOL(cmdq_pkt_write_pa);
int cmdq_pkt_write_subsys(struct cmdq_pkt *pkt, u8 subsys, u32 pa_base /*unused*/,
u16 offset, u32 value)
{
- return cmdq_pkt_write(pkt, subsys, offset, value);
+ struct cmdq_instruction inst = {
+ .op = CMDQ_CODE_WRITE,
+ .value = value,
+ .offset = offset,
+ .subsys = subsys
+ };
+ return cmdq_pkt_append_command(pkt, inst);
}
EXPORT_SYMBOL(cmdq_pkt_write_subsys);
-int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys,
- u16 offset, u32 value, u32 mask)
-{
- u16 offset_mask = offset;
- int err;
-
- if (mask != GENMASK(31, 0)) {
- err = cmdq_pkt_mask(pkt, mask);
- if (err < 0)
- return err;
-
- offset_mask |= CMDQ_WRITE_ENABLE_MASK;
- }
- return cmdq_pkt_write(pkt, subsys, offset_mask, value);
-}
-EXPORT_SYMBOL(cmdq_pkt_write_mask);
-
int cmdq_pkt_write_mask_pa(struct cmdq_pkt *pkt, u8 subsys /*unused*/, u32 pa_base,
u16 offset, u32 value, u32 mask)
{
@@ -281,7 +258,17 @@ EXPORT_SYMBOL(cmdq_pkt_write_mask_pa);
int cmdq_pkt_write_mask_subsys(struct cmdq_pkt *pkt, u8 subsys, u32 pa_base /*unused*/,
u16 offset, u32 value, u32 mask)
{
- return cmdq_pkt_write_mask(pkt, subsys, offset, value, mask);
+ u16 offset_mask = offset;
+ int err;
+
+ if (mask != GENMASK(31, 0)) {
+ err = cmdq_pkt_mask(pkt, mask);
+ if (err < 0)
+ return err;
+
+ offset_mask |= CMDQ_WRITE_ENABLE_MASK;
+ }
+ return cmdq_pkt_write_subsys(pkt, subsys, pa_base, offset_mask, value);
}
EXPORT_SYMBOL(cmdq_pkt_write_mask_subsys);
diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h
index be67bee043ce..0e8fb4743d18 100644
--- a/include/linux/soc/mediatek/mtk-cmdq.h
+++ b/include/linux/soc/mediatek/mtk-cmdq.h
@@ -124,17 +124,6 @@ int cmdq_pkt_create(struct cmdq_client *client, struct cmdq_pkt *pkt, size_t siz
*/
void cmdq_pkt_destroy(struct cmdq_client *client, struct cmdq_pkt *pkt);
-/**
- * cmdq_pkt_write() - append write command to the CMDQ packet
- * @pkt: the CMDQ packet
- * @subsys: the CMDQ sub system code
- * @offset: register offset from CMDQ sub system
- * @value: the specified target register value
- *
- * Return: 0 for success; else the error code is returned
- */
-int cmdq_pkt_write(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value);
-
/**
* cmdq_pkt_write_pa() - append write command to the CMDQ packet with pa_base
* @pkt: the CMDQ packet
@@ -161,19 +150,6 @@ int cmdq_pkt_write_pa(struct cmdq_pkt *pkt, u8 subsys /*unused*/,
int cmdq_pkt_write_subsys(struct cmdq_pkt *pkt, u8 subsys,
u32 pa_base /*unused*/, u16 offset, u32 value);
-/**
- * cmdq_pkt_write_mask() - append write command with mask to the CMDQ packet
- * @pkt: the CMDQ packet
- * @subsys: the CMDQ sub system code
- * @offset: register offset from CMDQ sub system
- * @value: the specified target register value
- * @mask: the specified target register mask
- *
- * Return: 0 for success; else the error code is returned
- */
-int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys,
- u16 offset, u32 value, u32 mask);
-
/**
* cmdq_pkt_write_mask_pa() - append write command with mask to the CMDQ packet with pa
* @pkt: the CMDQ packet
@@ -471,11 +447,6 @@ static inline int cmdq_pkt_create(struct cmdq_client *client, struct cmdq_pkt *p
static inline void cmdq_pkt_destroy(struct cmdq_client *client, struct cmdq_pkt *pkt) { }
-static inline int cmdq_pkt_write(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value)
-{
- return -ENOENT;
-}
-
static inline int cmdq_pkt_write_pa(struct cmdq_pkt *pkt, u8 subsys /*unused*/,
u32 pa_base, u16 offset, u32 value)
{
@@ -488,12 +459,6 @@ static inline int cmdq_pkt_write_subsys(struct cmdq_pkt *pkt, u8 subsys,
return -ENOENT;
}
-static inline int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys,
- u16 offset, u32 value, u32 mask)
-{
- return -ENOENT;
-}
-
static inline int cmdq_pkt_write_mask_pa(struct cmdq_pkt *pkt, u8 subsys /*unused*/,
u32 pa_base, u16 offset, u32 value, u32 mask)
{
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 3/3] mailbox: mtk-cmdq: Remove unsued cmdq_get_shift_pa()
2026-03-25 4:04 [PATCH v2 0/3] Remove deprecated CMDQ APIs (series 4/4) Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 1/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_jump() and cmdq_pkt_jump_rel_temp() Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 2/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_write() and cmdq_pkt_write_mask() Jason-JH Lin
@ 2026-03-25 4:04 ` Jason-JH Lin
2 siblings, 0 replies; 4+ messages in thread
From: Jason-JH Lin @ 2026-03-25 4:04 UTC (permalink / raw)
To: Jassi Brar, Chun-Kuang Hu, AngeloGioacchino Del Regno,
Nicolas Dufresne, Mauro Carvalho Chehab
Cc: Matthias Brugger, Jason-JH Lin, Nancy Lin, Singo Chang,
Paul-PL Chen, Moudy Ho, Xiandong Wang, Sirius Wang, Fei Shao,
Chen-yu Tsai, Project_Global_Chrome_Upstream_Group, linux-kernel,
dri-devel, linux-mediatek, linux-arm-kernel, linux-media
Since the mailbox driver data can be obtained using cmdq_get_mbox_priv()
and all CMDQ users have transitioned to cmdq_get_mbox_priv(),
cmdq_get_shift_pa() can be removed.
Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
drivers/mailbox/mtk-cmdq-mailbox.c | 8 --------
include/linux/mailbox/mtk-cmdq-mailbox.h | 12 ------------
2 files changed, 20 deletions(-)
diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c
index d7c6b38888a3..f463f443e834 100644
--- a/drivers/mailbox/mtk-cmdq-mailbox.c
+++ b/drivers/mailbox/mtk-cmdq-mailbox.c
@@ -123,14 +123,6 @@ void cmdq_get_mbox_priv(struct mbox_chan *chan, struct cmdq_mbox_priv *priv)
}
EXPORT_SYMBOL(cmdq_get_mbox_priv);
-u8 cmdq_get_shift_pa(struct mbox_chan *chan)
-{
- struct cmdq *cmdq = container_of(chan->mbox, struct cmdq, mbox);
-
- return cmdq->pdata->shift;
-}
-EXPORT_SYMBOL(cmdq_get_shift_pa);
-
static void cmdq_vm_init(struct cmdq *cmdq)
{
int i;
diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h b/include/linux/mailbox/mtk-cmdq-mailbox.h
index 07c1bfbdb8c4..a42b44d5fd49 100644
--- a/include/linux/mailbox/mtk-cmdq-mailbox.h
+++ b/include/linux/mailbox/mtk-cmdq-mailbox.h
@@ -96,16 +96,4 @@ struct cmdq_pkt {
*/
void cmdq_get_mbox_priv(struct mbox_chan *chan, struct cmdq_mbox_priv *priv);
-/**
- * cmdq_get_shift_pa() - get the shift bits of physical address
- * @chan: mailbox channel
- *
- * GCE can only fetch the command buffer address from a 32-bit register.
- * Some SOCs support more than 32-bit command buffer address for GCE, which
- * requires some shift bits to make the address fit into the 32-bit register.
- *
- * Return: the shift bits of physical address
- */
-u8 cmdq_get_shift_pa(struct mbox_chan *chan);
-
#endif /* __MTK_CMDQ_MAILBOX_H__ */
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-03-25 4:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-25 4:04 [PATCH v2 0/3] Remove deprecated CMDQ APIs (series 4/4) Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 1/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_jump() and cmdq_pkt_jump_rel_temp() Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 2/3] soc: mediatek: mtk-cmdq: Remove cmdq_pkt_write() and cmdq_pkt_write_mask() Jason-JH Lin
2026-03-25 4:04 ` [PATCH v2 3/3] mailbox: mtk-cmdq: Remove unsued cmdq_get_shift_pa() Jason-JH Lin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox