2023-06-26 04:26:38

by Yunfei Dong

[permalink] [raw]
Subject: [PATCH v4,11/11] media: mediatek: vcodec: separete decoder and encoder

Move all decoder files to folder video-decoder.
Move all encoder files to folder video-encoder.
Move common files which shared for encoder and decoder to folder video-common.

Change include header files and Makefile to fix build error.

Signed-off-by: Yunfei Dong <[email protected]>
---
.../media/platform/mediatek/vcodec/Makefile | 55 +------------------
.../platform/mediatek/vcodec/common/Makefile | 21 +++++++
.../vcodec/{ => common}/mtk_vcodec_com_drv.h | 0
.../vcodec/{ => common}/mtk_vcodec_dbgfs.c | 4 +-
.../vcodec/{ => common}/mtk_vcodec_dbgfs.h | 0
.../vcodec/{ => common}/mtk_vcodec_fw.c | 4 +-
.../vcodec/{ => common}/mtk_vcodec_fw.h | 2 +-
.../vcodec/{ => common}/mtk_vcodec_fw_priv.h | 0
.../vcodec/{ => common}/mtk_vcodec_fw_scp.c | 4 +-
.../vcodec/{ => common}/mtk_vcodec_fw_vpu.c | 4 +-
.../vcodec/{ => common}/mtk_vcodec_intr.c | 4 +-
.../vcodec/{ => common}/mtk_vcodec_intr.h | 0
.../vcodec/{ => common}/mtk_vcodec_util.c | 6 +-
.../vcodec/{ => common}/mtk_vcodec_util.h | 22 --------
.../platform/mediatek/vcodec/decoder/Makefile | 25 +++++++++
.../vcodec/{ => decoder}/mtk_vcodec_dec.c | 0
.../vcodec/{ => decoder}/mtk_vcodec_dec.h | 0
.../vcodec/{ => decoder}/mtk_vcodec_dec_drv.c | 2 +-
.../vcodec/{ => decoder}/mtk_vcodec_dec_drv.h | 19 +++++--
.../vcodec/{ => decoder}/mtk_vcodec_dec_hw.c | 2 +-
.../vcodec/{ => decoder}/mtk_vcodec_dec_hw.h | 0
.../vcodec/{ => decoder}/mtk_vcodec_dec_pm.c | 0
.../vcodec/{ => decoder}/mtk_vcodec_dec_pm.h | 0
.../{ => decoder}/mtk_vcodec_dec_stateful.c | 0
.../{ => decoder}/mtk_vcodec_dec_stateless.c | 0
.../{ => decoder}/vdec/vdec_av1_req_lat_if.c | 2 +-
.../vcodec/{ => decoder}/vdec/vdec_h264_if.c | 2 +-
.../{ => decoder}/vdec/vdec_h264_req_common.c | 0
.../{ => decoder}/vdec/vdec_h264_req_common.h | 0
.../{ => decoder}/vdec/vdec_h264_req_if.c | 2 +-
.../vdec/vdec_h264_req_multi_if.c | 2 +-
.../vdec/vdec_hevc_req_multi_if.c | 2 +-
.../vcodec/{ => decoder}/vdec/vdec_vp8_if.c | 2 +-
.../{ => decoder}/vdec/vdec_vp8_req_if.c | 2 +-
.../vcodec/{ => decoder}/vdec/vdec_vp9_if.c | 2 +-
.../{ => decoder}/vdec/vdec_vp9_req_lat_if.c | 2 +-
.../vcodec/{ => decoder}/vdec_drv_base.h | 0
.../vcodec/{ => decoder}/vdec_drv_if.c | 0
.../vcodec/{ => decoder}/vdec_drv_if.h | 0
.../vcodec/{ => decoder}/vdec_ipi_msg.h | 0
.../vcodec/{ => decoder}/vdec_msg_queue.c | 0
.../vcodec/{ => decoder}/vdec_msg_queue.h | 0
.../vcodec/{ => decoder}/vdec_vpu_if.c | 0
.../vcodec/{ => decoder}/vdec_vpu_if.h | 0
.../platform/mediatek/vcodec/encoder/Makefile | 11 ++++
.../vcodec/{ => encoder}/mtk_vcodec_enc.c | 0
.../vcodec/{ => encoder}/mtk_vcodec_enc.h | 0
.../vcodec/{ => encoder}/mtk_vcodec_enc_drv.c | 2 +-
.../vcodec/{ => encoder}/mtk_vcodec_enc_drv.h | 19 +++++--
.../vcodec/{ => encoder}/mtk_vcodec_enc_pm.c | 0
.../vcodec/{ => encoder}/mtk_vcodec_enc_pm.h | 0
.../vcodec/{ => encoder}/venc/venc_h264_if.c | 2 +-
.../vcodec/{ => encoder}/venc/venc_vp8_if.c | 2 +-
.../vcodec/{ => encoder}/venc_drv_base.h | 0
.../vcodec/{ => encoder}/venc_drv_if.c | 0
.../vcodec/{ => encoder}/venc_drv_if.h | 0
.../vcodec/{ => encoder}/venc_ipi_msg.h | 0
.../vcodec/{ => encoder}/venc_vpu_if.c | 0
.../vcodec/{ => encoder}/venc_vpu_if.h | 0
59 files changed, 118 insertions(+), 110 deletions(-)
create mode 100644 drivers/media/platform/mediatek/vcodec/common/Makefile
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_com_drv.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_dbgfs.c (98%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_dbgfs.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw.c (95%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw.h (97%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_priv.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_scp.c (96%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_vpu.c (97%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_intr.c (95%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_intr.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_util.c (96%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_util.h (71%)
create mode 100644 drivers/media/platform/mediatek/vcodec/decoder/Makefile
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_drv.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_drv.h (93%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_hw.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_hw.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_pm.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_pm.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_stateful.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_stateless.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_av1_req_lat_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_common.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_common.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_multi_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_hevc_req_multi_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp8_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp8_req_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp9_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp9_req_lat_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_base.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_if.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_if.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_ipi_msg.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_msg_queue.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_msg_queue.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_vpu_if.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_vpu_if.h (100%)
create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/Makefile
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_drv.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_drv.h (91%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_pm.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_pm.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc/venc_h264_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc/venc_vp8_if.c (99%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_base.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_if.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_if.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_ipi_msg.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_vpu_if.c (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_vpu_if.h (100%)

diff --git a/drivers/media/platform/mediatek/vcodec/Makefile b/drivers/media/platform/mediatek/vcodec/Makefile
index 5f4c30fec85a..014abbfbd993 100644
--- a/drivers/media/platform/mediatek/vcodec/Makefile
+++ b/drivers/media/platform/mediatek/vcodec/Makefile
@@ -1,54 +1,5 @@
# SPDX-License-Identifier: GPL-2.0

-obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dec.o \
- mtk-vcodec-enc.o \
- mtk-vcodec-common.o \
- mtk-vcodec-dec-hw.o
-
-mtk-vcodec-dec-y := vdec/vdec_h264_if.o \
- vdec/vdec_vp8_if.o \
- vdec/vdec_vp8_req_if.o \
- vdec/vdec_vp9_if.o \
- vdec/vdec_vp9_req_lat_if.o \
- vdec/vdec_av1_req_lat_if.o \
- vdec/vdec_h264_req_if.o \
- vdec/vdec_h264_req_common.o \
- vdec/vdec_h264_req_multi_if.o \
- vdec/vdec_hevc_req_multi_if.o \
- mtk_vcodec_dec_drv.o \
- vdec_drv_if.o \
- vdec_vpu_if.o \
- vdec_msg_queue.o \
- mtk_vcodec_dec.o \
- mtk_vcodec_dec_stateful.o \
- mtk_vcodec_dec_stateless.o \
- mtk_vcodec_dec_pm.o \
-
-mtk-vcodec-dec-hw-y := mtk_vcodec_dec_hw.o
-
-mtk-vcodec-enc-y := venc/venc_vp8_if.o \
- venc/venc_h264_if.o \
- mtk_vcodec_enc.o \
- mtk_vcodec_enc_drv.o \
- mtk_vcodec_enc_pm.o \
- venc_drv_if.o \
- venc_vpu_if.o \
-
-
-mtk-vcodec-common-y := mtk_vcodec_intr.o \
- mtk_vcodec_util.o \
- mtk_vcodec_fw.o \
-
-ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_VPU),)
-mtk-vcodec-common-y += mtk_vcodec_fw_vpu.o
-endif
-
-ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_SCP),)
-mtk-vcodec-common-y += mtk_vcodec_fw_scp.o
-endif
-
-ifneq ($(CONFIG_DEBUG_FS),)
-obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dbgfs.o
-
-mtk-vcodec-dbgfs-y := mtk_vcodec_dbgfs.o
-endif
\ No newline at end of file
+obj-y += common/
+obj-y += encoder/
+obj-y += decoder/
diff --git a/drivers/media/platform/mediatek/vcodec/common/Makefile b/drivers/media/platform/mediatek/vcodec/common/Makefile
new file mode 100644
index 000000000000..d0479914dfb3
--- /dev/null
+++ b/drivers/media/platform/mediatek/vcodec/common/Makefile
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-common.o
+
+mtk-vcodec-common-y := mtk_vcodec_intr.o \
+ mtk_vcodec_util.o \
+ mtk_vcodec_fw.o \
+
+ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_VPU),)
+mtk-vcodec-common-y += mtk_vcodec_fw_vpu.o
+endif
+
+ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_SCP),)
+mtk-vcodec-common-y += mtk_vcodec_fw_scp.o
+endif
+
+ifneq ($(CONFIG_DEBUG_FS),)
+obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dbgfs.o
+
+mtk-vcodec-dbgfs-y := mtk_vcodec_dbgfs.o
+endif
\ No newline at end of file
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_com_drv.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_com_drv.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_com_drv.h
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_com_drv.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
similarity index 98%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.c
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
index c6a02b33cc74..54d5accf87d2 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
@@ -7,8 +7,8 @@
#include <linux/debugfs.h>

#include "mtk_vcodec_dbgfs.h"
-#include "mtk_vcodec_dec_drv.h"
-#include "mtk_vcodec_enc_drv.h"
+#include "../decoder/mtk_vcodec_dec_drv.h"
+#include "../encoder/mtk_vcodec_enc_drv.h"
#include "mtk_vcodec_util.h"

static void mtk_vdec_dbgfs_get_format_type(struct mtk_vcodec_dec_ctx *ctx, char *buf,
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.h
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.c
similarity index 95%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.c
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.c
index e59ce7c78742..5f3b1375c829 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0

-#include "mtk_vcodec_dec_drv.h"
-#include "mtk_vcodec_enc_drv.h"
+#include "../decoder/mtk_vcodec_dec_drv.h"
+#include "../encoder/mtk_vcodec_enc_drv.h"
#include "mtk_vcodec_fw_priv.h"

struct mtk_vcodec_fw *mtk_vcodec_fw_select(void *priv, enum mtk_vcodec_fw_type type,
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.h
similarity index 97%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.h
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.h
index 83479ab70385..300363a40158 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.h
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.h
@@ -6,7 +6,7 @@
#include <linux/remoteproc.h>
#include <linux/remoteproc/mtk_scp.h>

-#include "../vpu/mtk_vpu.h"
+#include "../../vpu/mtk_vpu.h"

struct mtk_vcodec_dec_dev;
struct mtk_vcodec_enc_dev;
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_priv.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_priv.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_priv.h
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_priv.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
similarity index 96%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
index 3cb5a5befd24..9e744d07a1e8 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0

-#include "mtk_vcodec_dec_drv.h"
-#include "mtk_vcodec_enc_drv.h"
+#include "../decoder/mtk_vcodec_dec_drv.h"
+#include "../encoder/mtk_vcodec_enc_drv.h"
#include "mtk_vcodec_fw_priv.h"

static int mtk_vcodec_scp_load_firmware(struct mtk_vcodec_fw *fw)
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_vpu.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c
similarity index 97%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_vpu.c
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c
index 18274a51a8f8..5e03b0886559 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_vpu.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0

-#include "mtk_vcodec_dec_drv.h"
-#include "mtk_vcodec_enc_drv.h"
+#include "../decoder/mtk_vcodec_dec_drv.h"
+#include "../encoder/mtk_vcodec_enc_drv.h"
#include "mtk_vcodec_fw_priv.h"

static int mtk_vcodec_vpu_load_firmware(struct mtk_vcodec_fw *fw)
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
similarity index 95%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
index 69dae0336a14..934fad0f0f5d 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
@@ -7,8 +7,8 @@
#include <linux/errno.h>
#include <linux/wait.h>

-#include "mtk_vcodec_dec_drv.h"
-#include "mtk_vcodec_enc_drv.h"
+#include "../decoder/mtk_vcodec_dec_drv.h"
+#include "../encoder/mtk_vcodec_enc_drv.h"
#include "mtk_vcodec_intr.h"

int mtk_vcodec_wait_for_done_ctx(void *priv, int command, unsigned int timeout_ms,
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.h
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.c
similarity index 96%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.c
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.c
index 18f632eb0b8a..5ab812885fac 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.c
@@ -9,9 +9,9 @@
#include <linux/of.h>
#include <linux/of_device.h>

-#include "mtk_vcodec_dec_drv.h"
-#include "mtk_vcodec_enc_drv.h"
-#include "mtk_vcodec_dec_hw.h"
+#include "../decoder/mtk_vcodec_dec_drv.h"
+#include "../encoder/mtk_vcodec_enc_drv.h"
+#include "../decoder/mtk_vcodec_dec_hw.h"

#if defined(CONFIG_DEBUG_FS)
int mtk_vcodec_dbg;
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
similarity index 71%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h
rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
index 6c24bb8b1715..2bb3fd0b9d11 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
@@ -58,28 +58,6 @@ extern int mtk_vcodec_dbg;
dev_dbg(&(plat_dev)->dev, "[MTK_VCODEC][%d]: " fmt "\n", inst_id, ##args)
#endif

-#define mtk_vdec_err(ctx, fmt, args...) \
- mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
-
-#define mtk_vdec_debug(ctx, fmt, args...) \
- mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
-
-#define mtk_venc_err(ctx, fmt, args...) \
- mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
-
-#define mtk_venc_debug(ctx, fmt, args...) \
- mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
-
-#define mtk_v4l2_vdec_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
-
-#define mtk_v4l2_vdec_dbg(level, ctx, fmt, args...) \
- mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
-
-#define mtk_v4l2_venc_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
-
-#define mtk_v4l2_venc_dbg(level, ctx, fmt, args...) \
- mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
-
void __iomem *mtk_vcodec_get_reg_addr(void __iomem **reg_base, unsigned int reg_idx);
int mtk_vcodec_mem_alloc(void *priv, struct mtk_vcodec_mem *mem);
void mtk_vcodec_mem_free(void *priv, struct mtk_vcodec_mem *mem);
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/Makefile b/drivers/media/platform/mediatek/vcodec/decoder/Makefile
new file mode 100644
index 000000000000..904cd22def84
--- /dev/null
+++ b/drivers/media/platform/mediatek/vcodec/decoder/Makefile
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dec.o \
+ mtk-vcodec-dec-hw.o
+
+mtk-vcodec-dec-y := vdec/vdec_h264_if.o \
+ vdec/vdec_vp8_if.o \
+ vdec/vdec_vp8_req_if.o \
+ vdec/vdec_vp9_if.o \
+ vdec/vdec_vp9_req_lat_if.o \
+ vdec/vdec_av1_req_lat_if.o \
+ vdec/vdec_h264_req_if.o \
+ vdec/vdec_h264_req_common.o \
+ vdec/vdec_h264_req_multi_if.o \
+ vdec/vdec_hevc_req_multi_if.o \
+ mtk_vcodec_dec_drv.o \
+ vdec_drv_if.o \
+ vdec_vpu_if.o \
+ vdec_msg_queue.o \
+ mtk_vcodec_dec.o \
+ mtk_vcodec_dec_stateful.o \
+ mtk_vcodec_dec_stateless.o \
+ mtk_vcodec_dec_pm.o \
+
+mtk-vcodec-dec-hw-y := mtk_vcodec_dec_hw.o
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.h
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
index 36970113d069..6ee319762418 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
@@ -20,7 +20,7 @@
#include "mtk_vcodec_dec.h"
#include "mtk_vcodec_dec_hw.h"
#include "mtk_vcodec_dec_pm.h"
-#include "mtk_vcodec_intr.h"
+#include "../common/mtk_vcodec_intr.h"

static int mtk_vcodec_get_hw_count(struct mtk_vcodec_dec_ctx *ctx, struct mtk_vcodec_dec_dev *dev)
{
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
similarity index 93%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.h
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
index 1a0375dd5b6d..db29f3437b6e 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.h
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
@@ -7,10 +7,10 @@
#ifndef _MTK_VCODEC_DEC_DRV_H_
#define _MTK_VCODEC_DEC_DRV_H_

-#include "mtk_vcodec_com_drv.h"
-#include "mtk_vcodec_dbgfs.h"
-#include "mtk_vcodec_fw_priv.h"
-#include "mtk_vcodec_util.h"
+#include "../common/mtk_vcodec_com_drv.h"
+#include "../common/mtk_vcodec_dbgfs.h"
+#include "../common/mtk_vcodec_fw_priv.h"
+#include "../common/mtk_vcodec_util.h"
#include "vdec_msg_queue.h"

#define MTK_VCODEC_DEC_NAME "mtk-vcodec-dec"
@@ -303,4 +303,15 @@ wake_up_dec_ctx(struct mtk_vcodec_dec_ctx *ctx, unsigned int reason, unsigned in
wake_up_interruptible(&ctx->queue[hw_id]);
}

+#define mtk_vdec_err(ctx, fmt, args...) \
+ mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
+
+#define mtk_vdec_debug(ctx, fmt, args...) \
+ mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
+
+#define mtk_v4l2_vdec_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
+
+#define mtk_v4l2_vdec_dbg(level, ctx, fmt, args...) \
+ mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
+
#endif /* _MTK_VCODEC_DEC_DRV_H_ */
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.c
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.c
index fa02fcf4e8c2..4f05a179970c 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.c
@@ -15,7 +15,7 @@
#include "mtk_vcodec_dec.h"
#include "mtk_vcodec_dec_hw.h"
#include "mtk_vcodec_dec_pm.h"
-#include "mtk_vcodec_intr.h"
+#include "../common/mtk_vcodec_intr.h"

static const struct of_device_id mtk_vdec_hw_match[] = {
{
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.h
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.c
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.c
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.h
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateful.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateful.c
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c
rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_av1_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_av1_req_lat_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
index d272fef36cd1..81f9e0c1540c 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_av1_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
@@ -9,7 +9,7 @@
#include <media/videobuf2-dma-contig.h>

#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_drv_if.h"
#include "../vdec_vpu_if.h"
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
index a8175f977ed2..bf7dffe60d07 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
@@ -9,7 +9,7 @@

#include "../vdec_drv_if.h"
#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_vpu_if.h"
#include "../vdec_drv_base.h"

diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.c
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.h
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.h
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
index 4c5ef35199a1..5600f1df653d 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
@@ -7,7 +7,7 @@
#include <media/videobuf2-dma-contig.h>

#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_drv_if.h"
#include "../vdec_vpu_if.h"
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
index 0f9f7b56882f..0e741e0dc8ba 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
@@ -11,7 +11,7 @@
#include <media/videobuf2-dma-contig.h>

#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_drv_if.h"
#include "../vdec_vpu_if.h"
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_hevc_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_hevc_req_multi_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
index 2682f40d1361..06ed47df693b 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_hevc_req_multi_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
@@ -9,7 +9,7 @@
#include <media/videobuf2-dma-contig.h>

#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_drv_if.h"
#include "../vdec_vpu_if.h"
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
index ceddcfd9135b..d82205a1d8d0 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
@@ -8,7 +8,7 @@
#include <linux/slab.h>
#include "../vdec_drv_if.h"
#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_vpu_if.h"
#include "../vdec_drv_base.h"

diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
index c85c849d2548..f64b21c07169 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
@@ -10,7 +10,7 @@
#include <uapi/linux/v4l2-controls.h>

#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_drv_if.h"
#include "../vdec_vpu_if.h"
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
index d3493d36329d..5780052d9b38 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
@@ -12,7 +12,7 @@
#include <linux/delay.h>
#include <linux/time.h>

-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_vpu_if.h"

diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
index 3e9458470484..e393e3e668f8 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
@@ -10,7 +10,7 @@
#include <media/v4l2-vp9.h>

#include "../mtk_vcodec_dec.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../vdec_drv_base.h"
#include "../vdec_drv_if.h"
#include "../vdec_vpu_if.h"
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_drv_base.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_base.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_drv_base.h
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_base.h
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_drv_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_drv_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.c
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_drv_if.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_drv_if.h
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.h
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_ipi_msg.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_ipi_msg.h
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.c
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.h
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/vdec_vpu_if.h
rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.h
diff --git a/drivers/media/platform/mediatek/vcodec/encoder/Makefile b/drivers/media/platform/mediatek/vcodec/encoder/Makefile
new file mode 100644
index 000000000000..e621b5b7e5e6
--- /dev/null
+++ b/drivers/media/platform/mediatek/vcodec/encoder/Makefile
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-enc.o
+
+mtk-vcodec-enc-y := venc/venc_vp8_if.o \
+ venc/venc_h264_if.o \
+ mtk_vcodec_enc.o \
+ mtk_vcodec_enc_drv.o \
+ mtk_vcodec_enc_pm.o \
+ venc_drv_if.o \
+ venc_vpu_if.o \
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.h
rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.h
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
index f1b4d5e8cd49..5db2bf3db4c5 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
@@ -18,7 +18,7 @@

#include "mtk_vcodec_enc.h"
#include "mtk_vcodec_enc_pm.h"
-#include "mtk_vcodec_intr.h"
+#include "../common/mtk_vcodec_intr.h"

static const struct mtk_video_fmt mtk_video_formats_output[] = {
{
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
similarity index 91%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.h
rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
index 4804d8531a4e..5f3484fb9193 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.h
+++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
@@ -7,10 +7,10 @@
#ifndef _MTK_VCODEC_ENC_DRV_H_
#define _MTK_VCODEC_ENC_DRV_H_

-#include "mtk_vcodec_com_drv.h"
-#include "mtk_vcodec_dbgfs.h"
-#include "mtk_vcodec_fw_priv.h"
-#include "mtk_vcodec_util.h"
+#include "../common/mtk_vcodec_com_drv.h"
+#include "../common/mtk_vcodec_dbgfs.h"
+#include "../common/mtk_vcodec_fw_priv.h"
+#include "../common/mtk_vcodec_util.h"

#define MTK_VCODEC_ENC_NAME "mtk-vcodec-enc"

@@ -242,4 +242,15 @@ wake_up_enc_ctx(struct mtk_vcodec_enc_ctx *ctx, unsigned int reason, unsigned in
wake_up_interruptible(&ctx->queue[hw_id]);
}

+#define mtk_venc_err(ctx, fmt, args...) \
+ mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
+
+#define mtk_venc_debug(ctx, fmt, args...) \
+ mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
+
+#define mtk_v4l2_venc_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
+
+#define mtk_v4l2_venc_dbg(level, ctx, fmt, args...) \
+ mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
+
#endif /* _MTK_VCODEC_ENC_DRV_H_ */
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.c
rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.c
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.h
rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.h
diff --git a/drivers/media/platform/mediatek/vcodec/venc/venc_h264_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/venc/venc_h264_if.c
rename to drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
index 9127bceb0db4..a68dac72c4e4 100644
--- a/drivers/media/platform/mediatek/vcodec/venc/venc_h264_if.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
@@ -11,7 +11,7 @@
#include <linux/slab.h>

#include "../mtk_vcodec_enc_drv.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../mtk_vcodec_enc.h"
#include "../mtk_vcodec_enc_pm.h"
#include "../venc_drv_base.h"
diff --git a/drivers/media/platform/mediatek/vcodec/venc/venc_vp8_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
similarity index 99%
rename from drivers/media/platform/mediatek/vcodec/venc/venc_vp8_if.c
rename to drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
index 510f3b042670..05abca91e742 100644
--- a/drivers/media/platform/mediatek/vcodec/venc/venc_vp8_if.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
@@ -10,7 +10,7 @@
#include <linux/slab.h>

#include "../mtk_vcodec_enc_drv.h"
-#include "../mtk_vcodec_intr.h"
+#include "../../common/mtk_vcodec_intr.h"
#include "../mtk_vcodec_enc.h"
#include "../mtk_vcodec_enc_pm.h"
#include "../venc_drv_base.h"
diff --git a/drivers/media/platform/mediatek/vcodec/venc_drv_base.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_drv_base.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/venc_drv_base.h
rename to drivers/media/platform/mediatek/vcodec/encoder/venc_drv_base.h
diff --git a/drivers/media/platform/mediatek/vcodec/venc_drv_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/venc_drv_if.c
rename to drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.c
diff --git a/drivers/media/platform/mediatek/vcodec/venc_drv_if.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/venc_drv_if.h
rename to drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.h
diff --git a/drivers/media/platform/mediatek/vcodec/venc_ipi_msg.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/venc_ipi_msg.h
rename to drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h
diff --git a/drivers/media/platform/mediatek/vcodec/venc_vpu_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/venc_vpu_if.c
rename to drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c
diff --git a/drivers/media/platform/mediatek/vcodec/venc_vpu_if.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.h
similarity index 100%
rename from drivers/media/platform/mediatek/vcodec/venc_vpu_if.h
rename to drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.h
--
2.18.0



2023-07-03 20:30:23

by Nicolas Dufresne

[permalink] [raw]
Subject: Re: [PATCH v4,11/11] media: mediatek: vcodec: separete decoder and encoder

Le lundi 26 juin 2023 à 11:53 +0800, Yunfei Dong a écrit :
> Move all decoder files to folder video-decoder.
> Move all encoder files to folder video-encoder.
> Move common files which shared for encoder and decoder to folder video-common.
>
> Change include header files and Makefile to fix build error.
>
> Signed-off-by: Yunfei Dong <[email protected]>

Reviewed-by: Nicolas Dufresne <[email protected]>

> ---
> .../media/platform/mediatek/vcodec/Makefile | 55 +------------------
> .../platform/mediatek/vcodec/common/Makefile | 21 +++++++
> .../vcodec/{ => common}/mtk_vcodec_com_drv.h | 0
> .../vcodec/{ => common}/mtk_vcodec_dbgfs.c | 4 +-
> .../vcodec/{ => common}/mtk_vcodec_dbgfs.h | 0
> .../vcodec/{ => common}/mtk_vcodec_fw.c | 4 +-
> .../vcodec/{ => common}/mtk_vcodec_fw.h | 2 +-
> .../vcodec/{ => common}/mtk_vcodec_fw_priv.h | 0
> .../vcodec/{ => common}/mtk_vcodec_fw_scp.c | 4 +-
> .../vcodec/{ => common}/mtk_vcodec_fw_vpu.c | 4 +-
> .../vcodec/{ => common}/mtk_vcodec_intr.c | 4 +-
> .../vcodec/{ => common}/mtk_vcodec_intr.h | 0
> .../vcodec/{ => common}/mtk_vcodec_util.c | 6 +-
> .../vcodec/{ => common}/mtk_vcodec_util.h | 22 --------
> .../platform/mediatek/vcodec/decoder/Makefile | 25 +++++++++
> .../vcodec/{ => decoder}/mtk_vcodec_dec.c | 0
> .../vcodec/{ => decoder}/mtk_vcodec_dec.h | 0
> .../vcodec/{ => decoder}/mtk_vcodec_dec_drv.c | 2 +-
> .../vcodec/{ => decoder}/mtk_vcodec_dec_drv.h | 19 +++++--
> .../vcodec/{ => decoder}/mtk_vcodec_dec_hw.c | 2 +-
> .../vcodec/{ => decoder}/mtk_vcodec_dec_hw.h | 0
> .../vcodec/{ => decoder}/mtk_vcodec_dec_pm.c | 0
> .../vcodec/{ => decoder}/mtk_vcodec_dec_pm.h | 0
> .../{ => decoder}/mtk_vcodec_dec_stateful.c | 0
> .../{ => decoder}/mtk_vcodec_dec_stateless.c | 0
> .../{ => decoder}/vdec/vdec_av1_req_lat_if.c | 2 +-
> .../vcodec/{ => decoder}/vdec/vdec_h264_if.c | 2 +-
> .../{ => decoder}/vdec/vdec_h264_req_common.c | 0
> .../{ => decoder}/vdec/vdec_h264_req_common.h | 0
> .../{ => decoder}/vdec/vdec_h264_req_if.c | 2 +-
> .../vdec/vdec_h264_req_multi_if.c | 2 +-
> .../vdec/vdec_hevc_req_multi_if.c | 2 +-
> .../vcodec/{ => decoder}/vdec/vdec_vp8_if.c | 2 +-
> .../{ => decoder}/vdec/vdec_vp8_req_if.c | 2 +-
> .../vcodec/{ => decoder}/vdec/vdec_vp9_if.c | 2 +-
> .../{ => decoder}/vdec/vdec_vp9_req_lat_if.c | 2 +-
> .../vcodec/{ => decoder}/vdec_drv_base.h | 0
> .../vcodec/{ => decoder}/vdec_drv_if.c | 0
> .../vcodec/{ => decoder}/vdec_drv_if.h | 0
> .../vcodec/{ => decoder}/vdec_ipi_msg.h | 0
> .../vcodec/{ => decoder}/vdec_msg_queue.c | 0
> .../vcodec/{ => decoder}/vdec_msg_queue.h | 0
> .../vcodec/{ => decoder}/vdec_vpu_if.c | 0
> .../vcodec/{ => decoder}/vdec_vpu_if.h | 0
> .../platform/mediatek/vcodec/encoder/Makefile | 11 ++++
> .../vcodec/{ => encoder}/mtk_vcodec_enc.c | 0
> .../vcodec/{ => encoder}/mtk_vcodec_enc.h | 0
> .../vcodec/{ => encoder}/mtk_vcodec_enc_drv.c | 2 +-
> .../vcodec/{ => encoder}/mtk_vcodec_enc_drv.h | 19 +++++--
> .../vcodec/{ => encoder}/mtk_vcodec_enc_pm.c | 0
> .../vcodec/{ => encoder}/mtk_vcodec_enc_pm.h | 0
> .../vcodec/{ => encoder}/venc/venc_h264_if.c | 2 +-
> .../vcodec/{ => encoder}/venc/venc_vp8_if.c | 2 +-
> .../vcodec/{ => encoder}/venc_drv_base.h | 0
> .../vcodec/{ => encoder}/venc_drv_if.c | 0
> .../vcodec/{ => encoder}/venc_drv_if.h | 0
> .../vcodec/{ => encoder}/venc_ipi_msg.h | 0
> .../vcodec/{ => encoder}/venc_vpu_if.c | 0
> .../vcodec/{ => encoder}/venc_vpu_if.h | 0
> 59 files changed, 118 insertions(+), 110 deletions(-)
> create mode 100644 drivers/media/platform/mediatek/vcodec/common/Makefile
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_com_drv.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_dbgfs.c (98%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_dbgfs.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw.c (95%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw.h (97%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_priv.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_scp.c (96%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_vpu.c (97%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_intr.c (95%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_intr.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_util.c (96%)
> rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_util.h (71%)
> create mode 100644 drivers/media/platform/mediatek/vcodec/decoder/Makefile
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_drv.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_drv.h (93%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_hw.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_hw.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_pm.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_pm.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_stateful.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_stateless.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_av1_req_lat_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_common.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_common.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_multi_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_hevc_req_multi_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp8_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp8_req_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp9_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp9_req_lat_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_base.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_if.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_if.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_ipi_msg.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_msg_queue.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_msg_queue.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_vpu_if.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_vpu_if.h (100%)
> create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/Makefile
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_drv.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_drv.h (91%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_pm.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_pm.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc/venc_h264_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc/venc_vp8_if.c (99%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_base.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_if.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_if.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_ipi_msg.h (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_vpu_if.c (100%)
> rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_vpu_if.h (100%)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/Makefile b/drivers/media/platform/mediatek/vcodec/Makefile
> index 5f4c30fec85a..014abbfbd993 100644
> --- a/drivers/media/platform/mediatek/vcodec/Makefile
> +++ b/drivers/media/platform/mediatek/vcodec/Makefile
> @@ -1,54 +1,5 @@
> # SPDX-License-Identifier: GPL-2.0
>
> -obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dec.o \
> - mtk-vcodec-enc.o \
> - mtk-vcodec-common.o \
> - mtk-vcodec-dec-hw.o
> -
> -mtk-vcodec-dec-y := vdec/vdec_h264_if.o \
> - vdec/vdec_vp8_if.o \
> - vdec/vdec_vp8_req_if.o \
> - vdec/vdec_vp9_if.o \
> - vdec/vdec_vp9_req_lat_if.o \
> - vdec/vdec_av1_req_lat_if.o \
> - vdec/vdec_h264_req_if.o \
> - vdec/vdec_h264_req_common.o \
> - vdec/vdec_h264_req_multi_if.o \
> - vdec/vdec_hevc_req_multi_if.o \
> - mtk_vcodec_dec_drv.o \
> - vdec_drv_if.o \
> - vdec_vpu_if.o \
> - vdec_msg_queue.o \
> - mtk_vcodec_dec.o \
> - mtk_vcodec_dec_stateful.o \
> - mtk_vcodec_dec_stateless.o \
> - mtk_vcodec_dec_pm.o \
> -
> -mtk-vcodec-dec-hw-y := mtk_vcodec_dec_hw.o
> -
> -mtk-vcodec-enc-y := venc/venc_vp8_if.o \
> - venc/venc_h264_if.o \
> - mtk_vcodec_enc.o \
> - mtk_vcodec_enc_drv.o \
> - mtk_vcodec_enc_pm.o \
> - venc_drv_if.o \
> - venc_vpu_if.o \
> -
> -
> -mtk-vcodec-common-y := mtk_vcodec_intr.o \
> - mtk_vcodec_util.o \
> - mtk_vcodec_fw.o \
> -
> -ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_VPU),)
> -mtk-vcodec-common-y += mtk_vcodec_fw_vpu.o
> -endif
> -
> -ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_SCP),)
> -mtk-vcodec-common-y += mtk_vcodec_fw_scp.o
> -endif
> -
> -ifneq ($(CONFIG_DEBUG_FS),)
> -obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dbgfs.o
> -
> -mtk-vcodec-dbgfs-y := mtk_vcodec_dbgfs.o
> -endif
> \ No newline at end of file
> +obj-y += common/
> +obj-y += encoder/
> +obj-y += decoder/
> diff --git a/drivers/media/platform/mediatek/vcodec/common/Makefile b/drivers/media/platform/mediatek/vcodec/common/Makefile
> new file mode 100644
> index 000000000000..d0479914dfb3
> --- /dev/null
> +++ b/drivers/media/platform/mediatek/vcodec/common/Makefile
> @@ -0,0 +1,21 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-common.o
> +
> +mtk-vcodec-common-y := mtk_vcodec_intr.o \
> + mtk_vcodec_util.o \
> + mtk_vcodec_fw.o \
> +
> +ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_VPU),)
> +mtk-vcodec-common-y += mtk_vcodec_fw_vpu.o
> +endif
> +
> +ifneq ($(CONFIG_VIDEO_MEDIATEK_VCODEC_SCP),)
> +mtk-vcodec-common-y += mtk_vcodec_fw_scp.o
> +endif
> +
> +ifneq ($(CONFIG_DEBUG_FS),)
> +obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dbgfs.o
> +
> +mtk-vcodec-dbgfs-y := mtk_vcodec_dbgfs.o
> +endif
> \ No newline at end of file
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_com_drv.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_com_drv.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_com_drv.h
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_com_drv.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
> similarity index 98%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.c
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
> index c6a02b33cc74..54d5accf87d2 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.c
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
> @@ -7,8 +7,8 @@
> #include <linux/debugfs.h>
>
> #include "mtk_vcodec_dbgfs.h"
> -#include "mtk_vcodec_dec_drv.h"
> -#include "mtk_vcodec_enc_drv.h"
> +#include "../decoder/mtk_vcodec_dec_drv.h"
> +#include "../encoder/mtk_vcodec_enc_drv.h"
> #include "mtk_vcodec_util.h"
>
> static void mtk_vdec_dbgfs_get_format_type(struct mtk_vcodec_dec_ctx *ctx, char *buf,
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dbgfs.h
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.c
> similarity index 95%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.c
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.c
> index e59ce7c78742..5f3b1375c829 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.c
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.c
> @@ -1,7 +1,7 @@
> // SPDX-License-Identifier: GPL-2.0
>
> -#include "mtk_vcodec_dec_drv.h"
> -#include "mtk_vcodec_enc_drv.h"
> +#include "../decoder/mtk_vcodec_dec_drv.h"
> +#include "../encoder/mtk_vcodec_enc_drv.h"
> #include "mtk_vcodec_fw_priv.h"
>
> struct mtk_vcodec_fw *mtk_vcodec_fw_select(void *priv, enum mtk_vcodec_fw_type type,
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.h
> similarity index 97%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.h
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.h
> index 83479ab70385..300363a40158 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw.h
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw.h
> @@ -6,7 +6,7 @@
> #include <linux/remoteproc.h>
> #include <linux/remoteproc/mtk_scp.h>
>
> -#include "../vpu/mtk_vpu.h"
> +#include "../../vpu/mtk_vpu.h"
>
> struct mtk_vcodec_dec_dev;
> struct mtk_vcodec_enc_dev;
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_priv.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_priv.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_priv.h
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_priv.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
> similarity index 96%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
> index 3cb5a5befd24..9e744d07a1e8 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
> @@ -1,7 +1,7 @@
> // SPDX-License-Identifier: GPL-2.0
>
> -#include "mtk_vcodec_dec_drv.h"
> -#include "mtk_vcodec_enc_drv.h"
> +#include "../decoder/mtk_vcodec_dec_drv.h"
> +#include "../encoder/mtk_vcodec_enc_drv.h"
> #include "mtk_vcodec_fw_priv.h"
>
> static int mtk_vcodec_scp_load_firmware(struct mtk_vcodec_fw *fw)
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_vpu.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c
> similarity index 97%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_vpu.c
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c
> index 18274a51a8f8..5e03b0886559 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_vpu.c
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_vpu.c
> @@ -1,7 +1,7 @@
> // SPDX-License-Identifier: GPL-2.0
>
> -#include "mtk_vcodec_dec_drv.h"
> -#include "mtk_vcodec_enc_drv.h"
> +#include "../decoder/mtk_vcodec_dec_drv.h"
> +#include "../encoder/mtk_vcodec_enc_drv.h"
> #include "mtk_vcodec_fw_priv.h"
>
> static int mtk_vcodec_vpu_load_firmware(struct mtk_vcodec_fw *fw)
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
> similarity index 95%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
> index 69dae0336a14..934fad0f0f5d 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
> @@ -7,8 +7,8 @@
> #include <linux/errno.h>
> #include <linux/wait.h>
>
> -#include "mtk_vcodec_dec_drv.h"
> -#include "mtk_vcodec_enc_drv.h"
> +#include "../decoder/mtk_vcodec_dec_drv.h"
> +#include "../encoder/mtk_vcodec_enc_drv.h"
> #include "mtk_vcodec_intr.h"
>
> int mtk_vcodec_wait_for_done_ctx(void *priv, int command, unsigned int timeout_ms,
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.h
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.c
> similarity index 96%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.c
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.c
> index 18f632eb0b8a..5ab812885fac 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.c
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.c
> @@ -9,9 +9,9 @@
> #include <linux/of.h>
> #include <linux/of_device.h>
>
> -#include "mtk_vcodec_dec_drv.h"
> -#include "mtk_vcodec_enc_drv.h"
> -#include "mtk_vcodec_dec_hw.h"
> +#include "../decoder/mtk_vcodec_dec_drv.h"
> +#include "../encoder/mtk_vcodec_enc_drv.h"
> +#include "../decoder/mtk_vcodec_dec_hw.h"
>
> #if defined(CONFIG_DEBUG_FS)
> int mtk_vcodec_dbg;
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
> similarity index 71%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h
> rename to drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
> index 6c24bb8b1715..2bb3fd0b9d11 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h
> +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
> @@ -58,28 +58,6 @@ extern int mtk_vcodec_dbg;
> dev_dbg(&(plat_dev)->dev, "[MTK_VCODEC][%d]: " fmt "\n", inst_id, ##args)
> #endif
>
> -#define mtk_vdec_err(ctx, fmt, args...) \
> - mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> -
> -#define mtk_vdec_debug(ctx, fmt, args...) \
> - mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> -
> -#define mtk_venc_err(ctx, fmt, args...) \
> - mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> -
> -#define mtk_venc_debug(ctx, fmt, args...) \
> - mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> -
> -#define mtk_v4l2_vdec_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
> -
> -#define mtk_v4l2_vdec_dbg(level, ctx, fmt, args...) \
> - mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
> -
> -#define mtk_v4l2_venc_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
> -
> -#define mtk_v4l2_venc_dbg(level, ctx, fmt, args...) \
> - mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
> -
> void __iomem *mtk_vcodec_get_reg_addr(void __iomem **reg_base, unsigned int reg_idx);
> int mtk_vcodec_mem_alloc(void *priv, struct mtk_vcodec_mem *mem);
> void mtk_vcodec_mem_free(void *priv, struct mtk_vcodec_mem *mem);
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/Makefile b/drivers/media/platform/mediatek/vcodec/decoder/Makefile
> new file mode 100644
> index 000000000000..904cd22def84
> --- /dev/null
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/Makefile
> @@ -0,0 +1,25 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dec.o \
> + mtk-vcodec-dec-hw.o
> +
> +mtk-vcodec-dec-y := vdec/vdec_h264_if.o \
> + vdec/vdec_vp8_if.o \
> + vdec/vdec_vp8_req_if.o \
> + vdec/vdec_vp9_if.o \
> + vdec/vdec_vp9_req_lat_if.o \
> + vdec/vdec_av1_req_lat_if.o \
> + vdec/vdec_h264_req_if.o \
> + vdec/vdec_h264_req_common.o \
> + vdec/vdec_h264_req_multi_if.o \
> + vdec/vdec_hevc_req_multi_if.o \
> + mtk_vcodec_dec_drv.o \
> + vdec_drv_if.o \
> + vdec_vpu_if.o \
> + vdec_msg_queue.o \
> + mtk_vcodec_dec.o \
> + mtk_vcodec_dec_stateful.o \
> + mtk_vcodec_dec_stateless.o \
> + mtk_vcodec_dec_pm.o \
> +
> +mtk-vcodec-dec-hw-y := mtk_vcodec_dec_hw.o
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> index 36970113d069..6ee319762418 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> @@ -20,7 +20,7 @@
> #include "mtk_vcodec_dec.h"
> #include "mtk_vcodec_dec_hw.h"
> #include "mtk_vcodec_dec_pm.h"
> -#include "mtk_vcodec_intr.h"
> +#include "../common/mtk_vcodec_intr.h"
>
> static int mtk_vcodec_get_hw_count(struct mtk_vcodec_dec_ctx *ctx, struct mtk_vcodec_dec_dev *dev)
> {
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
> similarity index 93%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
> index 1a0375dd5b6d..db29f3437b6e 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.h
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
> @@ -7,10 +7,10 @@
> #ifndef _MTK_VCODEC_DEC_DRV_H_
> #define _MTK_VCODEC_DEC_DRV_H_
>
> -#include "mtk_vcodec_com_drv.h"
> -#include "mtk_vcodec_dbgfs.h"
> -#include "mtk_vcodec_fw_priv.h"
> -#include "mtk_vcodec_util.h"
> +#include "../common/mtk_vcodec_com_drv.h"
> +#include "../common/mtk_vcodec_dbgfs.h"
> +#include "../common/mtk_vcodec_fw_priv.h"
> +#include "../common/mtk_vcodec_util.h"
> #include "vdec_msg_queue.h"
>
> #define MTK_VCODEC_DEC_NAME "mtk-vcodec-dec"
> @@ -303,4 +303,15 @@ wake_up_dec_ctx(struct mtk_vcodec_dec_ctx *ctx, unsigned int reason, unsigned in
> wake_up_interruptible(&ctx->queue[hw_id]);
> }
>
> +#define mtk_vdec_err(ctx, fmt, args...) \
> + mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> +
> +#define mtk_vdec_debug(ctx, fmt, args...) \
> + mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> +
> +#define mtk_v4l2_vdec_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
> +
> +#define mtk_v4l2_vdec_dbg(level, ctx, fmt, args...) \
> + mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
> +
> #endif /* _MTK_VCODEC_DEC_DRV_H_ */
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.c
> index fa02fcf4e8c2..4f05a179970c 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.c
> @@ -15,7 +15,7 @@
> #include "mtk_vcodec_dec.h"
> #include "mtk_vcodec_dec_hw.h"
> #include "mtk_vcodec_dec_pm.h"
> -#include "mtk_vcodec_intr.h"
> +#include "../common/mtk_vcodec_intr.h"
>
> static const struct of_device_id mtk_vdec_hw_match[] = {
> {
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_hw.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.c
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_pm.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_pm.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateful.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateful.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateful.c
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_av1_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_av1_req_lat_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
> index d272fef36cd1..81f9e0c1540c 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_av1_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
> @@ -9,7 +9,7 @@
> #include <media/videobuf2-dma-contig.h>
>
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_drv_if.h"
> #include "../vdec_vpu_if.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
> index a8175f977ed2..bf7dffe60d07 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
> @@ -9,7 +9,7 @@
>
> #include "../vdec_drv_if.h"
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_vpu_if.h"
> #include "../vdec_drv_base.h"
>
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.c
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_common.h
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
> index 4c5ef35199a1..5600f1df653d 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
> @@ -7,7 +7,7 @@
> #include <media/videobuf2-dma-contig.h>
>
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_drv_if.h"
> #include "../vdec_vpu_if.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
> index 0f9f7b56882f..0e741e0dc8ba 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
> @@ -11,7 +11,7 @@
> #include <media/videobuf2-dma-contig.h>
>
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_drv_if.h"
> #include "../vdec_vpu_if.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_hevc_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_hevc_req_multi_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
> index 2682f40d1361..06ed47df693b 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_hevc_req_multi_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
> @@ -9,7 +9,7 @@
> #include <media/videobuf2-dma-contig.h>
>
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_drv_if.h"
> #include "../vdec_vpu_if.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> index ceddcfd9135b..d82205a1d8d0 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> @@ -8,7 +8,7 @@
> #include <linux/slab.h>
> #include "../vdec_drv_if.h"
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_vpu_if.h"
> #include "../vdec_drv_base.h"
>
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
> index c85c849d2548..f64b21c07169 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
> @@ -10,7 +10,7 @@
> #include <uapi/linux/v4l2-controls.h>
>
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_drv_if.h"
> #include "../vdec_vpu_if.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
> index d3493d36329d..5780052d9b38 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
> @@ -12,7 +12,7 @@
> #include <linux/delay.h>
> #include <linux/time.h>
>
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_vpu_if.h"
>
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> index 3e9458470484..e393e3e668f8 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> @@ -10,7 +10,7 @@
> #include <media/v4l2-vp9.h>
>
> #include "../mtk_vcodec_dec.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../vdec_drv_base.h"
> #include "../vdec_drv_if.h"
> #include "../vdec_vpu_if.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_drv_base.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_base.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_drv_base.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_base.h
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_drv_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_drv_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.c
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_drv_if.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_drv_if.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_drv_if.h
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_ipi_msg.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_ipi_msg.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.c
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_msg_queue.h
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/vdec_vpu_if.h
> rename to drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.h
> diff --git a/drivers/media/platform/mediatek/vcodec/encoder/Makefile b/drivers/media/platform/mediatek/vcodec/encoder/Makefile
> new file mode 100644
> index 000000000000..e621b5b7e5e6
> --- /dev/null
> +++ b/drivers/media/platform/mediatek/vcodec/encoder/Makefile
> @@ -0,0 +1,11 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-enc.o
> +
> +mtk-vcodec-enc-y := venc/venc_vp8_if.o \
> + venc/venc_h264_if.o \
> + mtk_vcodec_enc.o \
> + mtk_vcodec_enc_drv.o \
> + mtk_vcodec_enc_pm.o \
> + venc_drv_if.o \
> + venc_vpu_if.o \
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.h
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> index f1b4d5e8cd49..5db2bf3db4c5 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> @@ -18,7 +18,7 @@
>
> #include "mtk_vcodec_enc.h"
> #include "mtk_vcodec_enc_pm.h"
> -#include "mtk_vcodec_intr.h"
> +#include "../common/mtk_vcodec_intr.h"
>
> static const struct mtk_video_fmt mtk_video_formats_output[] = {
> {
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
> similarity index 91%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
> index 4804d8531a4e..5f3484fb9193 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.h
> +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
> @@ -7,10 +7,10 @@
> #ifndef _MTK_VCODEC_ENC_DRV_H_
> #define _MTK_VCODEC_ENC_DRV_H_
>
> -#include "mtk_vcodec_com_drv.h"
> -#include "mtk_vcodec_dbgfs.h"
> -#include "mtk_vcodec_fw_priv.h"
> -#include "mtk_vcodec_util.h"
> +#include "../common/mtk_vcodec_com_drv.h"
> +#include "../common/mtk_vcodec_dbgfs.h"
> +#include "../common/mtk_vcodec_fw_priv.h"
> +#include "../common/mtk_vcodec_util.h"
>
> #define MTK_VCODEC_ENC_NAME "mtk-vcodec-enc"
>
> @@ -242,4 +242,15 @@ wake_up_enc_ctx(struct mtk_vcodec_enc_ctx *ctx, unsigned int reason, unsigned in
> wake_up_interruptible(&ctx->queue[hw_id]);
> }
>
> +#define mtk_venc_err(ctx, fmt, args...) \
> + mtk_vcodec_err((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> +
> +#define mtk_venc_debug(ctx, fmt, args...) \
> + mtk_vcodec_debug((ctx)->id, (ctx)->dev->plat_dev, fmt, ##args)
> +
> +#define mtk_v4l2_venc_err(ctx, fmt, args...) mtk_v4l2_err((ctx)->dev->plat_dev, fmt, ##args)
> +
> +#define mtk_v4l2_venc_dbg(level, ctx, fmt, args...) \
> + mtk_v4l2_debug((ctx)->dev->plat_dev, level, fmt, ##args)
> +
> #endif /* _MTK_VCODEC_ENC_DRV_H_ */
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.c
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.h b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_pm.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_pm.h
> diff --git a/drivers/media/platform/mediatek/vcodec/venc/venc_h264_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/venc/venc_h264_if.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
> index 9127bceb0db4..a68dac72c4e4 100644
> --- a/drivers/media/platform/mediatek/vcodec/venc/venc_h264_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
> @@ -11,7 +11,7 @@
> #include <linux/slab.h>
>
> #include "../mtk_vcodec_enc_drv.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../mtk_vcodec_enc.h"
> #include "../mtk_vcodec_enc_pm.h"
> #include "../venc_drv_base.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/venc/venc_vp8_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
> similarity index 99%
> rename from drivers/media/platform/mediatek/vcodec/venc/venc_vp8_if.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
> index 510f3b042670..05abca91e742 100644
> --- a/drivers/media/platform/mediatek/vcodec/venc/venc_vp8_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
> @@ -10,7 +10,7 @@
> #include <linux/slab.h>
>
> #include "../mtk_vcodec_enc_drv.h"
> -#include "../mtk_vcodec_intr.h"
> +#include "../../common/mtk_vcodec_intr.h"
> #include "../mtk_vcodec_enc.h"
> #include "../mtk_vcodec_enc_pm.h"
> #include "../venc_drv_base.h"
> diff --git a/drivers/media/platform/mediatek/vcodec/venc_drv_base.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_drv_base.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/venc_drv_base.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc_drv_base.h
> diff --git a/drivers/media/platform/mediatek/vcodec/venc_drv_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/venc_drv_if.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.c
> diff --git a/drivers/media/platform/mediatek/vcodec/venc_drv_if.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/venc_drv_if.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc_drv_if.h
> diff --git a/drivers/media/platform/mediatek/vcodec/venc_ipi_msg.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/venc_ipi_msg.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h
> diff --git a/drivers/media/platform/mediatek/vcodec/venc_vpu_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/venc_vpu_if.c
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c
> diff --git a/drivers/media/platform/mediatek/vcodec/venc_vpu_if.h b/drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.h
> similarity index 100%
> rename from drivers/media/platform/mediatek/vcodec/venc_vpu_if.h
> rename to drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.h