Message ID | 20211201095031.31606-1-moudy.ho@mediatek.com |
---|---|
Headers | show |
Series | media: mediatek: support mdp3 on mt8183 platform | expand |
Il 01/12/21 10:50, Moudy Ho ha scritto: > Change since v8: > - Rebase on v5.16-rc2. > - Refer to Angelo's suggestion, adjust the register writing format to increase > readability and significance. > - Refer to Angelo's suggestion, adjust or reduce inappropriate debugging > messages. > - Refer to Rob Herring's suggestion to correct the the binding file > to make it with the specification. > - Fix compile warning reported by kernel test robot. > > Change since v7: > - Rebase on v5.15-rc6. > - Revise several V4L2 M2M settings to pass v4l2-compliance test. > - Integrate those same component dt-binding documents of DRM and MDP, and > move them under the MMSYS domain. > - Split MMSYS and MUTEX into two different files according to > their functional properties. > > Changes since v6: > - Refactor GCE event to corresponding node. > - Fix dt_binding_check fail. > - Fix compilation errors. > > Changes since v5: > - Rebase on v5.14-rc6. > - Move MMSYS/Mutex settings to corresponding driver. > - Revise the software license description and copyright. > - Remove unnecessary enum. or definitions. > - Optimize platform/chip definition conditions. > - Use general printing functions instead of MDP3 private ones. > - Fix compile warning. > > Changes since v4: > - Rebase on v5.13-rc1. > - Remove the CMDQ flush flow to match the CMDQ API change. > - Integrate four of MDP's direct-link subcomponents into MDP controller node > from syscon node to avoid illegal clock usage. > - Rewrite dt-binding in a JSON compatible subset of YAML > - Fix a bit of macro argument precedence. > > Changes since v3: > - Rebase on v5.9-rc1. > - modify code for review comment from Rob Herring, cancel multiple nodes using > same register base situation. > - control IOMMU port through pm runtime get/put to DMA components' device. > - SCP(VPU) driver revision. > - stop queuing jobs(remove flush_workqueue()) after mdp_m2m_release(). > - add computation of plane address with data_offset. > - fix scale ratio check issue. > - add default v4l2_format setting. > > Changes since v2: > - modify code for review comment from Tomasz Figa & Alexandre Courbot > - review comment from Rob Herring will offer code revision in v4, due to > it's related to device node modification, will need to modify code > architecture > > Changes since v1: > - modify code for CMDQ v3 API support > - EC ipi cmd migration > - fix compliance test fail item (m2m cmd with -f) due to there is two problem in runing all format(-f) cmd: > 1. out of memory before test complete > Due to capture buffer mmap (refcount + 1) after reqbuf but seems > no corresponding munmap called before device close. > There are total 12XX items(formats) in format test and each format > alloc 8 capture/output buffers. > 2. unceasingly captureBufs() (randomly) > Seems the break statement didn't catch the count == 0 situation: > In v4l2-test-buffers.cpp, function: captureBufs() > ... > count--; > if (!node->is_m2m && !count) > break; > Log is as attachment > > I will paste the test result with problem part in another e-mail > > Hi, > > This is the first version of RFC patch for Media Data Path 3 (MDP3), > MDP3 is used for scaling and color format conversion. > support using GCE to write register in critical time limitation. > support V4L2 m2m device control. > > > Moudy Ho (7): > soc: mediatek: mmsys: add support for MDP > soc: mediatek: mmsys: add support for ISP control > soc: mediatek: mutex: add support for MDP > soc: mediatek: mutex: add functions that operate registers by CMDQ > dt-binding: mt8183: add Mediatek MDP3 dt-bindings > dts: arm64: mt8183: add Mediatek MDP3 nodes > media: platform: mtk-mdp3: add Mediatek MDP3 driver > Hello Moudy, I agree with your vision of mmsys and mutex patches being somewhat tied to the MDP3 driver being present but, still, can you please split this series? The reason for this is that the four patches related to mmsys and mutex are ok, ready to be merged, and unlikely to get any other change during the development of the MDP3 driver specifically. Like that, we could at least start getting all the required base support upstream and reduce the strain on you (and on reviewers) when releasing/rebasing any new version of this series; this will consequently help raising the quality of this work. Regards, - Angelo
Il 01/12/21 10:50, Moudy Ho ha scritto: > Considering that some functions have timing requirements > in specific situation, this patch adds several interface that > operate registers by CMDQ. > > Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> > --- > drivers/soc/mediatek/mtk-mutex.c | 65 +++++++++++++++++++++++++- > include/linux/soc/mediatek/mtk-mutex.h | 6 +++ > 2 files changed, 70 insertions(+), 1 deletion(-) > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Il 01/12/21 10:50, Moudy Ho ha scritto: > 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@mediatek.com> > Signed-off-by: daoyuan huang <daoyuan.huang@mediatek.com> > Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> > Reported-by: kernel test robot <lkp@intel.com> > --- > 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 | 514 +++++++ > .../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, 5281 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 > snip... > diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c > new file mode 100644 > index 000000000000..a643f3ee928b > --- /dev/null > +++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c > @@ -0,0 +1,514 @@ Looks like you forgot to check my review comments to this entire file. Can you please send a new version after applying the changes to this file suggested in my review of series v8? Thanks.
Il 02/12/21 04:35, moudy ho ha scritto: > On Wed, 2021-12-01 at 11:37 +0100, AngeloGioacchino Del Regno wrote: >> Il 01/12/21 10:50, Moudy Ho ha scritto: >>> 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@mediatek.com> >>> Signed-off-by: daoyuan huang <daoyuan.huang@mediatek.com> >>> Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> >>> Reported-by: kernel test robot <lkp@intel.com> >>> --- >>> 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 | 514 +++++++ >>> .../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, 5281 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 >>> >> >> snip... >> >>> diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c >>> b/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c >>> new file mode 100644 >>> index 000000000000..a643f3ee928b >>> --- /dev/null >>> +++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c >>> @@ -0,0 +1,514 @@ >> >> Looks like you forgot to check my review comments to this entire >> file. >> Can you please send a new version after applying the changes to this >> file >> suggested in my review of series v8? > Hi Angelo, > > Thanks for the reminder and sorry for my carelessness. Considering the > compatibility of subsequent chips and function independence, I plan to > move those mutex mod definition to the corresponding driver, and > release next version ASAP. > > Thanks & Regards, > Moudy Ho >> Thanks. > Hi Moudy, Don't worry, we're humans, it happens to the best. We're always here to improve! Thank you for sending the v10 by the way, I will review it as soon as I can. Regards, - Angelo