All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH V0 0/7] media: platform: Add support for ISP Pass 1 on mt8183 SoC
@ 2019-02-05  6:42 ` Frederic Chen
  0 siblings, 0 replies; 74+ messages in thread
From: Frederic Chen @ 2019-02-05  6:42 UTC (permalink / raw)
  To: hans.verkuil, laurent.pinchart+renesas, tfiga, matthias.bgg, mchehab
  Cc: linux-mediatek, linux-arm-kernel, Sean.Cheng, sj.huang,
	christie.yu, holmes.chiou, frederic.chen, Jerry-ch.Chen,
	jungo.lin, Rynn.Wu, linux-media, srv_heupstream, yuzhao, zwisler

Hello,

This is a first version of the RFC patch series adding the driver for
Pass 1 (P1) unit in Mediatek's camera ISP system on mt8183 SoC, which
will be used in camera features of CrOS. It's the first time Mediatek
develops ISP kernel drivers based on V4L2 and media controller
framework. I posted the main part of the ISP Pass 1 driver as RFC to
discuss first and would like some review comments on the overall
architecture of the driver.

Pass 1 unit processes image signal from sensor devices and accepts the
tuning parameters to adjust the image quality. It performs optical
black correction, defect pixel correction, W/IR imbalance correction
and lens shading correction for RAW processing.

The driver is implemented with V4L2 and media controller framework so
we have the following entities to describe the ISP pass 1 path. (The
current metadata interface used in meta input and partial meta nodes
is only a temporary solution to kick off the driver development and is
not ready to be reviewed yet):

1. meta input (output video device): connects to ISP P1 sub device. It
accepts the tuning buffer from user.

2. ISP P1 (sub device): connects to partial meta 0, partial meta 1,
main stream and packed out video devices. When processing an image,
Pass 1 hardware supports multiple output images with different sizes
and formats so it needs two capture video devices ("main stream" and
"packed out") to return the image data to the user.

3. partial meta 0 (capture video device): return the statistics
metadata.

4. partial meta 1 (capture video device): return the statistics
metadata.

5. main stream (capture video device): return the processed image data
which is used in capture scenario.

6. packed out (capture video device): return the processed image data
which is used in preview scenario.

The overall file structure of the ISP Pass 1 driver is as following:

* mtk_cam.c: Controls the hardware dependent flow and configuration.
* mtk_cam-v4l2.c: High-level software context configuration.
* mtk_cam-v4l2-util.c: Implements V4L2 and vb2 ops.
* mtk_cam-dev-ctx-core.c: Common software flow of the driver.
* mtk_cam-dev.c: Implements context independent flow.
* mtk_cam-vpu.c: Communicates with the co-processor on the SoC through
  the VPU driver.
* mtk_cam-smem-drv.c: Provides the shared memory management required
  operations. We reserved a memory region for the co-processor and
  Pass 1 unit to exchange the tuning and configuration data.


Frederic Chen (2):
  [media] dt-bindings: mt8183: Add binding for ISP Pass 1 shared memory
  media: platform: Add Mediatek ISP Pass 1 driver KConfig

Jungo Lin (5):
  dts: arm64: mt8183: Add ISP Pass 1 shared memory node
  [media] dt-bindings: mt8183: Added CAM-SMEM dt-bindings
  [media] dt-bindings: mt8183: Added camera ISP Pass 1 dt-bindings
  dts: arm64: mt8183: Add ISP Pass 1 nodes
  [media] platform: mtk-isp: Add Mediatek ISP Pass 1 driver

 .../bindings/media/mediatek,cam_smem.txt           |   32 +
 .../bindings/media/mediatek,mt8183-camisp.txt      |   59 +
 .../mediatek,reserve-memory-cam_smem.txt           |   44 +
 arch/arm64/boot/dts/mediatek/mt8183.dtsi           |   54 +
 drivers/media/platform/Kconfig                     |    2 +
 drivers/media/platform/Makefile                    |    2 +
 drivers/media/platform/mtk-isp/Kconfig             |   21 +
 drivers/media/platform/mtk-isp/Makefile            |   14 +
 drivers/media/platform/mtk-isp/isp_50/Makefile     |   17 +
 drivers/media/platform/mtk-isp/isp_50/cam/Makefile |   35 +
 .../platform/mtk-isp/isp_50/cam/mtk_cam-ctx.h      |  327 ++++
 .../mtk-isp/isp_50/cam/mtk_cam-dev-ctx-core.c      |  986 +++++++++++++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-dev.c      |  381 +++++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-dev.h      |  204 +++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-regs.h     |  146 ++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-smem-drv.c |  452 ++++++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-smem.h     |   27 +
 .../mtk-isp/isp_50/cam/mtk_cam-v4l2-util.c         | 1555 ++++++++++++++++++++
 .../mtk-isp/isp_50/cam/mtk_cam-v4l2-util.h         |   49 +
 .../platform/mtk-isp/isp_50/cam/mtk_cam-v4l2.c     |  288 ++++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-v4l2.h     |   40 +
 .../platform/mtk-isp/isp_50/cam/mtk_cam-vpu.c      |  466 ++++++
 .../platform/mtk-isp/isp_50/cam/mtk_cam-vpu.h      |  158 ++
 .../media/platform/mtk-isp/isp_50/cam/mtk_cam.c    | 1235 ++++++++++++++++
 .../media/platform/mtk-isp/isp_50/cam/mtk_cam.h    |  347 +++++
 25 files changed, 6941 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/mediatek,cam_smem.txt
 create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8183-camisp.txt
 create mode 100644 Documentation/devicetree/bindings/reserved-memory/mediatek,reserve-memory-cam_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/cam/Makefile
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-ctx.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-dev-ctx-core.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-dev.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-dev.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-regs.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-smem-drv.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-smem.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-v4l2-util.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-v4l2-util.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-v4l2.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-v4l2.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-vpu.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam-vpu.h
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam.c
 create mode 100644 drivers/media/platform/mtk-isp/isp_50/cam/mtk_cam.h

-- 
1.9.1




^ permalink raw reply	[flat|nested] 74+ messages in thread

end of thread, other threads:[~2019-03-25  7:20 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-05  6:42 [RFC PATCH V0 0/7] media: platform: Add support for ISP Pass 1 on mt8183 SoC Frederic Chen
2019-02-05  6:42 ` Frederic Chen
2019-02-05  6:42 ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 1/7] [media] dt-bindings: mt8183: Add binding for ISP Pass 1 shared memory Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 2/7] dts: arm64: mt8183: Add ISP Pass 1 shared memory node Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 3/7] [media] dt-bindings: mt8183: Added CAM-SMEM dt-bindings Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 4/7] [media] dt-bindings: mt8183: Added camera ISP Pass 1 dt-bindings Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 5/7] dts: arm64: mt8183: Add ISP Pass 1 nodes Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 6/7] media: platform: Add Mediatek ISP Pass 1 driver KConfig Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-05  6:42 ` [RFC PATCH V0 7/7] [media] platform: mtk-isp: Add Mediatek ISP Pass 1 driver Frederic Chen
2019-02-05  6:42   ` Frederic Chen
2019-02-13  9:50   ` Tomasz Figa
2019-02-13  9:50     ` Tomasz Figa
2019-02-13  9:50     ` Tomasz Figa
2019-02-17  2:56     ` Jungo Lin
2019-02-17  2:56       ` Jungo Lin
2019-02-17  2:56       ` Jungo Lin
2019-02-19  8:51       ` Tomasz Figa
2019-02-19  8:51         ` Tomasz Figa
2019-02-19  8:51         ` Tomasz Figa
2019-02-20  7:31         ` Jungo Lin
2019-02-20  7:31           ` Jungo Lin
2019-02-20  7:31           ` Jungo Lin
2019-03-21  3:33           ` Tomasz Figa
2019-03-21  3:33             ` Tomasz Figa
2019-03-21  3:33             ` Tomasz Figa
2019-03-22  0:00             ` Jungo Lin
2019-03-22  0:00               ` Jungo Lin
2019-03-22  0:00               ` Jungo Lin
2019-03-07 10:04   ` Tomasz Figa
2019-03-07 10:04     ` Tomasz Figa
2019-03-07 10:04     ` Tomasz Figa
2019-03-12  8:16     ` Jungo Lin
2019-03-12  8:16       ` Jungo Lin
2019-03-12  8:16       ` Jungo Lin
2019-03-21  3:45       ` Tomasz Figa
2019-03-21  3:45         ` Tomasz Figa
2019-03-21  3:45         ` Tomasz Figa
2019-03-22  0:13         ` Jungo Lin
2019-03-22  0:13           ` Jungo Lin
2019-03-22  0:13           ` Jungo Lin
2019-03-21  3:48       ` Tomasz Figa
2019-03-21  3:48         ` Tomasz Figa
2019-03-21  3:48         ` Tomasz Figa
2019-03-22  0:17         ` Jungo Lin
2019-03-22  0:17           ` Jungo Lin
2019-03-22  0:17           ` Jungo Lin
2019-03-12 10:04   ` Tomasz Figa
2019-03-12 10:04     ` Tomasz Figa
2019-03-12 10:04     ` Tomasz Figa
2019-03-13  6:54     ` Jungo Lin
2019-03-13  6:54       ` Jungo Lin
2019-03-13  6:54       ` Jungo Lin
2019-03-21  3:59       ` Tomasz Figa
2019-03-21  3:59         ` Tomasz Figa
2019-03-21  3:59         ` Tomasz Figa
2019-03-22  2:20         ` Jungo Lin
2019-03-22  2:20           ` Jungo Lin
2019-03-22  2:20           ` Jungo Lin
2019-03-25  7:12           ` Tomasz Figa
2019-03-25  7:12             ` Tomasz Figa
2019-03-25  7:12             ` Tomasz Figa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.