On 24/08/2021 12:00, Moudy Ho wrote: > 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 <ping-hsun.wu@xxxxxxxxxxxx> > Signed-off-by: daoyuan huang <daoyuan.huang@xxxxxxxxxxxx> > Signed-off-by: Moudy Ho <moudy.ho@xxxxxxxxxxxx> > --- > Depend on: > [1] https://patchwork.kernel.org/project/linux-mediatek/patch/20190906115513.159705-9-acourbot@xxxxxxxxxxxx/ > [2] https://patchwork.kernel.org/project/linux-mediatek/patch/20190906115513.159705-10-acourbot@xxxxxxxxxxxx/ > --- > 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.h > > diff --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 > + 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