From: Hans Verkuil <hverkuil@xs4all.nl> To: Frederic Chen <frederic.chen@mediatek.com>, hans.verkuil@cisco.com, laurent.pinchart+renesas@ideasonboard.com, tfiga@chromium.org, matthias.bgg@gmail.com, mchehab@kernel.org Cc: Sean.Cheng@mediatek.com, Rynn.Wu@mediatek.com, srv_heupstream@mediatek.com, holmes.chiou@mediatek.com, Jerry-ch.Chen@mediatek.com, jungo.lin@mediatek.com, sj.huang@mediatek.com, christie.yu@mediatek.com, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: Re: [RFC PATCH V0 0/7] media: platform: Add support for Digital Image Processing (DIP) on mt8183 SoC Date: Thu, 14 Mar 2019 09:46:07 +0100 Message-ID: <3eadd21f-de2c-404c-c2c2-f819bc29947c@xs4all.nl> (raw) In-Reply-To: <1549020091-42064-1-git-send-email-frederic.chen@mediatek.com> Hi Frederic Chen, On 2/1/19 12:21 PM, Frederic Chen wrote: > Hello, > > This is the first version of the RFC patch series adding Digital Image > Processing (DIP) driver on Mediatek mt8183 SoC, which will be used in camera > features on CrOS application. It belongs to the first Mediatek’s ISP driver > series based on V4L2 and media controller framework. I posted the main part of > the DIP driver as RFC to discuss first and would like some review comments on > the overall structure of the driver. > > Digital Image Processing (DIP) unit can accept the tuning parameters and adjust > the image content in Mediatek ISP system. Furthermore, it performs demosaicing > and noise reduction on the image to support the advanced camera features of the > application. The DIP driver also support image format conversion, resizing and > rotation with its hardware path. > > The driver is implemented with V4L2 and media controller framework. We have the > following entities describing the DIP path. > > 1. Meta (output video device): connects to DIP sub device. It accepts the input > tuning buffer from userspace. The metadata interface used currently is only > a temporary solution to kick off driver development and is not ready for > reviewed yet. > > 2. RAW (output video device): connects to DIP sub device. It accepts input image > buffer from userspace. > > 3. DIP (sub device): connects to MDP-0 and MDP-1. When processing an image, DIP > hardware support multiple output image with different size and format so it > needs two capture video devices to return the streaming data to the user. > > 4. MDP-0 (capture video device): return the processed image data. > > 5. MDP-1 (capture video device): return the processed image data, the image > size and format can be different from the ones of MDP-0. Just a high-level comment before you post the next version of this series and for your "platform: Add support for ISP Pass 1 on mt8183 SoC" series Please compile the latest version of v4l2-compliance (part of git://linuxtv.org/v4l-utils.git) and run it against your driver: v4l2-compliance -m /dev/mediaX Whenever you post a new version of this series, please do a 'git pull' of the v4l-utils repo, recompile and retest with v4l2-compliance and post the test results in the cover letter. Obviously, there should be no FAILs and probably no warnings. I suspect that streaming (e.g. adding the -s10 option to v4l2-compliance) might not work since v4l2-compliance doesn't know about the meta data formats. But give it a try and see what happens :-) Regards, Hans > > The overall file structure of the DIP driver is as following: > > * mtk_dip-dev-ctx-core.c: Implements common software flow of DIP driver. > DIP driver supports two or more software contexts. For example, context 0 is > created for preview path and context 1 is for capture path. Both the two > contexts share the same DIP hardware to process the images. > * mtk_dip-v4l2.c: Static DIP contexts configuration. > * mtk_dip.c: Controls the hardware flow. > * mtk_dip-dev.c: Implements context-independent flow. > * mtk_dip-ctrl.c: Handles the HW ctrl request from userspace. > * mtk_dip-smem-drv.c: Provides the shared memory management required operation. > We reserved a memory region for the co-processor and DIP to exchange the > tuning and hardware configuration data. > * mtk_dip-v4l2-util.c: Implements V4L2 and vb2 ops. > > Frederic Chen (7): > [media] dt-bindings: mt8183: Add binding for DIP shared memory > dts: arm64: mt8183: Add DIP shared memory node > [media] dt-bindings: mt8183: Added DIP-SMEM dt-bindings > [media] dt-bindings: mt8183: Added DIP dt-bindings > dts: arm64: mt8183: Add DIP nodes > media: platform: Add Mediatek DIP driver KConfig > [media] platform: mtk-isp: Add Mediatek DIP driver > > .../bindings/media/mediatek,dip_smem.txt | 29 + > .../bindings/media/mediatek,mt8183-dip.txt | 35 + > .../mediatek,reserve-memory-dip_smem.txt | 45 + > arch/arm64/boot/dts/mediatek/mt8183.dtsi | 36 + > drivers/media/platform/Kconfig | 2 + > drivers/media/platform/mtk-isp/Kconfig | 21 + > drivers/media/platform/mtk-isp/Makefile | 18 + > drivers/media/platform/mtk-isp/isp_50/Makefile | 17 + > drivers/media/platform/mtk-isp/isp_50/dip/Makefile | 35 + > .../platform/mtk-isp/isp_50/dip/mtk_dip-core.h | 188 +++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-ctrl.c | 173 +++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-ctrl.h | 43 + > .../platform/mtk-isp/isp_50/dip/mtk_dip-ctx.h | 319 ++++ > .../mtk-isp/isp_50/dip/mtk_dip-dev-ctx-core.c | 1643 ++++++++++++++++++++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-dev.c | 374 +++++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-dev.h | 191 +++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-smem-drv.c | 452 ++++++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-smem.h | 25 + > .../mtk-isp/isp_50/dip/mtk_dip-v4l2-util.c | 1000 ++++++++++++ > .../mtk-isp/isp_50/dip/mtk_dip-v4l2-util.h | 38 + > .../platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c | 292 ++++ > .../platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.h | 60 + > .../media/platform/mtk-isp/isp_50/dip/mtk_dip.c | 1385 +++++++++++++++++ > .../media/platform/mtk-isp/isp_50/dip/mtk_dip.h | 93 ++ > 24 files changed, 6514 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/mediatek,dip_smem.txt > create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8183-dip.txt > create mode 100644 Documentation/devicetree/bindings/reserved-memory/mediatek,reserve-memory-dip_smem.txt > create mode 100644 drivers/media/platform/mtk-isp/Kconfig > create mode 100644 drivers/media/platform/mtk-isp/Makefile > create mode 100644 drivers/media/platform/mtk-isp/isp_50/Makefile > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/Makefile > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-core.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-ctrl.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-ctrl.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-ctx.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-dev-ctx-core.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-dev.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-dev.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-smem-drv.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-smem.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2-util.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2-util.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.h > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip.c > create mode 100644 drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip.h > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
prev parent reply index Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-01 11:21 Frederic Chen 2019-02-01 11:21 ` [RFC PATCH V0 1/7] [media] dt-bindings: mt8183: Add binding for DIP shared memory Frederic Chen 2019-02-09 15:59 ` Sakari Ailus 2019-02-09 18:17 ` Laurent Pinchart 2019-02-12 9:37 ` Frederic Chen 2019-02-13 3:41 ` Tomasz Figa 2019-02-01 11:21 ` [RFC PATCH V0 2/7] dts: arm64: mt8183: Add DIP shared memory node Frederic Chen 2019-02-01 11:21 ` [RFC PATCH V0 3/7] [media] dt-bindings: mt8183: Added DIP-SMEM dt-bindings Frederic Chen 2019-02-09 15:59 ` Sakari Ailus 2019-02-09 18:20 ` Laurent Pinchart 2019-02-12 9:50 ` Frederic Chen 2019-02-01 11:21 ` [RFC PATCH V0 4/7] [media] dt-bindings: mt8183: Added DIP dt-bindings Frederic Chen 2019-02-01 11:21 ` [RFC PATCH V0 5/7] dts: arm64: mt8183: Add DIP nodes Frederic Chen 2019-02-01 11:21 ` [RFC PATCH V0 6/7] media: platform: Add Mediatek DIP driver KConfig Frederic Chen [not found] ` <1549020091-42064-8-git-send-email-frederic.chen@mediatek.com> 2019-02-07 19:08 ` [RFC PATCH V0 7/7] [media] platform: mtk-isp: Add Mediatek DIP driver Brian Norris [not found] ` <1550756198.11724.86.camel@mtksdccf07> 2019-02-23 6:18 ` Frederic Chen 2019-02-28 3:24 ` Brian Norris 2019-03-06 17:07 ` Frederic Chen 2019-03-14 8:46 ` Hans Verkuil [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=3eadd21f-de2c-404c-c2c2-f819bc29947c@xs4all.nl \ --to=hverkuil@xs4all.nl \ --cc=Jerry-ch.Chen@mediatek.com \ --cc=Rynn.Wu@mediatek.com \ --cc=Sean.Cheng@mediatek.com \ --cc=christie.yu@mediatek.com \ --cc=frederic.chen@mediatek.com \ --cc=hans.verkuil@cisco.com \ --cc=holmes.chiou@mediatek.com \ --cc=jungo.lin@mediatek.com \ --cc=laurent.pinchart+renesas@ideasonboard.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=matthias.bgg@gmail.com \ --cc=mchehab@kernel.org \ --cc=sj.huang@mediatek.com \ --cc=srv_heupstream@mediatek.com \ --cc=tfiga@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-ARM-Kernel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-arm-kernel/0 linux-arm-kernel/git/0.git git clone --mirror https://lore.kernel.org/linux-arm-kernel/1 linux-arm-kernel/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-arm-kernel linux-arm-kernel/ https://lore.kernel.org/linux-arm-kernel \ linux-arm-kernel@lists.infradead.org public-inbox-index linux-arm-kernel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.infradead.lists.linux-arm-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git