Re: [PATCH v2 14/15] Documentation: add Intel IPU6 ISYS driver admin-guide doc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bingbu,

On Tue, Jan 09, 2024 at 02:34:48PM +0800, Bingbu Cao wrote:
> Sakari,
> 
> On 1/8/24 5:14 PM, Sakari Ailus wrote:
> > Hi Bingbu,
> > 
> > On Mon, Jan 08, 2024 at 11:51:50AM +0800, Bingbu Cao wrote:
> >> 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.
> > 
> > Yes, I understand that, but this does not explain why you have multiple
> > links between the source pads and video nodes. You can only capture one
> > stream at a time from a video node. The user needs to select the correct
> > video node related to a source pad, not to pick a random video node and
> > then figure out which link to enable.
> 
> The user can select any of the video nodes to one source pad.
> This figure shows that user have the capability to link any source pad
> to any of the video node (in dotted line). In reality, only 1 link is
> active (solid line).

Yes, that's how it's currently implemented but I don't think there's really
a reason to do that. Could you remove all but one link to each video node?

-- 
Regards,

Sakari Ailus




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux