Hi Hans, On Tue, Dec 7, 2021 at 3:20 PM Hans Verkuil <hverkuil-cisco@xxxxxxxxx> wrote: > On 12/2/21 7:27 AM, 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> > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > --- > > 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.h > > > > diff --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_TEST > > Typo: 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@xxxxxxxxxxxxxx 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