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

From: Nicolas Dufresne
Date: Mon Jul 03 2023 - 16:12:37 EST


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 <yunfei.dong@xxxxxxxxxxxx>

Reviewed-by: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx>

> ---
> .../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