lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <964d6e09-aa25-47ff-8b71-e9aceee1f626@wolfvision.net>
Date: Fri, 19 Sep 2025 09:48:47 +0200
From: Gerald Loacker <gerald.loacker@...fvision.net>
To: michael.riesch@...labora.com, Mehdi Djait <mehdi.djait@...ux.intel.com>,
 Maxime Chevallier <maxime.chevallier@...tlin.com>,
 Théo Lebrun <theo.lebrun@...tlin.com>,
 Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
 Bryan O'Donoghue <bryan.odonoghue@...aro.org>,
 Markus Elfring <Markus.Elfring@....de>,
 Laurent Pinchart <laurent.pinchart@...asonboard.com>,
 Mauro Carvalho Chehab <mchehab@...nel.org>, Rob Herring
 <robh+dt@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
 Conor Dooley <conor+dt@...nel.org>, Heiko Stuebner <heiko@...ech.de>,
 Kever Yang <kever.yang@...k-chips.com>,
 Nicolas Dufresne <nicolas.dufresne@...labora.com>,
 Sebastian Reichel <sebastian.reichel@...labora.com>,
 Collabora Kernel Team <kernel@...labora.com>,
 Paul Kocialkowski <paulk@...-base.io>,
 Alexander Shiyan <eagle.alexander923@...il.com>,
 Val Packett <val@...kett.cool>, Rob Herring <robh@...nel.org>,
 Philipp Zabel <p.zabel@...gutronix.de>,
 Sakari Ailus <sakari.ailus@...ux.intel.com>
Cc: linux-media@...r.kernel.org, devicetree@...r.kernel.org,
 linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
 linux-rockchip@...ts.infradead.org, Mehdi Djait <mehdi.djait@...tlin.com>,
 Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
 Bryan O'Donoghue <bod@...nel.org>
Subject: Re: [PATCH v11 00/17] media: rockchip: add a driver for the rockchip
 camera interface

Hi Michael,

Am 17.09.2025 um 17:38 schrieb Michael Riesch via B4 Relay:
> Habidere,
> 
> This series introduces support for the Rockchip Camera Interface (CIF),
> which is featured in many Rockchip SoCs in different variations.
> For example, the PX30 Video Input Processor (VIP) is able to receive
> video data via the Digital Video Port (DVP, a parallel data interface)
> and transfer it into system memory using a double-buffering mechanism
> called ping-pong mode.
> The RK3568 Video Capture (VICAP) unit, on the other hand, features a
> DVP and a MIPI CSI-2 receiver that can receive video data independently
> (both using the ping-pong scheme).
> The different variants may have additional features, such as scaling
> and/or cropping.
> Finally, the RK3588 VICAP unit constitutes an essential piece of the
> camera interface with one DVP, six MIPI CSI-2 receivers, scale/crop
> units, and a data path multiplexer (to scaler units, to ISP, ...).
> 
> The v11 of the series adds a media controller centric V4L2 device driver
> for the Rockchip CIF with
>  - support for the PX30 VIP (not tested, though, due to the lack of HW)
>  - support for the RK3568 VICAP, including
>     - capturing frames from the DVP
>     - capturing frames from the MIPI CSI-2 receiver
>  - abstraction for the ping-pong scheme to allow for future extensions
>  - abstraction for the INTERFACE and CROP parts to allow for future
>    extensions
>  - initial support for different virtual channels (not tested, though,
>    due to the lack of HW)
> and a V4L2 subdevice driver for the Rockchip MIPI CSI-2 Receiver.

The entire patch series was applied and verified on Wolfvision PF5
hardware (with the Wolfvision PF5 IO Expander). In this configuration
the DVP port is exercised via the IO expander, confirming that patches
07–11 function correctly on the target platform; no regressions were
observed. The v10→v11 driver split preserves existing functionality
while improving code readability and maintainability. Excellent work by
the author.

Regards,
Gerald

> 
> The driver can be readily extended to provide support for the RK3588
> VICAP variant. In order to keep things simple, however, this extension
> shall be submitted separately.
> 
> Looking forward to your comments!
> 
> To: Mehdi Djait <mehdi.djait@...ux.intel.com>
> To: Maxime Chevallier <maxime.chevallier@...tlin.com>
> To: Théo Lebrun <theo.lebrun@...tlin.com>
> To: Thomas Petazzoni <thomas.petazzoni@...tlin.com>
> To: Gerald Loacker <gerald.loacker@...fvision.net>
> To: Bryan O'Donoghue <bryan.odonoghue@...aro.org>
> To: Markus Elfring <Markus.Elfring@....de>
> To: Sakari Ailus <sakari.ailus@....fi>
> To: Laurent Pinchart <laurent.pinchart@...asonboard.com>
> To: Mauro Carvalho Chehab <mchehab@...nel.org>
> To: Rob Herring <robh+dt@...nel.org>
> To: Krzysztof Kozlowski <krzk+dt@...nel.org>
> To: Conor Dooley <conor+dt@...nel.org>
> To: Heiko Stuebner <heiko@...ech.de>
> To: Kever Yang <kever.yang@...k-chips.com>
> To: Nicolas Dufresne <nicolas.dufresne@...labora.com>
> To: Sebastian Reichel <sebastian.reichel@...labora.com>
> To: Collabora Kernel Team <kernel@...labora.com>
> To: Paul Kocialkowski <paulk@...-base.io>
> To: Alexander Shiyan <eagle.alexander923@...il.com>
> To: Val Packett <val@...kett.cool>
> To: Rob Herring <robh@...nel.org>
> To: Philipp Zabel <p.zabel@...gutronix.de>
> Cc: linux-media@...r.kernel.org
> Cc: devicetree@...r.kernel.org
> Cc: linux-kernel@...r.kernel.org
> Cc: linux-arm-kernel@...ts.infradead.org
> Cc: linux-rockchip@...ts.infradead.org
> Signed-off-by: Michael Riesch <michael.riesch@...fvision.net>
> Signed-off-by: Michael Riesch <michael.riesch@...labora.com>
> 
> Changes in v11:
> - rkcif: split large driver patch (6/13 of v10) into smaller
>   patches (6-11/17 of v11) (Bryan)
> - rkcsi: replaced devm_reset_control_array_get_exclusive with 
>   devm_reset_control_get_exclusive (Philipp)
> - Link to v10: https://lore.kernel.org/r/20240220-rk3568-vicap-v10-0-62d8a7b209b4@collabora.com
> 
> Changes in v10:
> - rkcsi: fixed error handling in rkcsi_start (Bryan)
> - rkcsi: fixed interrupt references in device tree and bindings
>   (Rob's bot)
> - added missing call to rkcif_mipi_stop_streaming from rkcif_mipi_isr
>   (Mehdi)
> - renamed remaining instances "cif_" -> "rkcif_" in functions
> - Link to v9: https://lore.kernel.org/r/20240220-rk3568-vicap-v9-0-ace1e5cc4a82@collabora.com
> 
> Changes in v9:
> - added compatible for RK3588 MIPI CSI-2 receiver, thus dropped
>   Krzysztof's R-b
> - added interrupts to rkcsi DT binding and RK356x DT
> - added variant specific callback to rkcif-capture-mipi that puts
>   together the CTRL0 register content (which varies between RK3568
>   and RK3588)
> - fixed v4l2_fill_pixfmt_mp() return value handling (Mehdi)
> - Link to v8: https://lore.kernel.org/r/20240220-rk3568-vicap-v8-0-9d9cbc4b524d@collabora.com
> 
> Changes in v8:
> - rebased onto v6.16-rc1
> - fixed RKCIF_MIPI_MAX value in rkcif-common.h
> - fixed rkcsi Kconfig (kernel test robot)
> - sorted rkcsi DT bindings document properly, completed example
>   (Krzysztof)
> - squashed the defconfig patches (Krzysztof), dropped Bryan's R-b
> - Link to v7: https://lore.kernel.org/r/20240220-rk3568-vicap-v7-0-7581fd96a33a@collabora.com
> 
> Changes in v7:
> - moved MIPI CSI-2 receiver driver into separate directory (Laurent)
> - rkcsi: fixed return values (Bryan)
> - rkcsi: fixed v4l2_get_link_freq to use pad instead of control
>   handler (Sakari)
> - rkcsi: added data-lanes property (Mehdi)
> - rkcif: fixed formatting (Bryan)
> - fixed "int" -> "unsigned int" in all for loops (Sakari)
> - rkcif-stream: fixed minimum number of required buffers (Mehdi)
> - rkcif-stream: used guards for the spinlock (Markus and Mehdi)
> - rkcif-stream: made driver less noisy with dev_dbg (Mehdi)
> - rkcif-stream: fixed issues detected by v4l2-compliance (Mehdi)
> - rkcif-dvp-capture: fixed return value propagation in _register()
>   (Mehdi)
> - removed stray "phy-names" from required properties (Rob's bot)
> - Link to v6: https://lore.kernel.org/r/20240220-rk3568-vicap-v6-0-d2f5fbee1551@collabora.com
> 
> Changes in v6:
> - rebased onto v6.15-rc1
> - renamed "MIPI CSI HOST" -> "MIPI CSI RECEIVER" (Laurent)
> - s/@...fvision.net/@...labora.com where appropriate
> - renamed DVP delay property and moved it to the endpoint (Sakari)
> - implemented DT review comments (Krzysztof and Sakari)
> - implemented driver review comments (Sakari)
> - fixed issues raised by media-ci (yet again)
> - added documentation including a RK3568 topology (new patch 1)
>   (Sakari)
> - added patch that enables rkcif in the defconfig (new patch 9)
> - Link to v5: https://lore.kernel.org/r/20250306-v6-8-topic-rk3568-vicap-v5-0-f02152534f3c@wolfvision.net
> 
> Changes in v5:
> - fixed issues raised by media-ci
> - fixed dt bindings (comments by Rob and Sakari)
> - fixed probe on systems with no DVP in DT (comment by Alexander)
> - fixed error path in register offset calculation
> - split off MIPI CSI host driver into separate module (comment
>   by Mehdi)
> - added MODULE_DEVICE_TABLE() for both drivers (comment by Mehdi)
> - Link to v4: https://lore.kernel.org/r/20250219-v6-8-topic-rk3568-vicap-v4-0-e906600ae3b0@wolfvision.net
> 
> Changes in v4:
> - added support for the MIPI CSI-2 receiver (new patches 4, 6, 7, 10)
> - fixed asserts on stream stop
> - fixed register address lookup
> - fixed link validiation callback
> - fixed issues raised by Rob's bot, kernel test robot, and media-ci
> - Link to v3: https://lore.kernel.org/r/20250206-v6-8-topic-rk3568-vicap-v3-0-69d1f19e5c40@wolfvision.net
> 
> Changes in v3:
> - renamed the driver "cif" -> "rkcif"
> - rebased onto v6.14-rc1
> - abstracted the generic INTERFACE+CROP part
> - addressed comments by Rob and Sakari
> - added V4L2 MPLANE formats to DVP
> - added patch that enables the RK3568 VICAP DVP on PF5 IO Expander
> - fixed formatting issues raised by media-ci bot
> - Link to v2: https://lore.kernel.org/r/20241217-v6-8-topic-rk3568-vicap-v2-0-b1d488fcc0d3@wolfvision.net
> 
> Changes in v2:
> - merged with Mehdi's v13
> - refactored the complete driver towards a media controller centric driver
> - abstracted the generic ping-pong stream (can be used for DVP as well as for CSI-2)
> - switched to MPLANE API
> - added support for notifications
> - Link to v1: https://lore.kernel.org/r/20240220-v6-8-topic-rk3568-vicap-v1-0-2680a1fa640b@wolfvision.net
> 
> ---
> Mehdi Djait (2):
>       media: dt-bindings: add rockchip px30 vip
>       arm64: dts: rockchip: add the vip node to px30
> 
> Michael Riesch (15):
>       Documentation: admin-guide: media: add rockchip camera interface
>       media: dt-bindings: video-interfaces: add defines for sampling modes
>       media: dt-bindings: add rockchip rk3568 vicap
>       media: dt-bindings: add rockchip rk3568 mipi csi-2 receiver
>       media: rockchip: add driver for the rockchip mipi csi-2 receiver
>       media: rockchip: add driver for the rockchip camera interface
>       media: rockchip: rkcif: add abstraction for interface and crop blocks
>       media: rockchip: rkcif: add abstraction for dma blocks
>       media: rockchip: rkcif: add support for px30 vip dvp capture
>       media: rockchip: rkcif: add support for rk3568 vicap dvp capture
>       media: rockchip: rkcif: add support for rk3568 vicap mipi capture
>       arm64: defconfig: enable rockchip camera interface and mipi csi-2 receiver
>       arm64: dts: rockchip: add vicap node to rk356x
>       arm64: dts: rockchip: add mipi csi-2 receiver node to rk356x
>       arm64: dts: rockchip: enable vicap dvp on wolfvision pf5 io expander
> 
>  .../admin-guide/media/rkcif-rk3568-vicap.dot       |  21 +
>  Documentation/admin-guide/media/rkcif.rst          |  83 ++
>  Documentation/admin-guide/media/v4l-drivers.rst    |   1 +
>  .../bindings/media/rockchip,px30-vip.yaml          | 122 +++
>  .../bindings/media/rockchip,rk3568-mipi-csi.yaml   | 144 ++++
>  .../bindings/media/rockchip,rk3568-vicap.yaml      | 170 ++++
>  MAINTAINERS                                        |  17 +
>  arch/arm64/boot/dts/rockchip/px30.dtsi             |  12 +
>  .../rk3568-wolfvision-pf5-io-expander.dtso         |  20 +
>  arch/arm64/boot/dts/rockchip/rk356x-base.dtsi      |  78 ++
>  arch/arm64/configs/defconfig                       |   2 +
>  drivers/media/platform/rockchip/Kconfig            |   2 +
>  drivers/media/platform/rockchip/Makefile           |   2 +
>  drivers/media/platform/rockchip/rkcif/Kconfig      |  18 +
>  drivers/media/platform/rockchip/rkcif/Makefile     |   8 +
>  .../platform/rockchip/rkcif/rkcif-capture-dvp.c    | 864 +++++++++++++++++++++
>  .../platform/rockchip/rkcif/rkcif-capture-dvp.h    |  24 +
>  .../platform/rockchip/rkcif/rkcif-capture-mipi.c   | 777 ++++++++++++++++++
>  .../platform/rockchip/rkcif/rkcif-capture-mipi.h   |  22 +
>  .../media/platform/rockchip/rkcif/rkcif-common.h   | 249 ++++++
>  drivers/media/platform/rockchip/rkcif/rkcif-dev.c  | 301 +++++++
>  .../platform/rockchip/rkcif/rkcif-interface.c      | 425 ++++++++++
>  .../platform/rockchip/rkcif/rkcif-interface.h      |  30 +
>  drivers/media/platform/rockchip/rkcif/rkcif-regs.h | 153 ++++
>  .../media/platform/rockchip/rkcif/rkcif-stream.c   | 637 +++++++++++++++
>  .../media/platform/rockchip/rkcif/rkcif-stream.h   |  31 +
>  drivers/media/platform/rockchip/rkcsi/Kconfig      |  16 +
>  drivers/media/platform/rockchip/rkcsi/Makefile     |   3 +
>  drivers/media/platform/rockchip/rkcsi/rkcsi.c      | 741 ++++++++++++++++++
>  include/dt-bindings/media/video-interfaces.h       |   4 +
>  30 files changed, 4977 insertions(+)
> ---
> base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
> change-id: 20240220-rk3568-vicap-b9b3f9925f44
> 
> Best regards,


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ