[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <86109309-8200-464a-a167-ae9cef3f41b7@nxp.com>
Date: Wed, 4 Feb 2026 19:30:18 +0100
From: Antoine Bouyer <antoine.bouyer@....com>
To: Jacopo Mondi <jacopo.mondi@...asonboard.com>
Cc: Michael Riesch <michael.riesch@...labora.com>,
julien.vuillaumier@....com, alexi.birlinger@....com, daniel.baluta@....com,
peng.fan@....com, frank.li@....com, laurent.pinchart@...asonboard.com,
mchehab@...nel.org, robh@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org, shawnguo@...nel.org, s.hauer@...gutronix.de,
kernel@...gutronix.de, festevam@...il.com, linux-kernel@...r.kernel.org,
linux-media@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
niklas soderlund <niklas.soderlund@...natech.se>
Subject: Re: Re: [RFC v1 00/11] Add iMX95 neoisp driver
Hi Jacopo
Le 04/02/2026 à 18:12, Jacopo Mondi a écrit :
>
> Hello,
>
> On Tue, Feb 03, 2026 at 07:37:34PM +0100, Jacopo Mondi wrote:
>> Hello
>>
>> On Thu, Jan 29, 2026 at 12:00:24AM +0100, Michael Riesch wrote:
>>> Hi Antoine,
>>>
>>> Thanks for your response.
>>>
>>> On 1/28/26 09:17, Antoine Bouyer wrote:
>>>> Hi Michael
>>>>
>>>> On 1/26/26 10:44 AM, Michael Riesch wrote:
>>>>>
>>>>>
>>>>> Hi Antoine,
>>>>>
>>>>> On 1/23/26 09:09, Antoine Bouyer wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> This RFC patch series introduces the NXP Neo Image Signal Processor
>>>>>> (ISP)
>>>>>> driver, used in the NXP i.MX95 SoC and future devices in the i.MX9
>>>>>> family.
>>>>>> The series also includes updates to the generic v4l2-isp interface to
>>>>>> support extended statistics required by the Neo ISP.
>>>>>>
>>>>>> The Neo ISP processes one or more camera streams, converting RAW formats
>>>>>> into YUV or RGB outputs. Its architecture is largely influenced by the
>>>>>> PISP driver. The hardware supports up to eight contexts, with three sink
>>>>>> pads (main input, HDR input, and parameter buffers) and three source
>>>>>> pads
>>>>>> (RGB output, IR output, and statistics metadata).
>>>>>>
>>>>>> At this stage, both legacy (fixed-size) and extensible (dynamic-size)
>>>>>> parameter/statistics buffers are supported through the generic v4l2-isp
>>>>>> framework, similar to rkisp1 and Mali-C55. The driver currently supports
>>>>>> M2M operation; direct CSI-to-ISP streaming is not yet implemented.
>>>>>
>>>>> How do you envisage the direct CSI-to-ISP streaming shall be supported?
>>>>
>>>> At this stage, this streaming mode still needs to be evaluated on
>>>> neoisp. We should follow the integration model used by existing ISP
>>>> drivers to avoid duplicating solutions.
>>>
>>> Fair point, but I have had the impression that there are not many
>>> examples (if any). The rkisp1 driver, for instance, only supports inline
>>> mode although the HW should be able to do both.
>>>
>>> But any pointers most welcome, I won't claim I have the full overview.
>>>
>>>>
>>>> Below are my initial thoughts on the specific points you raised:
>>>>
>>>>> - How shall the final media graph(s) look like?
>>>>
>>>> The media entities would remain mostly identical, except for the absence
>>>> of ISI. The topology would be a direct linkg from sensor->csi-
>>>>> formatter->neoisp.
>>
>> If support for inline mode has to be added later, the ISP will need to
>> be registered in the same media graph of the CSI-2 receiver to be able
>> to link the two, right ?
yes correct.
>>
>> How do you envision to control the ISP operating mode, because I'm
>> afraid if you register the ISP in its own media graph, you're locking
>> yourself there as implementing inline mode would require a different
>> media topology with all the implications on the rest of the userspace
>> stack.
>>
>> This might not be a problem if you know that the inline vs m2m mode is
>> SoC sythesis time parameter. Some SoCs will integrate neoisp inline, some
>> other as m2m. In this case you'll likely need two pipeline handlers
>> in libcamera, but if that's per SoC-line maybe is acceptable. The fact
>> you suggests in inline mode there won't be an ISI makes me think this
>> actually depends on the SoC design ?
Actually, this is not really at SoC synthesis time, neoisp HW does
support both modes, that is configurable. But ISP HW can run in a single
mode only once it is configured. Streaming mode is tightly coupled with
CSI HW, then ISP cannot be used in M2M mode with another sensor
simultaneously.
>
> One small correction after some more research:
>
> we actually already have a pipeline in libcamera that supports inline
> and (will soon) support m2m: the mali c55 one. My take on "probably
> need two pipeline handlers" was not correct then.
Yes, I saw your patchwork on libcamera about this coming upgrade. Spent
some time analyzing it ':) Seems we are quite aligned as per my
understanding: inline mode (i.e. streaming mode with neoisp) _or_ M2M
mode using IVC video device from Mali. Is that right ?
>
> As said, Mali-C55 can be integrated inline or in m2m mode and this is
> decided based on the device tree endpoint connections.
Good. Do you have an example available ?
>
> So, if you know neoisp will be integrated either inline or m2m in
> different SoC lines, maybe deferring it to device tree is good enough
> at the expense of a slightly more complicated pipeline ?
As said, SoC/ISP HW does support both modes. But I think that the
selection can be done in device tree too. So that after bootup, a camera
will be used only in 1 mode.
>
> I guess this has implications on the bindings definition as well..
Most probably yes. Can this be done as second phase once evaluation is
completed ?
>
>>
>> However, if you plan to allow deferring inline/m2m mode selection to
>> the system integrators or even have it as a run-time parameter, then
>> you should really consider having the ISP in the same media graph as
>> the CSI-2 receiver and operate the whole CSI-2/ISI/ISP as a single
>> media graph, where you could select the operating mode through media link
>> enablement or dts endpoint connections
>>
>> Niklas (in cc) has addressed a similar situation, where inline and m2m
>> mode can be selected by link enablement at runtime here
>> https://patchwork.linuxtv.org/project/linux-media/patch/20251225171054.1370856-3-niklas.soderlund+renesas@ragnatech.se/
>> (see risp_cs_internal_ops)
>>
>>>
>>> OK, I thought that ISI was still around...
>>>
>>>>
>>>>> - How many media devices are registered and which driver registers it
>>>>> or them?
>>>>
>>>> That will be part of the evaluation. My initial assumption is that
>>>> neoisp would be the appropriate component to register the media device
>>>> in this mode, since ISI is not involved, and ISI currently performs the
>>>> registration in the M2M configuration.
>>
>> Isn't the ISP registering its own media graph ?
Yes, 8 copies of ISP media graph, that can be used with the 8 output
video devices of the ISI media graph.
>>
>> Can we get a copy of all media graphs on an i.MX95 system including
>> the ISI and the CSI-2 receiver ?
Here is an example with multiple sensors. Or do you need it in another
format ?
digraph board {
rankdir=TB
n00000001 [label="{{<port0> 0 | <port1> 1 | <port2> 2 | <port3>
3 | <port4> 4} | crossbar\n/dev/v4l-subdev8 | {<port5> 5 | <port6> 6 |
<port7> 7 | <port8> 8 | <port9> 9 | <port10> 10 | <port11> 11 | <port12>
12}}", shape=Mrecord, style=filled, fillcolor=green]
n00000001:port5 -> n0000000f:port0 [style=bold]
n00000001:port6 -> n0000001a:port0 [style=bold]
n00000001:port7 -> n00000025:port0 [style=bold]
n00000001:port8 -> n00000030:port0 [style=bold]
n00000001:port9 -> n0000003b:port0 [style=bold]
n00000001:port10 -> n00000046:port0 [style=bold]
n00000001:port11 -> n00000051:port0 [style=bold]
n00000001:port12 -> n0000005c:port0 [style=bold]
n0000000f [label="{{<port0> 0} | mxc_isi.0\n/dev/v4l-subdev9 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n0000000f:port1 -> n00000012 [style=bold]
n00000012 [label="mxc_isi.0.capture\n/dev/video8", shape=box,
style=filled, fillcolor=yellow]
n0000001a [label="{{<port0> 0} | mxc_isi.1\n/dev/v4l-subdev10 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n0000001a:port1 -> n0000001d [style=bold]
n0000001d [label="mxc_isi.1.capture\n/dev/video9", shape=box,
style=filled, fillcolor=yellow]
n00000025 [label="{{<port0> 0} | mxc_isi.2\n/dev/v4l-subdev11 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000025:port1 -> n00000028 [style=bold]
n00000028 [label="mxc_isi.2.capture\n/dev/video10", shape=box,
style=filled, fillcolor=yellow]
n00000030 [label="{{<port0> 0} | mxc_isi.3\n/dev/v4l-subdev12 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000030:port1 -> n00000033 [style=bold]
n00000033 [label="mxc_isi.3.capture\n/dev/video13", shape=box,
style=filled, fillcolor=yellow]
n0000003b [label="{{<port0> 0} | mxc_isi.4\n/dev/v4l-subdev13 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n0000003b:port1 -> n0000003e [style=bold]
n0000003e [label="mxc_isi.4.capture\n/dev/video14", shape=box,
style=filled, fillcolor=yellow]
n00000046 [label="{{<port0> 0} | mxc_isi.5\n/dev/v4l-subdev14 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000046:port1 -> n00000049 [style=bold]
n00000049 [label="mxc_isi.5.capture\n/dev/video21", shape=box,
style=filled, fillcolor=yellow]
n00000051 [label="{{<port0> 0} | mxc_isi.6\n/dev/v4l-subdev15 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000051:port1 -> n00000054 [style=bold]
n00000054 [label="mxc_isi.6.capture\n/dev/video22", shape=box,
style=filled, fillcolor=yellow]
n0000005c [label="{{<port0> 0} | mxc_isi.7\n/dev/v4l-subdev16 |
{<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n0000005c:port1 -> n0000005f [style=bold]
n0000005f [label="mxc_isi.7.capture\n/dev/video23", shape=box,
style=filled, fillcolor=yellow]
n00000067 [label="mxc_isi.output\n", shape=box, style=filled,
fillcolor=yellow]
n00000067 -> n00000001:port4 [style=bold]
n0000006e [label="{{<port0> 0} |
4ac10000.syscon:formatter@20\n/dev/v4l-subdev17 | {<port1> 1}}",
shape=Mrecord, style=filled, fillcolor=green]
n0000006e:port1 -> n00000001:port2 [style=bold]
n00000073 [label="{{<port0> 0} |
csidev-4ad30000.csi\n/dev/v4l-subdev18 | {<port1> 1}}", shape=Mrecord,
style=filled, fillcolor=green]
n00000073:port1 -> n0000006e:port0 [style=bold]
n00000078 [label="{{<port0> 0 | <port1> 1 | <port2> 2 | <port3>
3} | max96724 2-0027\n/dev/v4l-subdev19 | {<port4> 4 | <port5> 5}}",
shape=Mrecord, style=filled, fillcolor=green]
n00000078:port4 -> n00000073:port0 [style=dashed]
n00000081 [label="{{} | mx95mbcam 8-0040\n/dev/v4l-subdev20 |
{<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000081:port0 -> n00000078:port0 [style=bold]
n00000085 [label="{{} | mx95mbcam 9-0040\n/dev/v4l-subdev21 |
{<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000085:port0 -> n00000078:port1 [style=bold]
n00000089 [label="{{} | mx95mbcam 10-0040\n/dev/v4l-subdev22 |
{<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000089:port0 -> n00000078:port2 [style=bold]
n0000008d [label="{{} | mx95mbcam 11-0040\n/dev/v4l-subdev23 |
{<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n0000008d:port0 -> n00000078:port3 [style=bold]
}
>>
>> If I'm not mistaken you'll have 8 copies of the ISP media graphs, and
>> that's exactly what we're working on with the context framework :)
>>
Ok. Then I should have a look to context framework too ...
>>
>>>
>>> ... since it is not, your assumption seems very reasonable.
>>>
>>>>
>>>>> - How can the user decide whether direct (csi2isp) or indirect
>>>>> (mem2mem) streaming shall be used?
>>>>
>>>> That will also be part of the evaluation. From dts would be my first
>>>> option, but may prevent using both modes on same platform then.
>>>
>>> Of course this depends what the hardware is able to do, but in case the
>>> HW is reconfigurable easily, I doubt that device tree is a good choice
>>> to solve that.
>>>>
>>>>>
>>>>> While it is certainly OK to introduce this support only at a later
>>>>> stage, it makes sense to consider this right from the start to avoid
>>>>> some nasty changes e.g. in how this hardware is exposed to user space.
>>>>>
>>>>> Also, we are facing a similiar challenge with recent Rockchip ISP
>>>>> hardware (RK3588, RK3576, ...) and it would be great to hear your
>>>>> thoughts about that.
>>>>
>>>> Is there an existing discussion thread available on this topic? I would
>>>> be very interested in following it.
>>>
>>> Not yet, I am afraid. But there should be one or two soon (TM) :-)
>>
>> It's probably time to have one :)
Good. Please loop me in ;)
BR
Antoine
>>
>>>
>>> Thanks and regards,
>>> Michael
>>>
>>>>
>>>> Thanks
>>>> Antoine
>>>>
>>>>>
>>>>> Thanks in advance and best regards,
>>>>> Michael
>>>>>
>>>>>>
>>>>>> This series is posted as RFC because extending the v4l2-isp interface
>>>>>> may
>>>>>> overlap with ongoing work. If similar development already exists, I am
>>>>>> happy to rebase or adapt the series accordingly. If preferred, the
>>>>>> series
>>>>>> can also be split into two parts: the v4l2-isp rework and the Neo ISP
>>>>>> driver introduction.
>>>>>>
>>>>>> A few checkpatch warnings in v4l2-ioctl.c remain intentionally to stay
>>>>>> consistent with the existing style in that file.
>>>>>>
>>>>>> Testing was performed on the i.MX95 EVK using the media/next kernel in
>>>>>> standalone M2M mode. End-to-end camera-to-ISP capture has been validated
>>>>>> using the downstream NXP kernel, as some hardware dependencies are not
>>>>>> yet upstreamed.
>>>>>>
>>>>>> Thanks,
>>>>>> Antoine
>>>>>>
>>>>>> ---
>>>>>> Here are v4l2-compliance test results:
>>>>>>
>>>>>> v4l2-compliance 1.28.1-5233, 64 bits, 64-bit time_t
>>>>>> v4l2-compliance SHA: fc15e229d9d3 2024-07-23 19:22:15
>>>>>>
>>>>>> Compliance test for neoisp device /dev/media0:
>>>>>>
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MEDIA_IOC_DEVICE_INFO: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/media0 open: OK
>>>>>> test MEDIA_IOC_DEVICE_INFO: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Media Controller ioctls:
>>>>>> test MEDIA_IOC_G_TOPOLOGY: OK
>>>>>> Entities: 7 Interfaces: 7 Pads: 12 Links: 13
>>>>>> test MEDIA_IOC_ENUM_ENTITIES/LINKS: OK
>>>>>> test MEDIA_IOC_SETUP_LINK: OK
>>>>>>
>>>>>> Total for neoisp device /dev/media0: 8, Succeeded: 8, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/video0:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Card type : neoisp
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x8ca03000
>>>>>> Video Capture Multiplanar
>>>>>> Video Output Multiplanar
>>>>>> Metadata Capture
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Device Capabilities
>>>>>> Device Caps : 0x04202000
>>>>>> Video Output Multiplanar
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x0300000a
>>>>>> Type : V4L Video
>>>>>> Entity Info:
>>>>>> ID : 0x00000008 (8)
>>>>>> Name : neoisp-input0
>>>>>> Function : V4L2 I/O
>>>>>> Pad 0x01000009 : 0: Source
>>>>>> Link 0x0200000c: to remote pad 0x1000002 of entity
>>>>>> 'neoisp' (Image Signal Processor): Data, Enabled, Immutable
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/video0 open: OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test VIDIOC_G/S_PRIORITY: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
>>>>>> test VIDIOC_QUERYCTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S_CTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 0 Private Controls: 0
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK
>>>>>> test VIDIOC_TRY_FMT: OK
>>>>>> test VIDIOC_S_FMT: OK
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/video0: 48, Succeeded: 48, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/video1:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Card type : neoisp
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x8ca03000
>>>>>> Video Capture Multiplanar
>>>>>> Video Output Multiplanar
>>>>>> Metadata Capture
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Device Capabilities
>>>>>> Device Caps : 0x04202000
>>>>>> Video Output Multiplanar
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x03000010
>>>>>> Type : V4L Video
>>>>>> Entity Info:
>>>>>> ID : 0x0000000e (14)
>>>>>> Name : neoisp-input1
>>>>>> Function : V4L2 I/O
>>>>>> Pad 0x0100000f : 0: Source
>>>>>> Link 0x02000012: to remote pad 0x1000003 of entity
>>>>>> 'neoisp' (Image Signal Processor): Data
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/video1 open: OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test VIDIOC_G/S_PRIORITY: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
>>>>>> test VIDIOC_QUERYCTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S_CTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 0 Private Controls: 0
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK
>>>>>> test VIDIOC_TRY_FMT: OK
>>>>>> test VIDIOC_S_FMT: OK
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/video1: 48, Succeeded: 48, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/video2:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Card type : neoisp
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x8ca03000
>>>>>> Video Capture Multiplanar
>>>>>> Video Output Multiplanar
>>>>>> Metadata Capture
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Device Capabilities
>>>>>> Device Caps : 0x0c200000
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x03000016
>>>>>> Type : V4L Video
>>>>>> Entity Info:
>>>>>> ID : 0x00000014 (20)
>>>>>> Name : neoisp-params
>>>>>> Function : V4L2 I/O
>>>>>> Pad 0x01000015 : 0: Source
>>>>>> Link 0x02000018: to remote pad 0x1000004 of entity
>>>>>> 'neoisp' (Image Signal Processor): Data, Enabled
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/video2 open: OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test VIDIOC_G/S_PRIORITY: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
>>>>>> test VIDIOC_QUERYCTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S_CTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 0 Private Controls: 0
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK
>>>>>> test VIDIOC_TRY_FMT: OK
>>>>>> test VIDIOC_S_FMT: OK
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK (Not Supported)
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK (Not Supported)
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/video2: 48, Succeeded: 48, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/video3:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Card type : neoisp
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x8ca03000
>>>>>> Video Capture Multiplanar
>>>>>> Video Output Multiplanar
>>>>>> Metadata Capture
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Device Capabilities
>>>>>> Device Caps : 0x04201000
>>>>>> Video Capture Multiplanar
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x0300001c
>>>>>> Type : V4L Video
>>>>>> Entity Info:
>>>>>> ID : 0x0000001a (26)
>>>>>> Name : neoisp-frame
>>>>>> Function : V4L2 I/O
>>>>>> Pad 0x0100001b : 0: Sink
>>>>>> Link 0x0200001e: from remote pad 0x1000005 of entity
>>>>>> 'neoisp' (Image Signal Processor): Data, Enabled
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/video3 open: OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test VIDIOC_G/S_PRIORITY: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
>>>>>> test VIDIOC_QUERYCTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S_CTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 0 Private Controls: 0
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK
>>>>>> test VIDIOC_TRY_FMT: OK
>>>>>> test VIDIOC_S_FMT: OK
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK (Not Supported)
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/video3: 48, Succeeded: 48, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/video4:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Card type : neoisp
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x8ca03000
>>>>>> Video Capture Multiplanar
>>>>>> Video Output Multiplanar
>>>>>> Metadata Capture
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Device Capabilities
>>>>>> Device Caps : 0x04201000
>>>>>> Video Capture Multiplanar
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x03000022
>>>>>> Type : V4L Video
>>>>>> Entity Info:
>>>>>> ID : 0x00000020 (32)
>>>>>> Name : neoisp-ir
>>>>>> Function : V4L2 I/O
>>>>>> Pad 0x01000021 : 0: Sink
>>>>>> Link 0x02000024: from remote pad 0x1000006 of entity
>>>>>> 'neoisp' (Image Signal Processor): Data
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/video4 open: OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test VIDIOC_G/S_PRIORITY: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
>>>>>> test VIDIOC_QUERYCTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S_CTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 0 Private Controls: 0
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK
>>>>>> test VIDIOC_TRY_FMT: OK
>>>>>> test VIDIOC_S_FMT: OK
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK (Not Supported)
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/video4: 48, Succeeded: 48, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/video5:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Card type : neoisp
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x8ca03000
>>>>>> Video Capture Multiplanar
>>>>>> Video Output Multiplanar
>>>>>> Metadata Capture
>>>>>> Metadata Output
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Device Capabilities
>>>>>> Device Caps : 0x04a00000
>>>>>> Metadata Capture
>>>>>> Streaming
>>>>>> Extended Pix Format
>>>>>> Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x03000028
>>>>>> Type : V4L Video
>>>>>> Entity Info:
>>>>>> ID : 0x00000026 (38)
>>>>>> Name : neoisp-stats
>>>>>> Function : V4L2 I/O
>>>>>> Pad 0x01000027 : 0: Sink
>>>>>> Link 0x0200002a: from remote pad 0x1000007 of entity
>>>>>> 'neoisp' (Image Signal Processor): Data, Enabled
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/video5 open: OK
>>>>>> test VIDIOC_QUERYCAP: OK
>>>>>> test VIDIOC_G/S_PRIORITY: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
>>>>>> test VIDIOC_QUERYCTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S_CTRL: OK (Not Supported)
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 0 Private Controls: 0
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK
>>>>>> test VIDIOC_TRY_FMT: OK
>>>>>> test VIDIOC_S_FMT: OK
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK (Not Supported)
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK (Not Supported)
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/video5: 48, Succeeded: 48, Failed: 0,
>>>>>> Warnings: 0
>>>>>> --------------------------------------------------------------------------------
>>>>>> Compliance test for neoisp device /dev/v4l-subdev0:
>>>>>>
>>>>>> Driver Info:
>>>>>> Driver version : 6.19.0
>>>>>> Capabilities : 0x00000000
>>>>>> Client Capabilities: 0x0000000000000002
>>>>>> interval-uses-which Media Driver Info:
>>>>>> Driver name : neoisp
>>>>>> Model : neoisp
>>>>>> Serial :
>>>>>> Bus info : platform:4ae00000.isp
>>>>>> Media version : 6.19.0
>>>>>> Hardware revision: 0x00000002 (2)
>>>>>> Driver version : 6.19.0
>>>>>> Interface Info:
>>>>>> ID : 0x0300002c
>>>>>> Type : V4L Sub-Device
>>>>>> Entity Info:
>>>>>> ID : 0x00000001 (1)
>>>>>> Name : neoisp
>>>>>> Function : Image Signal Processor
>>>>>> Pad 0x01000002 : 0: Sink
>>>>>> Link 0x0200000c: from remote pad 0x1000009 of entity
>>>>>> 'neoisp-input0' (V4L2 I/O): Data, Enabled, Immutable
>>>>>> Pad 0x01000003 : 1: Sink
>>>>>> Link 0x02000012: from remote pad 0x100000f of entity
>>>>>> 'neoisp-input1' (V4L2 I/O): Data
>>>>>> Pad 0x01000004 : 2: Sink
>>>>>> Link 0x02000018: from remote pad 0x1000015 of entity
>>>>>> 'neoisp-params' (V4L2 I/O): Data, Enabled
>>>>>> Pad 0x01000005 : 3: Source
>>>>>> Link 0x0200001e: to remote pad 0x100001b of entity 'neoisp-
>>>>>> frame' (V4L2 I/O): Data, Enabled
>>>>>> Pad 0x01000006 : 4: Source
>>>>>> Link 0x02000024: to remote pad 0x1000021 of entity 'neoisp-
>>>>>> ir' (V4L2 I/O): Data
>>>>>> Pad 0x01000007 : 5: Source
>>>>>> Link 0x0200002a: to remote pad 0x1000027 of entity 'neoisp-
>>>>>> stats' (V4L2 I/O): Data, Enabled
>>>>>>
>>>>>> Required ioctls:
>>>>>> test MC information (see 'Media Driver Info' above): OK
>>>>>> test VIDIOC_SUDBEV_QUERYCAP: OK
>>>>>> test invalid ioctls: OK
>>>>>>
>>>>>> Allow for multiple opens:
>>>>>> test second /dev/v4l-subdev0 open: OK
>>>>>> test VIDIOC_SUBDEV_QUERYCAP: OK
>>>>>> test for unlimited opens: OK
>>>>>>
>>>>>> Debug ioctls:
>>>>>> test VIDIOC_LOG_STATUS: OK (Not Supported)
>>>>>>
>>>>>> Input ioctls:
>>>>>> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>>>>> Inputs: 0 Audio Inputs: 0 Tuners: 0
>>>>>>
>>>>>> Output ioctls:
>>>>>> test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>>>>> test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>>>>> test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>>>>> test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>>>>> Outputs: 0 Audio Outputs: 0 Modulators: 0
>>>>>>
>>>>>> Input/Output configuration ioctls:
>>>>>> test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>>>>> test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>>>>> test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>>>>> test VIDIOC_G/S_EDID: OK (Not Supported)
>>>>>>
>>>>>> Sub-Device ioctls (Sink Pad 0):
>>>>>> Try Stream 0
>>>>>> test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> Active Stream 0
>>>>>> test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
>>>>>>
>>>>>> Sub-Device ioctls (Sink Pad 1):
>>>>>> Try Stream 0
>>>>>> test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> Active Stream 0
>>>>>> test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
>>>>>>
>>>>>> Sub-Device ioctls (Sink Pad 2):
>>>>>> Try Stream 0
>>>>>> test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> Active Stream 0
>>>>>> test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
>>>>>>
>>>>>> Sub-Device ioctls (Source Pad 3):
>>>>>> Try Stream 0
>>>>>> test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> Active Stream 0
>>>>>> test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
>>>>>>
>>>>>> Sub-Device ioctls (Source Pad 4):
>>>>>> Try Stream 0
>>>>>> test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> Active Stream 0
>>>>>> test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
>>>>>>
>>>>>> Sub-Device ioctls (Source Pad 5):
>>>>>> Try Stream 0
>>>>>> test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> Active Stream 0
>>>>>> test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/
>>>>>> FRAME_INTERVAL: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FMT: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>>>>>> test Active VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
>>>>>>
>>>>>> Control ioctls:
>>>>>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
>>>>>> test VIDIOC_QUERYCTRL: OK
>>>>>> test VIDIOC_G/S_CTRL: OK
>>>>>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
>>>>>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
>>>>>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>>>>> Standard Controls: 1 Private Controls: 1
>>>>>>
>>>>>> Format ioctls:
>>>>>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not
>>>>>> Supported)
>>>>>> test VIDIOC_G/S_PARM: OK (Not Supported)
>>>>>> test VIDIOC_G_FBUF: OK (Not Supported)
>>>>>> test VIDIOC_G_FMT: OK (Not Supported)
>>>>>> test VIDIOC_TRY_FMT: OK (Not Supported)
>>>>>> test VIDIOC_S_FMT: OK (Not Supported)
>>>>>> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>>>>> test Cropping: OK (Not Supported)
>>>>>> test Composing: OK (Not Supported)
>>>>>> test Scaling: OK (Not Supported)
>>>>>>
>>>>>> Codec ioctls:
>>>>>> test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>>>>> test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>>>>> test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>>>>>
>>>>>> Buffer ioctls:
>>>>>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported)
>>>>>> test CREATE_BUFS maximum buffers: OK
>>>>>> test VIDIOC_REMOVE_BUFS: OK
>>>>>> test VIDIOC_EXPBUF: OK (Not Supported)
>>>>>> test Requests: OK (Not Supported)
>>>>>>
>>>>>> Total for neoisp device /dev/v4l-subdev0: 88, Succeeded: 88, Failed:
>>>>>> 0, Warnings: 0
>>>>>>
>>>>>> Grand Total for neoisp device /dev/media0: 384, Succeeded: 384,
>>>>>> Failed: 0, Warnings: 0
>>>>>>
>>>>>> ---
>>>>>> Antoine Bouyer (11):
>>>>>> media: uapi: v4l2-isp: Add v4l2 ISP extensible statistics definitions
>>>>>> media: v4l2-isp: Add helper function to compute extended stats size
>>>>>> media: Documentation: uapi: Update V4L2 ISP for extensible stats
>>>>>> media: Documentation: Add NXP neoisp driver documentation
>>>>>> dt-bindings: media: Add nxp neoisp support
>>>>>> media: v4l2-ctrls: Add user control base for NXP neoisp controls
>>>>>> media: Add meta formats supported by NXP neoisp driver
>>>>>> media: uapi: Add NXP NEOISP user interface header file
>>>>>> media: platform: Add NXP Neoisp Image Signal Processor
>>>>>> media: platform: neoisp: Add debugfs support
>>>>>> arm64: dts: freescale: imx95: Add NXP neoisp device tree node
>>>>>>
>>>>>> .../admin-guide/media/nxp-neoisp-diagram.dot | 22 +
>>>>>> .../admin-guide/media/nxp-neoisp.dot | 16 +
>>>>>> .../admin-guide/media/nxp-neoisp.rst | 189 ++
>>>>>> .../admin-guide/media/v4l-drivers.rst | 1 +
>>>>>> .../devicetree/bindings/media/nxp,neoisp.yaml | 65 +
>>>>>> .../userspace-api/media/v4l/meta-formats.rst | 1 +
>>>>>> .../media/v4l/metafmt-nxp-neoisp.rst | 114 +
>>>>>> .../userspace-api/media/v4l/v4l2-isp.rst | 42 +-
>>>>>> MAINTAINERS | 9 +
>>>>>> .../boot/dts/freescale/imx95-19x19-evk.dts | 4 +
>>>>>> arch/arm64/boot/dts/freescale/imx95.dtsi | 11 +
>>>>>> drivers/media/platform/nxp/Kconfig | 1 +
>>>>>> drivers/media/platform/nxp/Makefile | 1 +
>>>>>> drivers/media/platform/nxp/neoisp/Kconfig | 15 +
>>>>>> drivers/media/platform/nxp/neoisp/Makefile | 8 +
>>>>>> drivers/media/platform/nxp/neoisp/neoisp.h | 270 ++
>>>>>> .../media/platform/nxp/neoisp/neoisp_ctx.c | 2798 +++++++++++++++++
>>>>>> .../media/platform/nxp/neoisp/neoisp_ctx.h | 85 +
>>>>>> .../platform/nxp/neoisp/neoisp_debugfs.c | 503 +++
>>>>>> .../media/platform/nxp/neoisp/neoisp_fmt.h | 509 +++
>>>>>> drivers/media/platform/nxp/neoisp/neoisp_hw.h | 577 ++++
>>>>>> .../media/platform/nxp/neoisp/neoisp_main.c | 1999 ++++++++++++
>>>>>> .../media/platform/nxp/neoisp/neoisp_nodes.h | 60 +
>>>>>> .../media/platform/nxp/neoisp/neoisp_regs.h | 2501 +++++++++++++++
>>>>>> drivers/media/v4l2-core/v4l2-ioctl.c | 4 +
>>>>>> include/media/v4l2-isp.h | 13 +
>>>>>> include/uapi/linux/media/nxp/nxp_neoisp.h | 1968 ++++++++++++
>>>>>> include/uapi/linux/media/v4l2-isp.h | 85 +
>>>>>> include/uapi/linux/v4l2-controls.h | 6 +
>>>>>> include/uapi/linux/videodev2.h | 6 +
>>>>>> 30 files changed, 11880 insertions(+), 3 deletions(-)
>>>>>> create mode 100644 Documentation/admin-guide/media/nxp-neoisp-
>>>>>> diagram.dot
>>>>>> create mode 100644 Documentation/admin-guide/media/nxp-neoisp.dot
>>>>>> create mode 100644 Documentation/admin-guide/media/nxp-neoisp.rst
>>>>>> create mode 100644 Documentation/devicetree/bindings/media/
>>>>>> nxp,neoisp.yaml
>>>>>> create mode 100644 Documentation/userspace-api/media/v4l/metafmt-
>>>>>> nxp-neoisp.rst
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/Kconfig
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/Makefile
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp.h
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_ctx.c
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_ctx.h
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_debugfs.c
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_fmt.h
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_hw.h
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_main.c
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_nodes.h
>>>>>> create mode 100644 drivers/media/platform/nxp/neoisp/neoisp_regs.h
>>>>>> create mode 100644 include/uapi/linux/media/nxp/nxp_neoisp.h
>>>>>>
>>>>>
>>>>
>>>
>>>
>>
Powered by blists - more mailing lists