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]

 



Sakari,

On 1/9/24 4:55 PM, Sakari Ailus wrote:
> 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?
>

Ack. I generated this graph by media-ctl and dot automatically.
Let me try to draw a new one.

Thanks!

-- 
Best regards,
Bingbu Cao




[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