Message ID | f60def26-fe4c-f4d7-20ff-cc35cc4f1eea@redhat.com |
---|---|
State | Not Applicable |
Headers | show |
Series |
|
Related | show |
Hi Hans, On Sun, Oct 01, 2023 at 11:14:33AM +0200, Hans de Goede via libcamera-devel wrote: > Hi All, > > I have raw bayer capture working from the cmdline, but after this naive patch: > > --- a/src/libcamera/pipeline/simple/simple.cpp > +++ b/src/libcamera/pipeline/simple/simple.cpp > @@ -196,6 +196,7 @@ static const SimplePipelineInfo supportedDevices[] = { > { "mxc-isi", {} }, > { "qcom-camss", {} }, > { "sun6i-csi", {} }, > + { "intel-ipu6", {} }, > }; > > } /* namespace */ > > > qcam still does not see the camera. I believe that this is likely caused > by the CSI2-receiver on the IPU6 not being so simple. It appears to have > some sort of cross-switch giving it a whole bunch of different inputs > and outputs and we need to set that up to connect the CSI data from the sensor > to one of the inputs and likewise make it dump the raw bayer data into > /dev/video#. Could you provide the output of media-ctl --print-dot ? It will help visualize the topology, the text representation is a monster. > Specifically I need to run the following script before capturing raw > bayer from /dev/video0 : > > ``` > #!/bin/bash > > MDEV=/dev/media0 > > media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" > > media-ctl -d $MDEV -V "\"ov2740 19-0036\":0 [fmt:SGRBG10/1932x1092]" > media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":0 [fmt:SGRBG10/1932x1092]" > media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":1 [fmt:SGRBG10/1932x1092]" > > media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" > media-ctl -d $MDEV -l "\"Intel IPU6 CSI2 1\":1 -> \"Intel IPU6 ISYS Capture 0\":0[5]" > ``` > > Full media-ctl -p output below. So I guess that even without the ISP IPU6 > is probably going to need its own pipelinehandler, or am I missing something here? [snip]
Hi Hans, On 01.10.2023 12:32, Laurent Pinchart via libcamera-devel wrote: > Hi Hans, > > On Sun, Oct 01, 2023 at 11:14:33AM +0200, Hans de Goede via libcamera-devel wrote: >> Hi All, >> >> I have raw bayer capture working from the cmdline, but after this naive patch: >> >> --- a/src/libcamera/pipeline/simple/simple.cpp >> +++ b/src/libcamera/pipeline/simple/simple.cpp >> @@ -196,6 +196,7 @@ static const SimplePipelineInfo supportedDevices[] = { >> { "mxc-isi", {} }, >> { "qcom-camss", {} }, >> { "sun6i-csi", {} }, >> + { "intel-ipu6", {} }, >> }; >> >> } /* namespace */ >> >> >> qcam still does not see the camera. I believe that this is likely caused >> by the CSI2-receiver on the IPU6 not being so simple. It appears to have >> some sort of cross-switch giving it a whole bunch of different inputs >> and outputs and we need to set that up to connect the CSI data from the sensor >> to one of the inputs and likewise make it dump the raw bayer data into >> /dev/video#. > > Could you provide the output of media-ctl --print-dot ? It will help > visualize the topology, the text representation is a monster. Also if you prepend your qcam command with LIBCAMERA_LOG_LEVELS=SimplePipeline:DEBUG you will see how SimplePipeline handler is trying to configure the pipeline. Thanks, Andrey >> Specifically I need to run the following script before capturing raw >> bayer from /dev/video0 : >> >> ``` >> #!/bin/bash >> >> MDEV=/dev/media0 >> >> media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" >> >> media-ctl -d $MDEV -V "\"ov2740 19-0036\":0 [fmt:SGRBG10/1932x1092]" >> media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":0 [fmt:SGRBG10/1932x1092]" >> media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":1 [fmt:SGRBG10/1932x1092]" >> >> media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" >> media-ctl -d $MDEV -l "\"Intel IPU6 CSI2 1\":1 -> \"Intel IPU6 ISYS Capture 0\":0[5]" >> ``` >> >> Full media-ctl -p output below. So I guess that even without the ISP IPU6 >> is probably going to need its own pipelinehandler, or am I missing something here? > > [snip] >
Hi, On 10/1/23 11:32, Laurent Pinchart wrote: > Hi Hans, > > On Sun, Oct 01, 2023 at 11:14:33AM +0200, Hans de Goede via libcamera-devel wrote: >> Hi All, >> >> I have raw bayer capture working from the cmdline, but after this naive patch: >> >> --- a/src/libcamera/pipeline/simple/simple.cpp >> +++ b/src/libcamera/pipeline/simple/simple.cpp >> @@ -196,6 +196,7 @@ static const SimplePipelineInfo supportedDevices[] = { >> { "mxc-isi", {} }, >> { "qcom-camss", {} }, >> { "sun6i-csi", {} }, >> + { "intel-ipu6", {} }, >> }; >> >> } /* namespace */ >> >> >> qcam still does not see the camera. I believe that this is likely caused >> by the CSI2-receiver on the IPU6 not being so simple. It appears to have >> some sort of cross-switch giving it a whole bunch of different inputs >> and outputs and we need to set that up to connect the CSI data from the sensor >> to one of the inputs and likewise make it dump the raw bayer data into >> /dev/video#. > > Could you provide the output of media-ctl --print-dot ? It will help > visualize the topology, the text representation is a monster. Attached. On 10/1/23 12:48, Andrey Konovalov wrote: > Also if you prepend your qcam command with LIBCAMERA_LOG_LEVELS=SimplePipeline:DEBUG > you will see how SimplePipeline handler is trying to configure the pipeline. LIBCAMERA_LOG_LEVELS=SimplePipeline:DEBUG qcam does not log anything other then the libcamera version. "LIBCAMERA_LOG_LEVELS=*:DEBUG qcam" logs: [0:15:16.743042795] [5307] INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/home/hans/projects/libcamera/redhat-linux-build/src/ipa' to the IPA search path [0:15:16.763804299] [5307] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /home/hans/projects/libcamera/redhat-linux-build/src/ipa/ipu3/ipa_ipu3.so is signed [0:15:16.763909675] [5307] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/home/hans/projects/libcamera/redhat-linux-build/src/ipa/ipu3/ipa_ipu3.so' [0:15:16.764150556] [5307] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /usr/lib64/libcamera/ipa_ipu3.so is signed [0:15:16.764202449] [5307] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib64/libcamera/ipa_ipu3.so' [0:15:16.764268394] [5307] INFO Camera camera_manager.cpp:284 libcamera v0.1.0+55-06d972b4 [0:15:16.764738627] [5319] DEBUG Camera camera_manager.cpp:69 Starting camera manager [0:15:16.781475753] [5319] DEBUG DeviceEnumerator device_enumerator.cpp:224 New media device "intel-ipu6" created from /dev/media0 [0:15:16.781498544] [5319] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media0 due to 36 missing dependencies [0:15:16.788819335] [5319] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found [0:15:16.788839378] [5319] DEBUG DeviceEnumerator device_enumerator.cpp:252 Added device /dev/media0: intel-ipu6 [0:15:16.789012574] [5319] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerIPU3' [0:15:16.789027627] [5319] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerUVC' Hmm, this makes me wonder if it is even trying to use the SimplePipelineHandler at all ? Regards, Hans > >> Specifically I need to run the following script before capturing raw >> bayer from /dev/video0 : >> >> ``` >> #!/bin/bash >> >> MDEV=/dev/media0 >> >> media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" >> >> media-ctl -d $MDEV -V "\"ov2740 19-0036\":0 [fmt:SGRBG10/1932x1092]" >> media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":0 [fmt:SGRBG10/1932x1092]" >> media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":1 [fmt:SGRBG10/1932x1092]" >> >> media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" >> media-ctl -d $MDEV -l "\"Intel IPU6 CSI2 1\":1 -> \"Intel IPU6 ISYS Capture 0\":0[5]" >> ``` >> >> Full media-ctl -p output below. So I guess that even without the ISP IPU6 >> is probably going to need its own pipelinehandler, or am I missing something here? > > [snip] > digraph board { rankdir=TB n00000001 [label="Intel IPU6 ISYS Capture 0\n/dev/video0", shape=box, style=filled, fillcolor=yellow] n00000005 [label="Intel IPU6 ISYS Capture 1\n/dev/video1", shape=box, style=filled, fillcolor=yellow] n00000009 [label="Intel IPU6 ISYS Capture 2\n/dev/video2", shape=box, style=filled, fillcolor=yellow] n0000000d [label="Intel IPU6 ISYS Capture 3\n/dev/video3", shape=box, style=filled, fillcolor=yellow] n00000011 [label="Intel IPU6 ISYS Capture 4\n/dev/video4", shape=box, style=filled, fillcolor=yellow] n00000015 [label="Intel IPU6 ISYS Capture 5\n/dev/video5", shape=box, style=filled, fillcolor=yellow] n00000019 [label="Intel IPU6 ISYS Capture 6\n/dev/video6", shape=box, style=filled, fillcolor=yellow] n0000001d [label="Intel IPU6 ISYS Capture 7\n/dev/video7", shape=box, style=filled, fillcolor=yellow] n00000021 [label="Intel IPU6 ISYS Capture 8\n/dev/video8", shape=box, style=filled, fillcolor=yellow] n00000025 [label="Intel IPU6 ISYS Capture 9\n/dev/video9", shape=box, style=filled, fillcolor=yellow] n00000029 [label="Intel IPU6 ISYS Capture 10\n/dev/video10", shape=box, style=filled, fillcolor=yellow] n0000002d [label="Intel IPU6 ISYS Capture 11\n/dev/video11", shape=box, style=filled, fillcolor=yellow] n00000031 [label="Intel IPU6 ISYS Capture 12\n/dev/video12", shape=box, style=filled, fillcolor=yellow] n00000035 [label="Intel IPU6 ISYS Capture 13\n/dev/video13", shape=box, style=filled, fillcolor=yellow] n00000039 [label="Intel IPU6 ISYS Capture 14\n/dev/video14", shape=box, style=filled, fillcolor=yellow] n0000003d [label="Intel IPU6 ISYS Capture 15\n/dev/video15", shape=box, style=filled, fillcolor=yellow] n00000041 [label="Intel IPU6 ISYS Capture 16\n/dev/video16", shape=box, style=filled, fillcolor=yellow] n00000045 [label="Intel IPU6 ISYS Capture 17\n/dev/video17", shape=box, style=filled, fillcolor=yellow] n00000049 [label="Intel IPU6 ISYS Capture 18\n/dev/video18", shape=box, style=filled, fillcolor=yellow] n0000004d [label="Intel IPU6 ISYS Capture 19\n/dev/video19", shape=box, style=filled, fillcolor=yellow] n00000051 [label="Intel IPU6 ISYS Capture 20\n/dev/video20", shape=box, style=filled, fillcolor=yellow] n00000055 [label="Intel IPU6 ISYS Capture 21\n/dev/video21", shape=box, style=filled, fillcolor=yellow] n00000059 [label="Intel IPU6 ISYS Capture 22\n/dev/video22", shape=box, style=filled, fillcolor=yellow] n0000005d [label="Intel IPU6 ISYS Capture 23\n/dev/video23", shape=box, style=filled, fillcolor=yellow] n00000061 [label="Intel IPU6 ISYS Capture 24\n/dev/video24", shape=box, style=filled, fillcolor=yellow] n00000065 [label="Intel IPU6 ISYS Capture 25\n/dev/video25", shape=box, style=filled, fillcolor=yellow] n00000069 [label="Intel IPU6 ISYS Capture 26\n/dev/video26", shape=box, style=filled, fillcolor=yellow] n0000006d [label="Intel IPU6 ISYS Capture 27\n/dev/video27", shape=box, style=filled, fillcolor=yellow] n00000071 [label="Intel IPU6 ISYS Capture 28\n/dev/video28", shape=box, style=filled, fillcolor=yellow] n00000075 [label="Intel IPU6 ISYS Capture 29\n/dev/video29", shape=box, style=filled, fillcolor=yellow] n00000079 [label="Intel IPU6 ISYS Capture 30\n/dev/video30", shape=box, style=filled, fillcolor=yellow] n0000007d [label="{{<port0> 0} | Intel IPU6 CSI2 0\n/dev/v4l-subdev0 | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4 | <port5> 5 | <port6> 6 | <port7> 7 | <port8> 8}}", shape=Mrecord, style=filled, fillcolor=green] n0000007d:port1 -> n00000001 [style=dashed] n0000007d:port2 -> n00000001 [style=dashed] n0000007d:port3 -> n00000001 [style=dashed] n0000007d:port4 -> n00000001 [style=dashed] n0000007d:port5 -> n00000001 [style=dashed] n0000007d:port6 -> n00000001 [style=dashed] n0000007d:port7 -> n00000001 [style=dashed] n0000007d:port8 -> n00000001 [style=dashed] n0000007d:port1 -> n00000005 [style=dashed] n0000007d:port2 -> n00000005 [style=dashed] n0000007d:port3 -> n00000005 [style=dashed] n0000007d:port4 -> n00000005 [style=dashed] n0000007d:port5 -> n00000005 [style=dashed] n0000007d:port6 -> n00000005 [style=dashed] n0000007d:port7 -> n00000005 [style=dashed] n0000007d:port8 -> n00000005 [style=dashed] n0000007d:port1 -> n00000009 [style=dashed] n0000007d:port2 -> n00000009 [style=dashed] n0000007d:port3 -> n00000009 [style=dashed] n0000007d:port4 -> n00000009 [style=dashed] n0000007d:port5 -> n00000009 [style=dashed] n0000007d:port6 -> n00000009 [style=dashed] n0000007d:port7 -> n00000009 [style=dashed] n0000007d:port8 -> n00000009 [style=dashed] n0000007d:port1 -> n0000000d [style=dashed] n0000007d:port2 -> n0000000d [style=dashed] n0000007d:port3 -> n0000000d [style=dashed] n0000007d:port4 -> n0000000d [style=dashed] n0000007d:port5 -> n0000000d [style=dashed] n0000007d:port6 -> n0000000d [style=dashed] n0000007d:port7 -> n0000000d [style=dashed] n0000007d:port8 -> n0000000d [style=dashed] n0000007d:port1 -> n00000011 [style=dashed] n0000007d:port2 -> n00000011 [style=dashed] n0000007d:port3 -> n00000011 [style=dashed] n0000007d:port4 -> n00000011 [style=dashed] n0000007d:port5 -> n00000011 [style=dashed] n0000007d:port6 -> n00000011 [style=dashed] n0000007d:port7 -> n00000011 [style=dashed] n0000007d:port8 -> n00000011 [style=dashed] n0000007d:port1 -> n00000015 [style=dashed] n0000007d:port2 -> n00000015 [style=dashed] n0000007d:port3 -> n00000015 [style=dashed] n0000007d:port4 -> n00000015 [style=dashed] n0000007d:port5 -> n00000015 [style=dashed] n0000007d:port6 -> n00000015 [style=dashed] n0000007d:port7 -> n00000015 [style=dashed] n0000007d:port8 -> n00000015 [style=dashed] n0000007d:port1 -> n00000019 [style=dashed] n0000007d:port2 -> n00000019 [style=dashed] n0000007d:port3 -> n00000019 [style=dashed] n0000007d:port4 -> n00000019 [style=dashed] n0000007d:port5 -> n00000019 [style=dashed] n0000007d:port6 -> n00000019 [style=dashed] n0000007d:port7 -> n00000019 [style=dashed] n0000007d:port8 -> n00000019 [style=dashed] n0000007d:port1 -> n0000001d [style=dashed] n0000007d:port2 -> n0000001d [style=dashed] n0000007d:port3 -> n0000001d [style=dashed] n0000007d:port4 -> n0000001d [style=dashed] n0000007d:port5 -> n0000001d [style=dashed] n0000007d:port6 -> n0000001d [style=dashed] n0000007d:port7 -> n0000001d [style=dashed] n0000007d:port8 -> n0000001d [style=dashed] n0000007d:port1 -> n00000021 [style=dashed] n0000007d:port2 -> n00000021 [style=dashed] n0000007d:port3 -> n00000021 [style=dashed] n0000007d:port4 -> n00000021 [style=dashed] n0000007d:port5 -> n00000021 [style=dashed] n0000007d:port6 -> n00000021 [style=dashed] n0000007d:port7 -> n00000021 [style=dashed] n0000007d:port8 -> n00000021 [style=dashed] n0000007d:port1 -> n00000025 [style=dashed] n0000007d:port2 -> n00000025 [style=dashed] n0000007d:port3 -> n00000025 [style=dashed] n0000007d:port4 -> n00000025 [style=dashed] n0000007d:port5 -> n00000025 [style=dashed] n0000007d:port6 -> n00000025 [style=dashed] n0000007d:port7 -> n00000025 [style=dashed] n0000007d:port8 -> n00000025 [style=dashed] n0000007d:port1 -> n00000029 [style=dashed] n0000007d:port2 -> n00000029 [style=dashed] n0000007d:port3 -> n00000029 [style=dashed] n0000007d:port4 -> n00000029 [style=dashed] n0000007d:port5 -> n00000029 [style=dashed] n0000007d:port6 -> n00000029 [style=dashed] n0000007d:port7 -> n00000029 [style=dashed] n0000007d:port8 -> n00000029 [style=dashed] n0000007d:port1 -> n0000002d [style=dashed] n0000007d:port2 -> n0000002d [style=dashed] n0000007d:port3 -> n0000002d [style=dashed] n0000007d:port4 -> n0000002d [style=dashed] n0000007d:port5 -> n0000002d [style=dashed] n0000007d:port6 -> n0000002d [style=dashed] n0000007d:port7 -> n0000002d [style=dashed] n0000007d:port8 -> n0000002d [style=dashed] n0000007d:port1 -> n00000031 [style=dashed] n0000007d:port2 -> n00000031 [style=dashed] n0000007d:port3 -> n00000031 [style=dashed] n0000007d:port4 -> n00000031 [style=dashed] n0000007d:port5 -> n00000031 [style=dashed] n0000007d:port6 -> n00000031 [style=dashed] n0000007d:port7 -> n00000031 [style=dashed] n0000007d:port8 -> n00000031 [style=dashed] n0000007d:port1 -> n00000035 [style=dashed] n0000007d:port2 -> n00000035 [style=dashed] n0000007d:port3 -> n00000035 [style=dashed] n0000007d:port4 -> n00000035 [style=dashed] n0000007d:port5 -> n00000035 [style=dashed] n0000007d:port6 -> n00000035 [style=dashed] n0000007d:port7 -> n00000035 [style=dashed] n0000007d:port8 -> n00000035 [style=dashed] n0000007d:port1 -> n00000039 [style=dashed] n0000007d:port2 -> n00000039 [style=dashed] n0000007d:port3 -> n00000039 [style=dashed] n0000007d:port4 -> n00000039 [style=dashed] n0000007d:port5 -> n00000039 [style=dashed] n0000007d:port6 -> n00000039 [style=dashed] n0000007d:port7 -> n00000039 [style=dashed] n0000007d:port8 -> n00000039 [style=dashed] n0000007d:port1 -> n0000003d [style=dashed] n0000007d:port2 -> n0000003d [style=dashed] n0000007d:port3 -> n0000003d [style=dashed] n0000007d:port4 -> n0000003d [style=dashed] n0000007d:port5 -> n0000003d [style=dashed] n0000007d:port6 -> n0000003d [style=dashed] n0000007d:port7 -> n0000003d [style=dashed] n0000007d:port8 -> n0000003d [style=dashed] n0000007d:port1 -> n00000041 [style=dashed] n0000007d:port2 -> n00000041 [style=dashed] n0000007d:port3 -> n00000041 [style=dashed] n0000007d:port4 -> n00000041 [style=dashed] n0000007d:port5 -> n00000041 [style=dashed] n0000007d:port6 -> n00000041 [style=dashed] n0000007d:port7 -> n00000041 [style=dashed] n0000007d:port8 -> n00000041 [style=dashed] n0000007d:port1 -> n00000045 [style=dashed] n0000007d:port2 -> n00000045 [style=dashed] n0000007d:port3 -> n00000045 [style=dashed] n0000007d:port4 -> n00000045 [style=dashed] n0000007d:port5 -> n00000045 [style=dashed] n0000007d:port6 -> n00000045 [style=dashed] n0000007d:port7 -> n00000045 [style=dashed] n0000007d:port8 -> n00000045 [style=dashed] n0000007d:port1 -> n00000049 [style=dashed] n0000007d:port2 -> n00000049 [style=dashed] n0000007d:port3 -> n00000049 [style=dashed] n0000007d:port4 -> n00000049 [style=dashed] n0000007d:port5 -> n00000049 [style=dashed] n0000007d:port6 -> n00000049 [style=dashed] n0000007d:port7 -> n00000049 [style=dashed] n0000007d:port8 -> n00000049 [style=dashed] n0000007d:port1 -> n0000004d [style=dashed] n0000007d:port2 -> n0000004d [style=dashed] n0000007d:port3 -> n0000004d [style=dashed] n0000007d:port4 -> n0000004d [style=dashed] n0000007d:port5 -> n0000004d [style=dashed] n0000007d:port6 -> n0000004d [style=dashed] n0000007d:port7 -> n0000004d [style=dashed] n0000007d:port8 -> n0000004d [style=dashed] n0000007d:port1 -> n00000051 [style=dashed] n0000007d:port2 -> n00000051 [style=dashed] n0000007d:port3 -> n00000051 [style=dashed] n0000007d:port4 -> n00000051 [style=dashed] n0000007d:port5 -> n00000051 [style=dashed] n0000007d:port6 -> n00000051 [style=dashed] n0000007d:port7 -> n00000051 [style=dashed] n0000007d:port8 -> n00000051 [style=dashed] n0000007d:port1 -> n00000055 [style=dashed] n0000007d:port2 -> n00000055 [style=dashed] n0000007d:port3 -> n00000055 [style=dashed] n0000007d:port4 -> n00000055 [style=dashed] n0000007d:port5 -> n00000055 [style=dashed] n0000007d:port6 -> n00000055 [style=dashed] n0000007d:port7 -> n00000055 [style=dashed] n0000007d:port8 -> n00000055 [style=dashed] n0000007d:port1 -> n00000059 [style=dashed] n0000007d:port2 -> n00000059 [style=dashed] n0000007d:port3 -> n00000059 [style=dashed] n0000007d:port4 -> n00000059 [style=dashed] n0000007d:port5 -> n00000059 [style=dashed] n0000007d:port6 -> n00000059 [style=dashed] n0000007d:port7 -> n00000059 [style=dashed] n0000007d:port8 -> n00000059 [style=dashed] n0000007d:port1 -> n0000005d [style=dashed] n0000007d:port2 -> n0000005d [style=dashed] n0000007d:port3 -> n0000005d [style=dashed] n0000007d:port4 -> n0000005d [style=dashed] n0000007d:port5 -> n0000005d [style=dashed] n0000007d:port6 -> n0000005d [style=dashed] n0000007d:port7 -> n0000005d [style=dashed] n0000007d:port8 -> n0000005d [style=dashed] n0000007d:port1 -> n00000061 [style=dashed] n0000007d:port2 -> n00000061 [style=dashed] n0000007d:port3 -> n00000061 [style=dashed] n0000007d:port4 -> n00000061 [style=dashed] n0000007d:port5 -> n00000061 [style=dashed] n0000007d:port6 -> n00000061 [style=dashed] n0000007d:port7 -> n00000061 [style=dashed] n0000007d:port8 -> n00000061 [style=dashed] n0000007d:port1 -> n00000065 [style=dashed] n0000007d:port2 -> n00000065 [style=dashed] n0000007d:port3 -> n00000065 [style=dashed] n0000007d:port4 -> n00000065 [style=dashed] n0000007d:port5 -> n00000065 [style=dashed] n0000007d:port6 -> n00000065 [style=dashed] n0000007d:port7 -> n00000065 [style=dashed] n0000007d:port8 -> n00000065 [style=dashed] n0000007d:port1 -> n00000069 [style=dashed] n0000007d:port2 -> n00000069 [style=dashed] n0000007d:port3 -> n00000069 [style=dashed] n0000007d:port4 -> n00000069 [style=dashed] n0000007d:port5 -> n00000069 [style=dashed] n0000007d:port6 -> n00000069 [style=dashed] n0000007d:port7 -> n00000069 [style=dashed] n0000007d:port8 -> n00000069 [style=dashed] n0000007d:port1 -> n0000006d [style=dashed] n0000007d:port2 -> n0000006d [style=dashed] n0000007d:port3 -> n0000006d [style=dashed] n0000007d:port4 -> n0000006d [style=dashed] n0000007d:port5 -> n0000006d [style=dashed] n0000007d:port6 -> n0000006d [style=dashed] n0000007d:port7 -> n0000006d [style=dashed] n0000007d:port8 -> n0000006d [style=dashed] n0000007d:port1 -> n00000071 [style=dashed] n0000007d:port2 -> n00000071 [style=dashed] n0000007d:port3 -> n00000071 [style=dashed] n0000007d:port4 -> n00000071 [style=dashed] n0000007d:port5 -> n00000071 [style=dashed] n0000007d:port6 -> n00000071 [style=dashed] n0000007d:port7 -> n00000071 [style=dashed] n0000007d:port8 -> n00000071 [style=dashed] n0000007d:port1 -> n00000075 [style=dashed] n0000007d:port2 -> n00000075 [style=dashed] n0000007d:port3 -> n00000075 [style=dashed] n0000007d:port4 -> n00000075 [style=dashed] n0000007d:port5 -> n00000075 [style=dashed] n0000007d:port6 -> n00000075 [style=dashed] n0000007d:port7 -> n00000075 [style=dashed] n0000007d:port8 -> n00000075 [style=dashed] n0000007d:port1 -> n00000079 [style=dashed] n0000007d:port2 -> n00000079 [style=dashed] n0000007d:port3 -> n00000079 [style=dashed] n0000007d:port4 -> n00000079 [style=dashed] n0000007d:port5 -> n00000079 [style=dashed] n0000007d:port6 -> n00000079 [style=dashed] n0000007d:port7 -> n00000079 [style=dashed] n0000007d:port8 -> n00000079 [style=dashed] n00000087 [label="{{<port0> 0} | Intel IPU6 CSI2 1\n/dev/v4l-subdev1 | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4 | <port5> 5 | <port6> 6 | <port7> 7 | <port8> 8}}", shape=Mrecord, style=filled, fillcolor=green] n00000087:port1 -> n00000001 n00000087:port2 -> n00000001 [style=dashed] n00000087:port3 -> n00000001 [style=dashed] n00000087:port4 -> n00000001 [style=dashed] n00000087:port5 -> n00000001 [style=dashed] n00000087:port6 -> n00000001 [style=dashed] n00000087:port7 -> n00000001 [style=dashed] n00000087:port8 -> n00000001 [style=dashed] n00000087:port1 -> n00000005 [style=dashed] n00000087:port2 -> n00000005 [style=dashed] n00000087:port3 -> n00000005 [style=dashed] n00000087:port4 -> n00000005 [style=dashed] n00000087:port5 -> n00000005 [style=dashed] n00000087:port6 -> n00000005 [style=dashed] n00000087:port7 -> n00000005 [style=dashed] n00000087:port8 -> n00000005 [style=dashed] n00000087:port1 -> n00000009 [style=dashed] n00000087:port2 -> n00000009 [style=dashed] n00000087:port3 -> n00000009 [style=dashed] n00000087:port4 -> n00000009 [style=dashed] n00000087:port5 -> n00000009 [style=dashed] n00000087:port6 -> n00000009 [style=dashed] n00000087:port7 -> n00000009 [style=dashed] n00000087:port8 -> n00000009 [style=dashed] n00000087:port1 -> n0000000d [style=dashed] n00000087:port2 -> n0000000d [style=dashed] n00000087:port3 -> n0000000d [style=dashed] n00000087:port4 -> n0000000d [style=dashed] n00000087:port5 -> n0000000d [style=dashed] n00000087:port6 -> n0000000d [style=dashed] n00000087:port7 -> n0000000d [style=dashed] n00000087:port8 -> n0000000d [style=dashed] n00000087:port1 -> n00000011 [style=dashed] n00000087:port2 -> n00000011 [style=dashed] n00000087:port3 -> n00000011 [style=dashed] n00000087:port4 -> n00000011 [style=dashed] n00000087:port5 -> n00000011 [style=dashed] n00000087:port6 -> n00000011 [style=dashed] n00000087:port7 -> n00000011 [style=dashed] n00000087:port8 -> n00000011 [style=dashed] n00000087:port1 -> n00000015 [style=dashed] n00000087:port2 -> n00000015 [style=dashed] n00000087:port3 -> n00000015 [style=dashed] n00000087:port4 -> n00000015 [style=dashed] n00000087:port5 -> n00000015 [style=dashed] n00000087:port6 -> n00000015 [style=dashed] n00000087:port7 -> n00000015 [style=dashed] n00000087:port8 -> n00000015 [style=dashed] n00000087:port1 -> n00000019 [style=dashed] n00000087:port2 -> n00000019 [style=dashed] n00000087:port3 -> n00000019 [style=dashed] n00000087:port4 -> n00000019 [style=dashed] n00000087:port5 -> n00000019 [style=dashed] n00000087:port6 -> n00000019 [style=dashed] n00000087:port7 -> n00000019 [style=dashed] n00000087:port8 -> n00000019 [style=dashed] n00000087:port1 -> n0000001d [style=dashed] n00000087:port2 -> n0000001d [style=dashed] n00000087:port3 -> n0000001d [style=dashed] n00000087:port4 -> n0000001d [style=dashed] n00000087:port5 -> n0000001d [style=dashed] n00000087:port6 -> n0000001d [style=dashed] n00000087:port7 -> n0000001d [style=dashed] n00000087:port8 -> n0000001d [style=dashed] n00000087:port1 -> n00000021 [style=dashed] n00000087:port2 -> n00000021 [style=dashed] n00000087:port3 -> n00000021 [style=dashed] n00000087:port4 -> n00000021 [style=dashed] n00000087:port5 -> n00000021 [style=dashed] n00000087:port6 -> n00000021 [style=dashed] n00000087:port7 -> n00000021 [style=dashed] n00000087:port8 -> n00000021 [style=dashed] n00000087:port1 -> n00000025 [style=dashed] n00000087:port2 -> n00000025 [style=dashed] n00000087:port3 -> n00000025 [style=dashed] n00000087:port4 -> n00000025 [style=dashed] n00000087:port5 -> n00000025 [style=dashed] n00000087:port6 -> n00000025 [style=dashed] n00000087:port7 -> n00000025 [style=dashed] n00000087:port8 -> n00000025 [style=dashed] n00000087:port1 -> n00000029 [style=dashed] n00000087:port2 -> n00000029 [style=dashed] n00000087:port3 -> n00000029 [style=dashed] n00000087:port4 -> n00000029 [style=dashed] n00000087:port5 -> n00000029 [style=dashed] n00000087:port6 -> n00000029 [style=dashed] n00000087:port7 -> n00000029 [style=dashed] n00000087:port8 -> n00000029 [style=dashed] n00000087:port1 -> n0000002d [style=dashed] n00000087:port2 -> n0000002d [style=dashed] n00000087:port3 -> n0000002d [style=dashed] n00000087:port4 -> n0000002d [style=dashed] n00000087:port5 -> n0000002d [style=dashed] n00000087:port6 -> n0000002d [style=dashed] n00000087:port7 -> n0000002d [style=dashed] n00000087:port8 -> n0000002d [style=dashed] n00000087:port1 -> n00000031 [style=dashed] n00000087:port2 -> n00000031 [style=dashed] n00000087:port3 -> n00000031 [style=dashed] n00000087:port4 -> n00000031 [style=dashed] n00000087:port5 -> n00000031 [style=dashed] n00000087:port6 -> n00000031 [style=dashed] n00000087:port7 -> n00000031 [style=dashed] n00000087:port8 -> n00000031 [style=dashed] n00000087:port1 -> n00000035 [style=dashed] n00000087:port2 -> n00000035 [style=dashed] n00000087:port3 -> n00000035 [style=dashed] n00000087:port4 -> n00000035 [style=dashed] n00000087:port5 -> n00000035 [style=dashed] n00000087:port6 -> n00000035 [style=dashed] n00000087:port7 -> n00000035 [style=dashed] n00000087:port8 -> n00000035 [style=dashed] n00000087:port1 -> n00000039 [style=dashed] n00000087:port2 -> n00000039 [style=dashed] n00000087:port3 -> n00000039 [style=dashed] n00000087:port4 -> n00000039 [style=dashed] n00000087:port5 -> n00000039 [style=dashed] n00000087:port6 -> n00000039 [style=dashed] n00000087:port7 -> n00000039 [style=dashed] n00000087:port8 -> n00000039 [style=dashed] n00000087:port1 -> n0000003d [style=dashed] n00000087:port2 -> n0000003d [style=dashed] n00000087:port3 -> n0000003d [style=dashed] n00000087:port4 -> n0000003d [style=dashed] n00000087:port5 -> n0000003d [style=dashed] n00000087:port6 -> n0000003d [style=dashed] n00000087:port7 -> n0000003d [style=dashed] n00000087:port8 -> n0000003d [style=dashed] n00000087:port1 -> n00000041 [style=dashed] n00000087:port2 -> n00000041 [style=dashed] n00000087:port3 -> n00000041 [style=dashed] n00000087:port4 -> n00000041 [style=dashed] n00000087:port5 -> n00000041 [style=dashed] n00000087:port6 -> n00000041 [style=dashed] n00000087:port7 -> n00000041 [style=dashed] n00000087:port8 -> n00000041 [style=dashed] n00000087:port1 -> n00000045 [style=dashed] n00000087:port2 -> n00000045 [style=dashed] n00000087:port3 -> n00000045 [style=dashed] n00000087:port4 -> n00000045 [style=dashed] n00000087:port5 -> n00000045 [style=dashed] n00000087:port6 -> n00000045 [style=dashed] n00000087:port7 -> n00000045 [style=dashed] n00000087:port8 -> n00000045 [style=dashed] n00000087:port1 -> n00000049 [style=dashed] n00000087:port2 -> n00000049 [style=dashed] n00000087:port3 -> n00000049 [style=dashed] n00000087:port4 -> n00000049 [style=dashed] n00000087:port5 -> n00000049 [style=dashed] n00000087:port6 -> n00000049 [style=dashed] n00000087:port7 -> n00000049 [style=dashed] n00000087:port8 -> n00000049 [style=dashed] n00000087:port1 -> n0000004d [style=dashed] n00000087:port2 -> n0000004d [style=dashed] n00000087:port3 -> n0000004d [style=dashed] n00000087:port4 -> n0000004d [style=dashed] n00000087:port5 -> n0000004d [style=dashed] n00000087:port6 -> n0000004d [style=dashed] n00000087:port7 -> n0000004d [style=dashed] n00000087:port8 -> n0000004d [style=dashed] n00000087:port1 -> n00000051 [style=dashed] n00000087:port2 -> n00000051 [style=dashed] n00000087:port3 -> n00000051 [style=dashed] n00000087:port4 -> n00000051 [style=dashed] n00000087:port5 -> n00000051 [style=dashed] n00000087:port6 -> n00000051 [style=dashed] n00000087:port7 -> n00000051 [style=dashed] n00000087:port8 -> n00000051 [style=dashed] n00000087:port1 -> n00000055 [style=dashed] n00000087:port2 -> n00000055 [style=dashed] n00000087:port3 -> n00000055 [style=dashed] n00000087:port4 -> n00000055 [style=dashed] n00000087:port5 -> n00000055 [style=dashed] n00000087:port6 -> n00000055 [style=dashed] n00000087:port7 -> n00000055 [style=dashed] n00000087:port8 -> n00000055 [style=dashed] n00000087:port1 -> n00000059 [style=dashed] n00000087:port2 -> n00000059 [style=dashed] n00000087:port3 -> n00000059 [style=dashed] n00000087:port4 -> n00000059 [style=dashed] n00000087:port5 -> n00000059 [style=dashed] n00000087:port6 -> n00000059 [style=dashed] n00000087:port7 -> n00000059 [style=dashed] n00000087:port8 -> n00000059 [style=dashed] n00000087:port1 -> n0000005d [style=dashed] n00000087:port2 -> n0000005d [style=dashed] n00000087:port3 -> n0000005d [style=dashed] n00000087:port4 -> n0000005d [style=dashed] n00000087:port5 -> n0000005d [style=dashed] n00000087:port6 -> n0000005d [style=dashed] n00000087:port7 -> n0000005d [style=dashed] n00000087:port8 -> n0000005d [style=dashed] n00000087:port1 -> n00000061 [style=dashed] n00000087:port2 -> n00000061 [style=dashed] n00000087:port3 -> n00000061 [style=dashed] n00000087:port4 -> n00000061 [style=dashed] n00000087:port5 -> n00000061 [style=dashed] n00000087:port6 -> n00000061 [style=dashed] n00000087:port7 -> n00000061 [style=dashed] n00000087:port8 -> n00000061 [style=dashed] n00000087:port1 -> n00000065 [style=dashed] n00000087:port2 -> n00000065 [style=dashed] n00000087:port3 -> n00000065 [style=dashed] n00000087:port4 -> n00000065 [style=dashed] n00000087:port5 -> n00000065 [style=dashed] n00000087:port6 -> n00000065 [style=dashed] n00000087:port7 -> n00000065 [style=dashed] n00000087:port8 -> n00000065 [style=dashed] n00000087:port1 -> n00000069 [style=dashed] n00000087:port2 -> n00000069 [style=dashed] n00000087:port3 -> n00000069 [style=dashed] n00000087:port4 -> n00000069 [style=dashed] n00000087:port5 -> n00000069 [style=dashed] n00000087:port6 -> n00000069 [style=dashed] n00000087:port7 -> n00000069 [style=dashed] n00000087:port8 -> n00000069 [style=dashed] n00000087:port1 -> n0000006d [style=dashed] n00000087:port2 -> n0000006d [style=dashed] n00000087:port3 -> n0000006d [style=dashed] n00000087:port4 -> n0000006d [style=dashed] n00000087:port5 -> n0000006d [style=dashed] n00000087:port6 -> n0000006d [style=dashed] n00000087:port7 -> n0000006d [style=dashed] n00000087:port8 -> n0000006d [style=dashed] n00000087:port1 -> n00000071 [style=dashed] n00000087:port2 -> n00000071 [style=dashed] n00000087:port3 -> n00000071 [style=dashed] n00000087:port4 -> n00000071 [style=dashed] n00000087:port5 -> n00000071 [style=dashed] n00000087:port6 -> n00000071 [style=dashed] n00000087:port7 -> n00000071 [style=dashed] n00000087:port8 -> n00000071 [style=dashed] n00000087:port1 -> n00000075 [style=dashed] n00000087:port2 -> n00000075 [style=dashed] n00000087:port3 -> n00000075 [style=dashed] n00000087:port4 -> n00000075 [style=dashed] n00000087:port5 -> n00000075 [style=dashed] n00000087:port6 -> n00000075 [style=dashed] n00000087:port7 -> n00000075 [style=dashed] n00000087:port8 -> n00000075 [style=dashed] n00000087:port1 -> n00000079 [style=dashed] n00000087:port2 -> n00000079 [style=dashed] n00000087:port3 -> n00000079 [style=dashed] n00000087:port4 -> n00000079 [style=dashed] n00000087:port5 -> n00000079 [style=dashed] n00000087:port6 -> n00000079 [style=dashed] n00000087:port7 -> n00000079 [style=dashed] n00000087:port8 -> n00000079 [style=dashed] n00000091 [label="{{<port0> 0} | Intel IPU6 CSI2 2\n/dev/v4l-subdev2 | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4 | <port5> 5 | <port6> 6 | <port7> 7 | <port8> 8}}", shape=Mrecord, style=filled, fillcolor=green] n00000091:port1 -> n00000001 [style=dashed] n00000091:port2 -> n00000001 [style=dashed] n00000091:port3 -> n00000001 [style=dashed] n00000091:port4 -> n00000001 [style=dashed] n00000091:port5 -> n00000001 [style=dashed] n00000091:port6 -> n00000001 [style=dashed] n00000091:port7 -> n00000001 [style=dashed] n00000091:port8 -> n00000001 [style=dashed] n00000091:port1 -> n00000005 [style=dashed] n00000091:port2 -> n00000005 [style=dashed] n00000091:port3 -> n00000005 [style=dashed] n00000091:port4 -> n00000005 [style=dashed] n00000091:port5 -> n00000005 [style=dashed] n00000091:port6 -> n00000005 [style=dashed] n00000091:port7 -> n00000005 [style=dashed] n00000091:port8 -> n00000005 [style=dashed] n00000091:port1 -> n00000009 [style=dashed] n00000091:port2 -> n00000009 [style=dashed] n00000091:port3 -> n00000009 [style=dashed] n00000091:port4 -> n00000009 [style=dashed] n00000091:port5 -> n00000009 [style=dashed] n00000091:port6 -> n00000009 [style=dashed] n00000091:port7 -> n00000009 [style=dashed] n00000091:port8 -> n00000009 [style=dashed] n00000091:port1 -> n0000000d [style=dashed] n00000091:port2 -> n0000000d [style=dashed] n00000091:port3 -> n0000000d [style=dashed] n00000091:port4 -> n0000000d [style=dashed] n00000091:port5 -> n0000000d [style=dashed] n00000091:port6 -> n0000000d [style=dashed] n00000091:port7 -> n0000000d [style=dashed] n00000091:port8 -> n0000000d [style=dashed] n00000091:port1 -> n00000011 [style=dashed] n00000091:port2 -> n00000011 [style=dashed] n00000091:port3 -> n00000011 [style=dashed] n00000091:port4 -> n00000011 [style=dashed] n00000091:port5 -> n00000011 [style=dashed] n00000091:port6 -> n00000011 [style=dashed] n00000091:port7 -> n00000011 [style=dashed] n00000091:port8 -> n00000011 [style=dashed] n00000091:port1 -> n00000015 [style=dashed] n00000091:port2 -> n00000015 [style=dashed] n00000091:port3 -> n00000015 [style=dashed] n00000091:port4 -> n00000015 [style=dashed] n00000091:port5 -> n00000015 [style=dashed] n00000091:port6 -> n00000015 [style=dashed] n00000091:port7 -> n00000015 [style=dashed] n00000091:port8 -> n00000015 [style=dashed] n00000091:port1 -> n00000019 [style=dashed] n00000091:port2 -> n00000019 [style=dashed] n00000091:port3 -> n00000019 [style=dashed] n00000091:port4 -> n00000019 [style=dashed] n00000091:port5 -> n00000019 [style=dashed] n00000091:port6 -> n00000019 [style=dashed] n00000091:port7 -> n00000019 [style=dashed] n00000091:port8 -> n00000019 [style=dashed] n00000091:port1 -> n0000001d [style=dashed] n00000091:port2 -> n0000001d [style=dashed] n00000091:port3 -> n0000001d [style=dashed] n00000091:port4 -> n0000001d [style=dashed] n00000091:port5 -> n0000001d [style=dashed] n00000091:port6 -> n0000001d [style=dashed] n00000091:port7 -> n0000001d [style=dashed] n00000091:port8 -> n0000001d [style=dashed] n00000091:port1 -> n00000021 [style=dashed] n00000091:port2 -> n00000021 [style=dashed] n00000091:port3 -> n00000021 [style=dashed] n00000091:port4 -> n00000021 [style=dashed] n00000091:port5 -> n00000021 [style=dashed] n00000091:port6 -> n00000021 [style=dashed] n00000091:port7 -> n00000021 [style=dashed] n00000091:port8 -> n00000021 [style=dashed] n00000091:port1 -> n00000025 [style=dashed] n00000091:port2 -> n00000025 [style=dashed] n00000091:port3 -> n00000025 [style=dashed] n00000091:port4 -> n00000025 [style=dashed] n00000091:port5 -> n00000025 [style=dashed] n00000091:port6 -> n00000025 [style=dashed] n00000091:port7 -> n00000025 [style=dashed] n00000091:port8 -> n00000025 [style=dashed] n00000091:port1 -> n00000029 [style=dashed] n00000091:port2 -> n00000029 [style=dashed] n00000091:port3 -> n00000029 [style=dashed] n00000091:port4 -> n00000029 [style=dashed] n00000091:port5 -> n00000029 [style=dashed] n00000091:port6 -> n00000029 [style=dashed] n00000091:port7 -> n00000029 [style=dashed] n00000091:port8 -> n00000029 [style=dashed] n00000091:port1 -> n0000002d [style=dashed] n00000091:port2 -> n0000002d [style=dashed] n00000091:port3 -> n0000002d [style=dashed] n00000091:port4 -> n0000002d [style=dashed] n00000091:port5 -> n0000002d [style=dashed] n00000091:port6 -> n0000002d [style=dashed] n00000091:port7 -> n0000002d [style=dashed] n00000091:port8 -> n0000002d [style=dashed] n00000091:port1 -> n00000031 [style=dashed] n00000091:port2 -> n00000031 [style=dashed] n00000091:port3 -> n00000031 [style=dashed] n00000091:port4 -> n00000031 [style=dashed] n00000091:port5 -> n00000031 [style=dashed] n00000091:port6 -> n00000031 [style=dashed] n00000091:port7 -> n00000031 [style=dashed] n00000091:port8 -> n00000031 [style=dashed] n00000091:port1 -> n00000035 [style=dashed] n00000091:port2 -> n00000035 [style=dashed] n00000091:port3 -> n00000035 [style=dashed] n00000091:port4 -> n00000035 [style=dashed] n00000091:port5 -> n00000035 [style=dashed] n00000091:port6 -> n00000035 [style=dashed] n00000091:port7 -> n00000035 [style=dashed] n00000091:port8 -> n00000035 [style=dashed] n00000091:port1 -> n00000039 [style=dashed] n00000091:port2 -> n00000039 [style=dashed] n00000091:port3 -> n00000039 [style=dashed] n00000091:port4 -> n00000039 [style=dashed] n00000091:port5 -> n00000039 [style=dashed] n00000091:port6 -> n00000039 [style=dashed] n00000091:port7 -> n00000039 [style=dashed] n00000091:port8 -> n00000039 [style=dashed] n00000091:port1 -> n0000003d [style=dashed] n00000091:port2 -> n0000003d [style=dashed] n00000091:port3 -> n0000003d [style=dashed] n00000091:port4 -> n0000003d [style=dashed] n00000091:port5 -> n0000003d [style=dashed] n00000091:port6 -> n0000003d [style=dashed] n00000091:port7 -> n0000003d [style=dashed] n00000091:port8 -> n0000003d [style=dashed] n00000091:port1 -> n00000041 [style=dashed] n00000091:port2 -> n00000041 [style=dashed] n00000091:port3 -> n00000041 [style=dashed] n00000091:port4 -> n00000041 [style=dashed] n00000091:port5 -> n00000041 [style=dashed] n00000091:port6 -> n00000041 [style=dashed] n00000091:port7 -> n00000041 [style=dashed] n00000091:port8 -> n00000041 [style=dashed] n00000091:port1 -> n00000045 [style=dashed] n00000091:port2 -> n00000045 [style=dashed] n00000091:port3 -> n00000045 [style=dashed] n00000091:port4 -> n00000045 [style=dashed] n00000091:port5 -> n00000045 [style=dashed] n00000091:port6 -> n00000045 [style=dashed] n00000091:port7 -> n00000045 [style=dashed] n00000091:port8 -> n00000045 [style=dashed] n00000091:port1 -> n00000049 [style=dashed] n00000091:port2 -> n00000049 [style=dashed] n00000091:port3 -> n00000049 [style=dashed] n00000091:port4 -> n00000049 [style=dashed] n00000091:port5 -> n00000049 [style=dashed] n00000091:port6 -> n00000049 [style=dashed] n00000091:port7 -> n00000049 [style=dashed] n00000091:port8 -> n00000049 [style=dashed] n00000091:port1 -> n0000004d [style=dashed] n00000091:port2 -> n0000004d [style=dashed] n00000091:port3 -> n0000004d [style=dashed] n00000091:port4 -> n0000004d [style=dashed] n00000091:port5 -> n0000004d [style=dashed] n00000091:port6 -> n0000004d [style=dashed] n00000091:port7 -> n0000004d [style=dashed] n00000091:port8 -> n0000004d [style=dashed] n00000091:port1 -> n00000051 [style=dashed] n00000091:port2 -> n00000051 [style=dashed] n00000091:port3 -> n00000051 [style=dashed] n00000091:port4 -> n00000051 [style=dashed] n00000091:port5 -> n00000051 [style=dashed] n00000091:port6 -> n00000051 [style=dashed] n00000091:port7 -> n00000051 [style=dashed] n00000091:port8 -> n00000051 [style=dashed] n00000091:port1 -> n00000055 [style=dashed] n00000091:port2 -> n00000055 [style=dashed] n00000091:port3 -> n00000055 [style=dashed] n00000091:port4 -> n00000055 [style=dashed] n00000091:port5 -> n00000055 [style=dashed] n00000091:port6 -> n00000055 [style=dashed] n00000091:port7 -> n00000055 [style=dashed] n00000091:port8 -> n00000055 [style=dashed] n00000091:port1 -> n00000059 [style=dashed] n00000091:port2 -> n00000059 [style=dashed] n00000091:port3 -> n00000059 [style=dashed] n00000091:port4 -> n00000059 [style=dashed] n00000091:port5 -> n00000059 [style=dashed] n00000091:port6 -> n00000059 [style=dashed] n00000091:port7 -> n00000059 [style=dashed] n00000091:port8 -> n00000059 [style=dashed] n00000091:port1 -> n0000005d [style=dashed] n00000091:port2 -> n0000005d [style=dashed] n00000091:port3 -> n0000005d [style=dashed] n00000091:port4 -> n0000005d [style=dashed] n00000091:port5 -> n0000005d [style=dashed] n00000091:port6 -> n0000005d [style=dashed] n00000091:port7 -> n0000005d [style=dashed] n00000091:port8 -> n0000005d [style=dashed] n00000091:port1 -> n00000061 [style=dashed] n00000091:port2 -> n00000061 [style=dashed] n00000091:port3 -> n00000061 [style=dashed] n00000091:port4 -> n00000061 [style=dashed] n00000091:port5 -> n00000061 [style=dashed] n00000091:port6 -> n00000061 [style=dashed] n00000091:port7 -> n00000061 [style=dashed] n00000091:port8 -> n00000061 [style=dashed] n00000091:port1 -> n00000065 [style=dashed] n00000091:port2 -> n00000065 [style=dashed] n00000091:port3 -> n00000065 [style=dashed] n00000091:port4 -> n00000065 [style=dashed] n00000091:port5 -> n00000065 [style=dashed] n00000091:port6 -> n00000065 [style=dashed] n00000091:port7 -> n00000065 [style=dashed] n00000091:port8 -> n00000065 [style=dashed] n00000091:port1 -> n00000069 [style=dashed] n00000091:port2 -> n00000069 [style=dashed] n00000091:port3 -> n00000069 [style=dashed] n00000091:port4 -> n00000069 [style=dashed] n00000091:port5 -> n00000069 [style=dashed] n00000091:port6 -> n00000069 [style=dashed] n00000091:port7 -> n00000069 [style=dashed] n00000091:port8 -> n00000069 [style=dashed] n00000091:port1 -> n0000006d [style=dashed] n00000091:port2 -> n0000006d [style=dashed] n00000091:port3 -> n0000006d [style=dashed] n00000091:port4 -> n0000006d [style=dashed] n00000091:port5 -> n0000006d [style=dashed] n00000091:port6 -> n0000006d [style=dashed] n00000091:port7 -> n0000006d [style=dashed] n00000091:port8 -> n0000006d [style=dashed] n00000091:port1 -> n00000071 [style=dashed] n00000091:port2 -> n00000071 [style=dashed] n00000091:port3 -> n00000071 [style=dashed] n00000091:port4 -> n00000071 [style=dashed] n00000091:port5 -> n00000071 [style=dashed] n00000091:port6 -> n00000071 [style=dashed] n00000091:port7 -> n00000071 [style=dashed] n00000091:port8 -> n00000071 [style=dashed] n00000091:port1 -> n00000075 [style=dashed] n00000091:port2 -> n00000075 [style=dashed] n00000091:port3 -> n00000075 [style=dashed] n00000091:port4 -> n00000075 [style=dashed] n00000091:port5 -> n00000075 [style=dashed] n00000091:port6 -> n00000075 [style=dashed] n00000091:port7 -> n00000075 [style=dashed] n00000091:port8 -> n00000075 [style=dashed] n00000091:port1 -> n00000079 [style=dashed] n00000091:port2 -> n00000079 [style=dashed] n00000091:port3 -> n00000079 [style=dashed] n00000091:port4 -> n00000079 [style=dashed] n00000091:port5 -> n00000079 [style=dashed] n00000091:port6 -> n00000079 [style=dashed] n00000091:port7 -> n00000079 [style=dashed] n00000091:port8 -> n00000079 [style=dashed] n0000009b [label="{{<port0> 0} | Intel IPU6 CSI2 3\n/dev/v4l-subdev3 | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4 | <port5> 5 | <port6> 6 | <port7> 7 | <port8> 8}}", shape=Mrecord, style=filled, fillcolor=green] n0000009b:port1 -> n00000001 [style=dashed] n0000009b:port2 -> n00000001 [style=dashed] n0000009b:port3 -> n00000001 [style=dashed] n0000009b:port4 -> n00000001 [style=dashed] n0000009b:port5 -> n00000001 [style=dashed] n0000009b:port6 -> n00000001 [style=dashed] n0000009b:port7 -> n00000001 [style=dashed] n0000009b:port8 -> n00000001 [style=dashed] n0000009b:port1 -> n00000005 [style=dashed] n0000009b:port2 -> n00000005 [style=dashed] n0000009b:port3 -> n00000005 [style=dashed] n0000009b:port4 -> n00000005 [style=dashed] n0000009b:port5 -> n00000005 [style=dashed] n0000009b:port6 -> n00000005 [style=dashed] n0000009b:port7 -> n00000005 [style=dashed] n0000009b:port8 -> n00000005 [style=dashed] n0000009b:port1 -> n00000009 [style=dashed] n0000009b:port2 -> n00000009 [style=dashed] n0000009b:port3 -> n00000009 [style=dashed] n0000009b:port4 -> n00000009 [style=dashed] n0000009b:port5 -> n00000009 [style=dashed] n0000009b:port6 -> n00000009 [style=dashed] n0000009b:port7 -> n00000009 [style=dashed] n0000009b:port8 -> n00000009 [style=dashed] n0000009b:port1 -> n0000000d [style=dashed] n0000009b:port2 -> n0000000d [style=dashed] n0000009b:port3 -> n0000000d [style=dashed] n0000009b:port4 -> n0000000d [style=dashed] n0000009b:port5 -> n0000000d [style=dashed] n0000009b:port6 -> n0000000d [style=dashed] n0000009b:port7 -> n0000000d [style=dashed] n0000009b:port8 -> n0000000d [style=dashed] n0000009b:port1 -> n00000011 [style=dashed] n0000009b:port2 -> n00000011 [style=dashed] n0000009b:port3 -> n00000011 [style=dashed] n0000009b:port4 -> n00000011 [style=dashed] n0000009b:port5 -> n00000011 [style=dashed] n0000009b:port6 -> n00000011 [style=dashed] n0000009b:port7 -> n00000011 [style=dashed] n0000009b:port8 -> n00000011 [style=dashed] n0000009b:port1 -> n00000015 [style=dashed] n0000009b:port2 -> n00000015 [style=dashed] n0000009b:port3 -> n00000015 [style=dashed] n0000009b:port4 -> n00000015 [style=dashed] n0000009b:port5 -> n00000015 [style=dashed] n0000009b:port6 -> n00000015 [style=dashed] n0000009b:port7 -> n00000015 [style=dashed] n0000009b:port8 -> n00000015 [style=dashed] n0000009b:port1 -> n00000019 [style=dashed] n0000009b:port2 -> n00000019 [style=dashed] n0000009b:port3 -> n00000019 [style=dashed] n0000009b:port4 -> n00000019 [style=dashed] n0000009b:port5 -> n00000019 [style=dashed] n0000009b:port6 -> n00000019 [style=dashed] n0000009b:port7 -> n00000019 [style=dashed] n0000009b:port8 -> n00000019 [style=dashed] n0000009b:port1 -> n0000001d [style=dashed] n0000009b:port2 -> n0000001d [style=dashed] n0000009b:port3 -> n0000001d [style=dashed] n0000009b:port4 -> n0000001d [style=dashed] n0000009b:port5 -> n0000001d [style=dashed] n0000009b:port6 -> n0000001d [style=dashed] n0000009b:port7 -> n0000001d [style=dashed] n0000009b:port8 -> n0000001d [style=dashed] n0000009b:port1 -> n00000021 [style=dashed] n0000009b:port2 -> n00000021 [style=dashed] n0000009b:port3 -> n00000021 [style=dashed] n0000009b:port4 -> n00000021 [style=dashed] n0000009b:port5 -> n00000021 [style=dashed] n0000009b:port6 -> n00000021 [style=dashed] n0000009b:port7 -> n00000021 [style=dashed] n0000009b:port8 -> n00000021 [style=dashed] n0000009b:port1 -> n00000025 [style=dashed] n0000009b:port2 -> n00000025 [style=dashed] n0000009b:port3 -> n00000025 [style=dashed] n0000009b:port4 -> n00000025 [style=dashed] n0000009b:port5 -> n00000025 [style=dashed] n0000009b:port6 -> n00000025 [style=dashed] n0000009b:port7 -> n00000025 [style=dashed] n0000009b:port8 -> n00000025 [style=dashed] n0000009b:port1 -> n00000029 [style=dashed] n0000009b:port2 -> n00000029 [style=dashed] n0000009b:port3 -> n00000029 [style=dashed] n0000009b:port4 -> n00000029 [style=dashed] n0000009b:port5 -> n00000029 [style=dashed] n0000009b:port6 -> n00000029 [style=dashed] n0000009b:port7 -> n00000029 [style=dashed] n0000009b:port8 -> n00000029 [style=dashed] n0000009b:port1 -> n0000002d [style=dashed] n0000009b:port2 -> n0000002d [style=dashed] n0000009b:port3 -> n0000002d [style=dashed] n0000009b:port4 -> n0000002d [style=dashed] n0000009b:port5 -> n0000002d [style=dashed] n0000009b:port6 -> n0000002d [style=dashed] n0000009b:port7 -> n0000002d [style=dashed] n0000009b:port8 -> n0000002d [style=dashed] n0000009b:port1 -> n00000031 [style=dashed] n0000009b:port2 -> n00000031 [style=dashed] n0000009b:port3 -> n00000031 [style=dashed] n0000009b:port4 -> n00000031 [style=dashed] n0000009b:port5 -> n00000031 [style=dashed] n0000009b:port6 -> n00000031 [style=dashed] n0000009b:port7 -> n00000031 [style=dashed] n0000009b:port8 -> n00000031 [style=dashed] n0000009b:port1 -> n00000035 [style=dashed] n0000009b:port2 -> n00000035 [style=dashed] n0000009b:port3 -> n00000035 [style=dashed] n0000009b:port4 -> n00000035 [style=dashed] n0000009b:port5 -> n00000035 [style=dashed] n0000009b:port6 -> n00000035 [style=dashed] n0000009b:port7 -> n00000035 [style=dashed] n0000009b:port8 -> n00000035 [style=dashed] n0000009b:port1 -> n00000039 [style=dashed] n0000009b:port2 -> n00000039 [style=dashed] n0000009b:port3 -> n00000039 [style=dashed] n0000009b:port4 -> n00000039 [style=dashed] n0000009b:port5 -> n00000039 [style=dashed] n0000009b:port6 -> n00000039 [style=dashed] n0000009b:port7 -> n00000039 [style=dashed] n0000009b:port8 -> n00000039 [style=dashed] n0000009b:port1 -> n0000003d [style=dashed] n0000009b:port2 -> n0000003d [style=dashed] n0000009b:port3 -> n0000003d [style=dashed] n0000009b:port4 -> n0000003d [style=dashed] n0000009b:port5 -> n0000003d [style=dashed] n0000009b:port6 -> n0000003d [style=dashed] n0000009b:port7 -> n0000003d [style=dashed] n0000009b:port8 -> n0000003d [style=dashed] n0000009b:port1 -> n00000041 [style=dashed] n0000009b:port2 -> n00000041 [style=dashed] n0000009b:port3 -> n00000041 [style=dashed] n0000009b:port4 -> n00000041 [style=dashed] n0000009b:port5 -> n00000041 [style=dashed] n0000009b:port6 -> n00000041 [style=dashed] n0000009b:port7 -> n00000041 [style=dashed] n0000009b:port8 -> n00000041 [style=dashed] n0000009b:port1 -> n00000045 [style=dashed] n0000009b:port2 -> n00000045 [style=dashed] n0000009b:port3 -> n00000045 [style=dashed] n0000009b:port4 -> n00000045 [style=dashed] n0000009b:port5 -> n00000045 [style=dashed] n0000009b:port6 -> n00000045 [style=dashed] n0000009b:port7 -> n00000045 [style=dashed] n0000009b:port8 -> n00000045 [style=dashed] n0000009b:port1 -> n00000049 [style=dashed] n0000009b:port2 -> n00000049 [style=dashed] n0000009b:port3 -> n00000049 [style=dashed] n0000009b:port4 -> n00000049 [style=dashed] n0000009b:port5 -> n00000049 [style=dashed] n0000009b:port6 -> n00000049 [style=dashed] n0000009b:port7 -> n00000049 [style=dashed] n0000009b:port8 -> n00000049 [style=dashed] n0000009b:port1 -> n0000004d [style=dashed] n0000009b:port2 -> n0000004d [style=dashed] n0000009b:port3 -> n0000004d [style=dashed] n0000009b:port4 -> n0000004d [style=dashed] n0000009b:port5 -> n0000004d [style=dashed] n0000009b:port6 -> n0000004d [style=dashed] n0000009b:port7 -> n0000004d [style=dashed] n0000009b:port8 -> n0000004d [style=dashed] n0000009b:port1 -> n00000051 [style=dashed] n0000009b:port2 -> n00000051 [style=dashed] n0000009b:port3 -> n00000051 [style=dashed] n0000009b:port4 -> n00000051 [style=dashed] n0000009b:port5 -> n00000051 [style=dashed] n0000009b:port6 -> n00000051 [style=dashed] n0000009b:port7 -> n00000051 [style=dashed] n0000009b:port8 -> n00000051 [style=dashed] n0000009b:port1 -> n00000055 [style=dashed] n0000009b:port2 -> n00000055 [style=dashed] n0000009b:port3 -> n00000055 [style=dashed] n0000009b:port4 -> n00000055 [style=dashed] n0000009b:port5 -> n00000055 [style=dashed] n0000009b:port6 -> n00000055 [style=dashed] n0000009b:port7 -> n00000055 [style=dashed] n0000009b:port8 -> n00000055 [style=dashed] n0000009b:port1 -> n00000059 [style=dashed] n0000009b:port2 -> n00000059 [style=dashed] n0000009b:port3 -> n00000059 [style=dashed] n0000009b:port4 -> n00000059 [style=dashed] n0000009b:port5 -> n00000059 [style=dashed] n0000009b:port6 -> n00000059 [style=dashed] n0000009b:port7 -> n00000059 [style=dashed] n0000009b:port8 -> n00000059 [style=dashed] n0000009b:port1 -> n0000005d [style=dashed] n0000009b:port2 -> n0000005d [style=dashed] n0000009b:port3 -> n0000005d [style=dashed] n0000009b:port4 -> n0000005d [style=dashed] n0000009b:port5 -> n0000005d [style=dashed] n0000009b:port6 -> n0000005d [style=dashed] n0000009b:port7 -> n0000005d [style=dashed] n0000009b:port8 -> n0000005d [style=dashed] n0000009b:port1 -> n00000061 [style=dashed] n0000009b:port2 -> n00000061 [style=dashed] n0000009b:port3 -> n00000061 [style=dashed] n0000009b:port4 -> n00000061 [style=dashed] n0000009b:port5 -> n00000061 [style=dashed] n0000009b:port6 -> n00000061 [style=dashed] n0000009b:port7 -> n00000061 [style=dashed] n0000009b:port8 -> n00000061 [style=dashed] n0000009b:port1 -> n00000065 [style=dashed] n0000009b:port2 -> n00000065 [style=dashed] n0000009b:port3 -> n00000065 [style=dashed] n0000009b:port4 -> n00000065 [style=dashed] n0000009b:port5 -> n00000065 [style=dashed] n0000009b:port6 -> n00000065 [style=dashed] n0000009b:port7 -> n00000065 [style=dashed] n0000009b:port8 -> n00000065 [style=dashed] n0000009b:port1 -> n00000069 [style=dashed] n0000009b:port2 -> n00000069 [style=dashed] n0000009b:port3 -> n00000069 [style=dashed] n0000009b:port4 -> n00000069 [style=dashed] n0000009b:port5 -> n00000069 [style=dashed] n0000009b:port6 -> n00000069 [style=dashed] n0000009b:port7 -> n00000069 [style=dashed] n0000009b:port8 -> n00000069 [style=dashed] n0000009b:port1 -> n0000006d [style=dashed] n0000009b:port2 -> n0000006d [style=dashed] n0000009b:port3 -> n0000006d [style=dashed] n0000009b:port4 -> n0000006d [style=dashed] n0000009b:port5 -> n0000006d [style=dashed] n0000009b:port6 -> n0000006d [style=dashed] n0000009b:port7 -> n0000006d [style=dashed] n0000009b:port8 -> n0000006d [style=dashed] n0000009b:port1 -> n00000071 [style=dashed] n0000009b:port2 -> n00000071 [style=dashed] n0000009b:port3 -> n00000071 [style=dashed] n0000009b:port4 -> n00000071 [style=dashed] n0000009b:port5 -> n00000071 [style=dashed] n0000009b:port6 -> n00000071 [style=dashed] n0000009b:port7 -> n00000071 [style=dashed] n0000009b:port8 -> n00000071 [style=dashed] n0000009b:port1 -> n00000075 [style=dashed] n0000009b:port2 -> n00000075 [style=dashed] n0000009b:port3 -> n00000075 [style=dashed] n0000009b:port4 -> n00000075 [style=dashed] n0000009b:port5 -> n00000075 [style=dashed] n0000009b:port6 -> n00000075 [style=dashed] n0000009b:port7 -> n00000075 [style=dashed] n0000009b:port8 -> n00000075 [style=dashed] n0000009b:port1 -> n00000079 [style=dashed] n0000009b:port2 -> n00000079 [style=dashed] n0000009b:port3 -> n00000079 [style=dashed] n0000009b:port4 -> n00000079 [style=dashed] n0000009b:port5 -> n00000079 [style=dashed] n0000009b:port6 -> n00000079 [style=dashed] n0000009b:port7 -> n00000079 [style=dashed] n0000009b:port8 -> n00000079 [style=dashed] n00000865 [label="{{} | ov2740 19-0036\n/dev/v4l-subdev4 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] n00000865:port0 -> n00000087:port0 }
Hi again, On 10/1/23 14:34, Hans de Goede wrote: > Hi, > > On 10/1/23 11:32, Laurent Pinchart wrote: >> Hi Hans, >> >> On Sun, Oct 01, 2023 at 11:14:33AM +0200, Hans de Goede via libcamera-devel wrote: >>> Hi All, >>> >>> I have raw bayer capture working from the cmdline, but after this naive patch: >>> >>> --- a/src/libcamera/pipeline/simple/simple.cpp >>> +++ b/src/libcamera/pipeline/simple/simple.cpp >>> @@ -196,6 +196,7 @@ static const SimplePipelineInfo supportedDevices[] = { >>> { "mxc-isi", {} }, >>> { "qcom-camss", {} }, >>> { "sun6i-csi", {} }, >>> + { "intel-ipu6", {} }, >>> }; >>> >>> } /* namespace */ >>> >>> >>> qcam still does not see the camera. I believe that this is likely caused >>> by the CSI2-receiver on the IPU6 not being so simple. It appears to have >>> some sort of cross-switch giving it a whole bunch of different inputs >>> and outputs and we need to set that up to connect the CSI data from the sensor >>> to one of the inputs and likewise make it dump the raw bayer data into >>> /dev/video#. >> >> Could you provide the output of media-ctl --print-dot ? It will help >> visualize the topology, the text representation is a monster. > > Attached. > > On 10/1/23 12:48, Andrey Konovalov wrote: >> Also if you prepend your qcam command with LIBCAMERA_LOG_LEVELS=SimplePipeline:DEBUG >> you will see how SimplePipeline handler is trying to configure the pipeline. > > LIBCAMERA_LOG_LEVELS=SimplePipeline:DEBUG qcam > does not log anything other then the libcamera version. > > "LIBCAMERA_LOG_LEVELS=*:DEBUG qcam" logs: > > [0:15:16.743042795] [5307] INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/home/hans/projects/libcamera/redhat-linux-build/src/ipa' to the IPA search path > [0:15:16.763804299] [5307] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /home/hans/projects/libcamera/redhat-linux-build/src/ipa/ipu3/ipa_ipu3.so is signed > [0:15:16.763909675] [5307] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/home/hans/projects/libcamera/redhat-linux-build/src/ipa/ipu3/ipa_ipu3.so' > [0:15:16.764150556] [5307] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /usr/lib64/libcamera/ipa_ipu3.so is signed > [0:15:16.764202449] [5307] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib64/libcamera/ipa_ipu3.so' > [0:15:16.764268394] [5307] INFO Camera camera_manager.cpp:284 libcamera v0.1.0+55-06d972b4 > [0:15:16.764738627] [5319] DEBUG Camera camera_manager.cpp:69 Starting camera manager > [0:15:16.781475753] [5319] DEBUG DeviceEnumerator device_enumerator.cpp:224 New media device "intel-ipu6" created from /dev/media0 > [0:15:16.781498544] [5319] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media0 due to 36 missing dependencies > [0:15:16.788819335] [5319] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found > [0:15:16.788839378] [5319] DEBUG DeviceEnumerator device_enumerator.cpp:252 Added device /dev/media0: intel-ipu6 > [0:15:16.789012574] [5319] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerIPU3' > [0:15:16.789027627] [5319] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerUVC' > > Hmm, this makes me wonder if it is even trying to use the SimplePipelineHandler at all ? p.s. I wonder if this may be caused by the ov2740 sensor driver not having all necessary features? Regards, Hans >>> Specifically I need to run the following script before capturing raw >>> bayer from /dev/video0 : >>> >>> ``` >>> #!/bin/bash >>> >>> MDEV=/dev/media0 >>> >>> media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" >>> >>> media-ctl -d $MDEV -V "\"ov2740 19-0036\":0 [fmt:SGRBG10/1932x1092]" >>> media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":0 [fmt:SGRBG10/1932x1092]" >>> media-ctl -d $MDEV -V "\"Intel IPU6 CSI2 1\":1 [fmt:SGRBG10/1932x1092]" >>> >>> media-ctl -d $MDEV -l "\"ov2740 19-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]" >>> media-ctl -d $MDEV -l "\"Intel IPU6 CSI2 1\":1 -> \"Intel IPU6 ISYS Capture 0\":0[5]" >>> ``` >>> >>> Full media-ctl -p output below. So I guess that even without the ISP IPU6 >>> is probably going to need its own pipelinehandler, or am I missing something here? >> >> [snip]
Hi Hans On Sun, Oct 01, 2023 at 02:34:39PM +0200, Hans de Goede via libcamera-devel wrote: [snip] > [0:15:16.789012574] [5319] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerIPU3' > [0:15:16.789027627] [5319] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerUVC' Have you compiled the Simple pipeline handler in at all ? cd ${builddir}; meson --reconfigure will show you the selected compilation options. meson --reconfigure -Dpipelines=simple will enable the simple pipeline handler. what's you nick on irc ? It's probably quicker if we discuss this in #libcamera ? :)
--- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -196,6 +196,7 @@ static const SimplePipelineInfo supportedDevices[] = { { "mxc-isi", {} }, { "qcom-camss", {} }, { "sun6i-csi", {} }, + { "intel-ipu6", {} }, }; } /* namespace */