media: platform: mtk-mdp3: add MediaTek MDP3 driver
authorMoudy Ho <moudy.ho@mediatek.com>
Tue, 23 Aug 2022 02:38:03 +0000 (04:38 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 30 Aug 2022 14:25:51 +0000 (16:25 +0200)
commit61890ccaefaff89f5babd2c8412fd222c3f5fe38
tree75f43e9b018cd2ca8892cd696e3ff91b372b905b
parent8bbdead4dede97d8737bd4d164ff9c0a7d03a4b8
media: platform: mtk-mdp3: add MediaTek MDP3 driver

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

[hverkuil: add 'depends on REMOTEPROC']

Signed-off-by: Ping-Hsun Wu <ping-hsun.wu@mediatek.com>
Signed-off-by: daoyuan huang <daoyuan.huang@mediatek.com>
Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
22 files changed:
drivers/media/platform/mediatek/Kconfig
drivers/media/platform/mediatek/Makefile
drivers/media/platform/mediatek/mdp3/Kconfig [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/Makefile [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mdp_reg_ccorr.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mdp_reg_rdma.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mdp_reg_rsz.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mdp_reg_wdma.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mdp_reg_wrot.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-regs.c [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-regs.h [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-vpu.c [new file with mode: 0644]
drivers/media/platform/mediatek/mdp3/mtk-mdp3-vpu.h [new file with mode: 0644]