Re: [PATCH v7 5/5] media: platform: mtk-mdp3: Add Mediatek MDP3 driver
From: Hans Verkuil <hidden>
Date: 2021-09-03 09:48:49
Also in:
linux-arm-kernel, linux-devicetree, linux-media, lkml
On 24/08/2021 12:00, Moudy Ho wrote:
quoted hunk ↗ jump to hunk
This patch adds driver for Mediatek's Media Data Path ver.3 (MDP3). It provides the following functions: color transform, format conversion, resize, crop, rotate, flip and additional image quality enhancement. The MDP3 driver is mainly used for Google Chromebook products to import the new architecture to set the HW settings as shown below: User -> V4L2 framework -> MDP3 driver -> SCP (setting calculations) -> MDP3 driver -> CMDQ (GCE driver) -> HW Each modules' related operation control is sited in mtk-mdp3-comp.c Each modules' register table is defined in file with "mdp_reg_" prefix GCE related API, operation control sited in mtk-mdp3-cmdq.c V4L2 m2m device functions are implemented in mtk-mdp3-m2m.c Probe, power, suspend/resume, system level functions are defined in mtk-mdp3-core.c Signed-off-by: Ping-Hsun Wu <redacted> Signed-off-by: daoyuan huang <redacted> Signed-off-by: Moudy Ho <redacted> --- Depend on: [1] https://patchwork.kernel.org/project/linux-mediatek/patch/20190906115513.159705-9-acourbot@chromium.org/ [2] https://patchwork.kernel.org/project/linux-mediatek/patch/20190906115513.159705-10-acourbot@chromium.org/ --- drivers/media/platform/Kconfig | 19 + drivers/media/platform/Makefile | 2 + drivers/media/platform/mtk-mdp3/Makefile | 6 + .../media/platform/mtk-mdp3/mdp_reg_ccorr.h | 19 + drivers/media/platform/mtk-mdp3/mdp_reg_isp.h | 27 + .../media/platform/mtk-mdp3/mdp_reg_rdma.h | 65 + drivers/media/platform/mtk-mdp3/mdp_reg_rsz.h | 39 + .../media/platform/mtk-mdp3/mdp_reg_wdma.h | 47 + .../media/platform/mtk-mdp3/mdp_reg_wrot.h | 55 + drivers/media/platform/mtk-mdp3/mtk-img-ipi.h | 280 ++++ .../media/platform/mtk-mdp3/mtk-mdp3-cmdq.c | 507 +++++++ .../media/platform/mtk-mdp3/mtk-mdp3-cmdq.h | 46 + .../media/platform/mtk-mdp3/mtk-mdp3-comp.c | 1307 +++++++++++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-comp.h | 147 ++ .../media/platform/mtk-mdp3/mtk-mdp3-core.c | 329 +++++ .../media/platform/mtk-mdp3/mtk-mdp3-core.h | 75 + .../media/platform/mtk-mdp3/mtk-mdp3-m2m.c | 801 ++++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-m2m.h | 41 + .../media/platform/mtk-mdp3/mtk-mdp3-regs.c | 746 ++++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-regs.h | 372 +++++ .../media/platform/mtk-mdp3/mtk-mdp3-vpu.c | 312 ++++ .../media/platform/mtk-mdp3/mtk-mdp3-vpu.h | 78 + 22 files changed, 5320 insertions(+) create mode 100644 drivers/media/platform/mtk-mdp3/Makefile create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_ccorr.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_isp.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_rdma.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_rsz.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_wdma.h create mode 100644 drivers/media/platform/mtk-mdp3/mdp_reg_wrot.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-img-ipi.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-core.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-m2m.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-m2m.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-regs.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-regs.h create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-vpu.c create mode 100644 drivers/media/platform/mtk-mdp3/mtk-mdp3-vpu.hdiff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index 157c924686e4..b7f331dbe1b5 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig@@ -299,6 +299,25 @@ config VIDEO_MEDIATEK_MDP To compile this driver as a module, choose M here: the module will be called mtk-mdp. +config VIDEO_MEDIATEK_MDP3 + tristate "Mediatek MDP v3 driver" + depends on MTK_IOMMU
This should probably be: depends on MTK_IOMMU || COMPILE_TEST
quoted hunk ↗ jump to hunk
+ depends on VIDEO_DEV && VIDEO_V4L2 + depends on ARCH_MEDIATEK || COMPILE_TEST + depends on HAS_DMA + select VIDEOBUF2_DMA_CONTIG + select V4L2_MEM2MEM_DEV + select VIDEO_MEDIATEK_VPU + select MTK_CMDQ + select MTK_SCP + default n + help + It is a v4l2 driver and present in Mediatek MT8183 SoC. + The driver supports for scaling and color space conversion. + + To compile this driver as a module, choose M here: the + module will be called mtk-mdp3. + config VIDEO_MEDIATEK_VCODEC tristate "Mediatek Video Codec driver" depends on MTK_IOMMU || COMPILE_TEST
Regards, Hans _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek