Sakari, On 10/25/23 8:15 PM, Sakari Ailus wrote: > Hi Bingbu, > > On Tue, Oct 24, 2023 at 07:29:23PM +0800, bingbu.cao@xxxxxxxxx wrote: >> From: Bingbu Cao <bingbu.cao@xxxxxxxxx> >> >> This document mainly describe the functionality of IPU6 and >> IPU6 isys driver, and gives an example that how user can do >> imaging capture with tools. >> >> Signed-off-by: Bingbu Cao <bingbu.cao@xxxxxxxxx> >> --- >> Documentation/admin-guide/media/ipu6-isys.rst | 159 +++ >> .../admin-guide/media/ipu6_isys_graph.svg | 338 +++++ >> .../admin-guide/media/ipu6_isys_multi.svg | 1124 +++++++++++++++++ >> .../admin-guide/media/v4l-drivers.rst | 1 + >> 4 files changed, 1622 insertions(+) >> create mode 100644 Documentation/admin-guide/media/ipu6-isys.rst >> create mode 100644 Documentation/admin-guide/media/ipu6_isys_graph.svg >> create mode 100644 Documentation/admin-guide/media/ipu6_isys_multi.svg >> >> diff --git a/Documentation/admin-guide/media/ipu6-isys.rst b/Documentation/admin-guide/media/ipu6-isys.rst >> new file mode 100644 >> index 000000000000..fb4d355e1522 >> --- /dev/null >> +++ b/Documentation/admin-guide/media/ipu6-isys.rst >> @@ -0,0 +1,159 @@ >> +.. SPDX-License-Identifier: GPL-2.0 >> + >> +.. include:: <isonum.txt> >> + >> +=============================================================== >> +Intel Image Processing Unit 6 (IPU6) Input System driver >> +=============================================================== > > Too many '='s. > >> + >> +Copyright |copy| 2023 Intel Corporation >> + >> +Introduction >> +============ >> + >> +This file documents the Intel IPU6 (6th generation Image Processing Unit) >> +Input System (MIPI CSI2 receiver) drivers located under >> +drivers/media/pci/intel/ipu6. >> + >> +The Intel IPU6 can be found in certain Intel Chipsets but not in all SKUs: >> + >> +* TigerLake >> +* JasperLake >> +* AlderLake >> +* RaptorLake >> +* MeteorLake >> + >> +Intel IPU6 is made up of two components - Input System (ISYS) and Processing >> +System (PSYS). >> + >> +The Input System mainly works as MIPI CSI2 receiver which receives and >> +processes the imaging data from the sensors and outputs the frames to memory. >> + >> +There are 2 driver modules - intel_ipu6 and intel_ipu6_isys. intel_ipu6 is an >> +IPU6 common driver which does PCI configuration, firmware loading and parsing, >> +firmware authentication, DMA mapping and IPU-MMU (internal Memory mapping Unit) >> +configuration. intel_ipu6_isys implements V4L2, Media Controller and V4L2 >> +sub-device interfaces. The IPU6 ISYS driver supports camera sensors connected >> +to the IPU6 ISYS through V4L2 sub-device sensor drivers. >> + >> +.. Note:: See Documentation/driver-api/media/drivers/ipu6.rst for more >> + information about the IPU6 hardware. > > A direct reference would be nice. > >> + >> + >> +Input system driver >> +=================== >> + >> +The input System driver mainly configures CSI2 DPHY, constructs the firmware >> +stream configuration, sends commands to firmware, gets response from hardware >> +and firmware and then returns buffers to user. >> +The ISYS is represented as several V4L2 sub-devices - 'Intel IPU6 CSI2 $port', >> +which provide V4L2 subdev interfaces to the user space, there are also several >> +video nodes for each CSI-2 stream capture - 'Intel IPU6 ISYS capture $num' which >> +provide interface to user to set formats, queue buffers and streaming. >> + >> +.. kernel-figure:: ipu6_isys_graph.svg >> + :alt: ipu6 isys media graph without multiple streams support >> + >> + ipu6 isys media graph without multiple streams support >> + >> +.. kernel-figure:: ipu6_isys_multi.svg >> + :alt: ipu6 isys media graph with multiple streams support >> + >> + ipu6 isys media graph with multiple streams support > > Is there a reason for having links from the CSI-2 receivers' source pads to > multiple video nodes? Isn't a single one enough? > Sorry, I forgot to reply before. Firmware sees each MIPI VC as a single stream, for multiple VCs case, SW need create multiple firmware streams. <snip> -- Best regards, Bingbu Cao