Re: [PATCH v10 3/3] media: platform: mtk-mdp3: add Mediatek MDP3 driver
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-12-07 14:34:04
Also in:
linux-arm-kernel, linux-media, linux-mediatek, lkml
Hi Hans, On Tue, Dec 7, 2021 at 3:20 PM Hans Verkuil [off-list ref] wrote:
On 12/2/21 7:27 AM, Moudy Ho wrote:quoted
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> Reported-by: kernel test robot <redacted> --- 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 | 505 +++++++ .../media/platform/mtk-mdp3/mtk-mdp3-cmdq.h | 46 + .../media/platform/mtk-mdp3/mtk-mdp3-comp.c | 1264 +++++++++++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-comp.h | 147 ++ .../media/platform/mtk-mdp3/mtk-mdp3-core.c | 338 +++++ .../media/platform/mtk-mdp3/mtk-mdp3-core.h | 76 + .../media/platform/mtk-mdp3/mtk-mdp3-m2m.c | 789 ++++++++++ .../media/platform/mtk-mdp3/mtk-mdp3-m2m.h | 49 + .../media/platform/mtk-mdp3/mtk-mdp3-regs.c | 737 ++++++++++ .../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, 5272 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 cf4adc64c953..e6c1e8892154 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig@@ -315,6 +315,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 || COMPLIE_TESTTypo: COMPLIE_TEST -> COMPILE_TEST After fixing this, trying to build this driver on my PC results in: ERROR: modpost: "mtk_mmsys_mdp_connect" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mmsys_mdp_camin_ctrl" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mmsys_mdp_isp_ctrl" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mutex_prepare" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mmsys_mdp_disconnect" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mutex_unprepare" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mutex_get_mdp_mod" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mutex_put" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mutex_mdp_get" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! ERROR: modpost: "mtk_mutex_add_mod_by_cmdq" [drivers/media/platform/mtk-mdp3/mtk-mdp3.ko] undefined! WARNING: modpost: suppressed 1 unresolved symbol warnings because there were too many) include/linux/soc/mediatek/mtk-mmsys.h should probably provide dummy functions if CONFIG_MTK_MMSYS is undefined. Ditto for include/linux/soc/mediatek/mtk-mutex.h.
Or add a hard dependency on MTK_MMSYS?
The latter can be enabled when compile-testing.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds