kitakar5525 / surface-ipu3-cameras

20 stars 8 forks source link

libcamera: sensors available only up to two (ov7251 ignored) #3

Open kitakar5525 opened 4 years ago

kitakar5525 commented 4 years ago

When there is only one or two connections between sensors and cio2, libcamera recognizes ov7251 (IR cam) as available sensor:

$ sudo cam -l
[0:01:43.094828826] [3623]  INFO Camera camera_manager.cpp:287 libcamera v0.0.0+1758-1e8c91b6
[0:01:43.105153761] [3624]  INFO IPU3 ipu3.cpp:813 Registered Camera[0] "\_SB_.PCI0.I2C3.CAM3" connected to CSI-2 receiver 2
Available cameras:
1: \_SB_.PCI0.I2C3.CAM3
$ LIBCAMERA_LOG_LEVELS="*:DEBUG" cam -l

``` [0:02:03.660091707] [3649] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerIPU3" [0:02:03.660577008] [3649] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerRPi" [0:02:03.660619104] [3649] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerRkISP1" [0:02:03.660639207] [3649] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "SimplePipelineHandler" [0:02:03.660655482] [3649] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerUVC" [0:02:03.660721772] [3649] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerVimc" [0:02:03.660778926] [3649] DEBUG IPAProxy ipa_proxy.cpp:290 Registered proxy "IPAProxyLinux" [0:02:03.660794253] [3649] DEBUG IPAProxy ipa_proxy.cpp:290 Registered proxy "IPAProxyThread" [0:02:03.661311745] [3649] DEBUG IPAModule ipa_module.cpp:330 ipa_rkisp1.so: IPA module /usr/lib/libcamera/ipa_rkisp1.so is signed [0:02:03.661402921] [3649] DEBUG IPAManager ipa_manager.cpp:238 Loaded IPA module '/usr/lib/libcamera/ipa_rkisp1.so' [0:02:03.662014547] [3649] DEBUG IPAModule ipa_module.cpp:330 ipa_rpi.so: IPA module /usr/lib/libcamera/ipa_rpi.so is signed [0:02:03.662125500] [3649] DEBUG IPAManager ipa_manager.cpp:238 Loaded IPA module '/usr/lib/libcamera/ipa_rpi.so' [0:02:03.662232352] [3649] DEBUG IPAModule ipa_module.cpp:330 ipa_vimc.so: IPA module /usr/lib/libcamera/ipa_vimc.so is signed [0:02:03.662276583] [3649] DEBUG IPAManager ipa_manager.cpp:238 Loaded IPA module '/usr/lib/libcamera/ipa_vimc.so' [0:02:03.662318781] [3649] INFO Camera camera_manager.cpp:287 libcamera v0.0.0+1758-1e8c91b6 [0:02:03.662470146] [3650] DEBUG Camera camera_manager.cpp:102 Starting camera manager [0:02:03.665154286] [3650] DEBUG DeviceEnumerator device_enumerator.cpp:223 New media device "ipu3-imgu" created from /dev/media1 [0:02:03.665337720] [3650] DEBUG DeviceEnumerator device_enumerator_udev.cpp:95 Defer media device /dev/media1 due to 12 missing dependencies [0:02:03.666950874] [3650] DEBUG DeviceEnumerator device_enumerator_udev.cpp:320 All dependencies for media device /dev/media1 found [0:02:03.666989731] [3650] DEBUG DeviceEnumerator device_enumerator.cpp:251 Added device /dev/media1: ipu3-imgu [0:02:03.667259328] [3650] DEBUG DeviceEnumerator device_enumerator.cpp:223 New media device "ipu3-cio2" created from /dev/media0 [0:02:03.667298831] [3650] DEBUG DeviceEnumerator device_enumerator_udev.cpp:95 Defer media device /dev/media0 due to 9 missing dependencies [0:02:03.668395201] [3650] DEBUG DeviceEnumerator device_enumerator_udev.cpp:320 All dependencies for media device /dev/media0 found [0:02:03.668419875] [3650] DEBUG DeviceEnumerator device_enumerator.cpp:251 Added device /dev/media0: ipu3-cio2 [0:02:03.668829917] [3650] DEBUG DeviceEnumerator device_enumerator.cpp:311 Successful match for media device "ipu3-cio2" [0:02:03.668874294] [3650] DEBUG DeviceEnumerator device_enumerator.cpp:311 Successful match for media device "ipu3-imgu" [0:02:03.668932582] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov7251 8-0060[0] -> ipu3-csi2 2[0]: 0 [0:02:03.668949046] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0[3] -> ipu3-imgu 0 viewfinder[0]: 0 [0:02:03.668961853] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0[4] -> ipu3-imgu 0 3a stat[0]: 0 [0:02:03.668972467] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0 input[0] -> ipu3-imgu 0[0]: 0 [0:02:03.668984064] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0 parameters[0] -> ipu3-imgu 0[1]: 0 [0:02:03.668996296] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1[3] -> ipu3-imgu 1 viewfinder[0]: 0 [0:02:03.669005820] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1[4] -> ipu3-imgu 1 3a stat[0]: 0 [0:02:03.669017487] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1 input[0] -> ipu3-imgu 1[0]: 0 [0:02:03.669027905] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1 parameters[0] -> ipu3-imgu 1[1]: 0 [0:02:03.669315228] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video4[out]: Opened device PCI:input: ipu3-imgu: ipu3-imgu [0:02:03.669349535] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video6[cap]: Opened device PCI:output: ipu3-imgu: ipu3-imgu [0:02:03.669380364] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video7[cap]: Opened device PCI:viewfinder: ipu3-imgu: ipu3-imgu [0:02:03.669410627] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video8[cap]: Opened device PCI:3a stat: ipu3-imgu: ipu3-imgu [0:02:03.669469117] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video9[out]: Opened device PCI:input: ipu3-imgu: ipu3-imgu [0:02:03.669499708] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video11[cap]: Opened device PCI:output: ipu3-imgu: ipu3-imgu [0:02:03.669528301] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video12[cap]: Opened device PCI:viewfinder: ipu3-imgu: ipu3-imgu [0:02:03.669560063] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video13[cap]: Opened device PCI:3a stat: ipu3-imgu: ipu3-imgu [0:02:03.671652846] [3650] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov7251 8-0060[0] -> ipu3-csi2 2[0]: 1 [0:02:03.671757970] [3650] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video2[cap]: Opened device PCI:0000:00:14.3: ipu3-cio2: Intel IPU3 CIO2 [0:02:03.672083207] [3650] INFO IPU3 ipu3.cpp:813 Registered Camera[0] "\_SB_.PCI0.I2C3.CAM3" connected to CSI-2 receiver 2 [0:02:03.672141943] [3650] DEBUG Camera camera_manager.cpp:152 Pipeline handler "PipelineHandlerIPU3" matched Available cameras: 1: \_SB_.PCI0.I2C3.CAM3 [0:02:03.672566398] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video13[cap]: Releasing buffers [0:02:03.672589485] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video13[cap]: 0 buffers requested. [0:02:03.672662441] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video12[cap]: Releasing buffers [0:02:03.672674956] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video12[cap]: 0 buffers requested. [0:02:03.672695769] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video11[cap]: Releasing buffers [0:02:03.672706978] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video11[cap]: 0 buffers requested. [0:02:03.672732088] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video9[out]: Releasing buffers [0:02:03.672747306] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video9[out]: 0 buffers requested. [0:02:03.672804492] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video8[cap]: Releasing buffers [0:02:03.672817020] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video8[cap]: 0 buffers requested. [0:02:03.672835182] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video7[cap]: Releasing buffers [0:02:03.672845757] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video7[cap]: 0 buffers requested. [0:02:03.672869801] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video6[cap]: Releasing buffers [0:02:03.672880544] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video6[cap]: 0 buffers requested. [0:02:03.672898412] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video4[out]: Releasing buffers [0:02:03.672909030] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video4[out]: 0 buffers requested. [0:02:03.672950510] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video2[cap]: Releasing buffers [0:02:03.672962568] [3650] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video2[cap]: 0 buffers requested. ```

However, if there are more than two connections, ov7251 sensor won't be enumarated as available anymore:

$ cam -l
[0:02:33.307258352] [3423]  INFO Camera camera_manager.cpp:287 libcamera v0.0.0+1761-6de4772f
[0:02:33.317055275] [3424]  INFO IPU3 ipu3.cpp:813 Registered Camera[0] "\_SB_.PCI0.I2C3.CAMR" connected to CSI-2 receiver 0
[0:02:33.319785186] [3424]  INFO IPU3 ipu3.cpp:813 Registered Camera[1] "\_SB_.PCI0.I2C2.CAMF" connected to CSI-2 receiver 1
Available cameras:
1: \_SB_.PCI0.I2C3.CAMR
2: \_SB_.PCI0.I2C2.CAMF

When looking at verbose log, the ov7251 sensor is at least recognized:

$ LIBCAMERA_LOG_LEVELS="*:DEBUG" cam -l

``` [0:03:02.346451188] [3888] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerIPU3" [0:03:02.347048702] [3888] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerRPi" [0:03:02.347078673] [3888] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerRkISP1" [0:03:02.347096363] [3888] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "SimplePipelineHandler" [0:03:02.347115385] [3888] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerUVC" [0:03:02.347188734] [3888] DEBUG Pipeline pipeline_handler.cpp:693 Registered pipeline handler "PipelineHandlerVimc" [0:03:02.347254422] [3888] DEBUG IPAProxy ipa_proxy.cpp:290 Registered proxy "IPAProxyLinux" [0:03:02.347271684] [3888] DEBUG IPAProxy ipa_proxy.cpp:290 Registered proxy "IPAProxyThread" [0:03:02.347792050] [3888] DEBUG IPAModule ipa_module.cpp:330 ipa_rkisp1.so: IPA module /usr/lib/libcamera/ipa_rkisp1.so is signed [0:03:02.347886469] [3888] DEBUG IPAManager ipa_manager.cpp:238 Loaded IPA module '/usr/lib/libcamera/ipa_rkisp1.so' [0:03:02.348724731] [3888] DEBUG IPAModule ipa_module.cpp:330 ipa_rpi.so: IPA module /usr/lib/libcamera/ipa_rpi.so is signed [0:03:02.348826997] [3888] DEBUG IPAManager ipa_manager.cpp:238 Loaded IPA module '/usr/lib/libcamera/ipa_rpi.so' [0:03:02.348996962] [3888] DEBUG IPAModule ipa_module.cpp:330 ipa_vimc.so: IPA module /usr/lib/libcamera/ipa_vimc.so is signed [0:03:02.349037176] [3888] DEBUG IPAManager ipa_manager.cpp:238 Loaded IPA module '/usr/lib/libcamera/ipa_vimc.so' [0:03:02.349097429] [3888] INFO Camera camera_manager.cpp:287 libcamera v0.0.0+1761-6de4772f [0:03:02.349257860] [3889] DEBUG Camera camera_manager.cpp:102 Starting camera manager [0:03:02.352439811] [3889] DEBUG DeviceEnumerator device_enumerator.cpp:223 New media device "ipu3-imgu" created from /dev/media1 [0:03:02.352657437] [3889] DEBUG DeviceEnumerator device_enumerator_udev.cpp:95 Defer media device /dev/media1 due to 12 missing dependencies [0:03:02.354483419] [3889] DEBUG DeviceEnumerator device_enumerator_udev.cpp:320 All dependencies for media device /dev/media1 found [0:03:02.354533307] [3889] DEBUG DeviceEnumerator device_enumerator.cpp:251 Added device /dev/media1: ipu3-imgu [0:03:02.354892205] [3889] DEBUG DeviceEnumerator device_enumerator.cpp:223 New media device "ipu3-cio2" created from /dev/media0 [0:03:02.354948740] [3889] DEBUG DeviceEnumerator device_enumerator_udev.cpp:95 Defer media device /dev/media0 due to 11 missing dependencies [0:03:02.356643083] [3889] DEBUG DeviceEnumerator device_enumerator_udev.cpp:320 All dependencies for media device /dev/media0 found [0:03:02.356690826] [3889] DEBUG DeviceEnumerator device_enumerator.cpp:251 Added device /dev/media0: ipu3-cio2 [0:03:02.357186669] [3889] DEBUG DeviceEnumerator device_enumerator.cpp:311 Successful match for media device "ipu3-cio2" [0:03:02.357264976] [3889] DEBUG DeviceEnumerator device_enumerator.cpp:311 Successful match for media device "ipu3-imgu" [0:03:02.357327960] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov5693 7-0036[0] -> ipu3-csi2 1[0]: 0 [0:03:02.357342791] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov7251 8-0060[0] -> ipu3-csi2 2[0]: 0 [0:03:02.357355411] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov8865 8-0010[0] -> ipu3-csi2 0[0]: 0 [0:03:02.357367839] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0[3] -> ipu3-imgu 0 viewfinder[0]: 0 [0:03:02.357377260] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0[4] -> ipu3-imgu 0 3a stat[0]: 0 [0:03:02.357387290] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0 input[0] -> ipu3-imgu 0[0]: 0 [0:03:02.357396898] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 0 parameters[0] -> ipu3-imgu 0[1]: 0 [0:03:02.357408145] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1[3] -> ipu3-imgu 1 viewfinder[0]: 0 [0:03:02.357417691] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1[4] -> ipu3-imgu 1 3a stat[0]: 0 [0:03:02.357427197] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1 input[0] -> ipu3-imgu 1[0]: 0 [0:03:02.357437452] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media1[ipu3-imgu]: ipu3-imgu 1 parameters[0] -> ipu3-imgu 1[1]: 0 [0:03:02.357752011] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video4[out]: Opened device PCI:input: ipu3-imgu: ipu3-imgu [0:03:02.357808207] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video6[cap]: Opened device PCI:output: ipu3-imgu: ipu3-imgu [0:03:02.357837925] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video7[cap]: Opened device PCI:viewfinder: ipu3-imgu: ipu3-imgu [0:03:02.357867588] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video8[cap]: Opened device PCI:3a stat: ipu3-imgu: ipu3-imgu [0:03:02.357933725] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video9[out]: Opened device PCI:input: ipu3-imgu: ipu3-imgu [0:03:02.357964141] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video11[cap]: Opened device PCI:output: ipu3-imgu: ipu3-imgu [0:03:02.357991462] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video12[cap]: Opened device PCI:viewfinder: ipu3-imgu: ipu3-imgu [0:03:02.358017629] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video13[cap]: Opened device PCI:3a stat: ipu3-imgu: ipu3-imgu [0:03:02.360200237] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov8865 8-0010[0] -> ipu3-csi2 0[0]: 1 [0:03:02.360323455] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video0[cap]: Opened device PCI:0000:00:14.3: ipu3-cio2: Intel IPU3 CIO2 [0:03:02.360697818] [3889] INFO IPU3 ipu3.cpp:813 Registered Camera[0] "\_SB_.PCI0.I2C3.CAMR" connected to CSI-2 receiver 0 [0:03:02.361565015] [3889] DEBUG MediaDevice media_device.cpp:808 /dev/media0[ipu3-cio2]: ov5693 7-0036[0] -> ipu3-csi2 1[0]: 1 [0:03:02.361648113] [3889] DEBUG V4L2 v4l2_videodevice.cpp:572 /dev/video1[cap]: Opened device PCI:0000:00:14.3: ipu3-cio2: Intel IPU3 CIO2 [0:03:02.361759870] [3889] INFO IPU3 ipu3.cpp:813 Registered Camera[1] "\_SB_.PCI0.I2C2.CAMF" connected to CSI-2 receiver 1 [0:03:02.361781421] [3889] DEBUG Camera camera_manager.cpp:152 Pipeline handler "PipelineHandlerIPU3" matched Available cameras: 1: \_SB_.PCI0.I2C3.CAMR 2: \_SB_.PCI0.I2C2.CAMF [0:03:02.362334258] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video13[cap]: Releasing buffers [0:03:02.362365257] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video13[cap]: 0 buffers requested. [0:03:02.362468204] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video12[cap]: Releasing buffers [0:03:02.362478612] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video12[cap]: 0 buffers requested. [0:03:02.362502633] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video11[cap]: Releasing buffers [0:03:02.362511719] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video11[cap]: 0 buffers requested. [0:03:02.362525035] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video9[out]: Releasing buffers [0:03:02.362534167] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video9[out]: 0 buffers requested. [0:03:02.362594413] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video8[cap]: Releasing buffers [0:03:02.362604706] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video8[cap]: 0 buffers requested. [0:03:02.362618001] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video7[cap]: Releasing buffers [0:03:02.362626582] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video7[cap]: 0 buffers requested. [0:03:02.362639253] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video6[cap]: Releasing buffers [0:03:02.362647858] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video6[cap]: 0 buffers requested. [0:03:02.362660007] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video4[out]: Releasing buffers [0:03:02.362668705] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video4[out]: 0 buffers requested. [0:03:02.362738475] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video0[cap]: Releasing buffers [0:03:02.362749245] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video0[cap]: 0 buffers requested. [0:03:02.362835256] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1363 /dev/video1[cap]: Releasing buffers [0:03:02.362847582] [3889] DEBUG V4L2 v4l2_videodevice.cpp:1135 /dev/video1[cap]: 0 buffers requested. ```

kbingham commented 3 years ago

Sorry only just come across this. Known issue I believe. There should be no limitation we need to update libcamera to know to look for more sensors and handle them correctly.

There might also be a need to handle media controller routing but it's all feasible.

Until now the only ipu3 devices we had only had 2 sensors.

With the sgo2 we should be able to test this with more cameras though.

kitakar5525 commented 3 years ago

Thanks!

With the sgo2 we should be able to test this with more cameras though.

Now the latest bridge driver can make connections without real sensor drivers. To try to make connections for all the sensors, one can add ACPI HIDs into supported_devices array like this: https://github.com/kitakar5525/linux-kernel/commit/0ec2c17c6b743c0cfb40c8486b6aff83295cbff6

But if we make all the connections, we need to load all the corresponding sensor drivers for userspace apps to detect sensors (https://github.com/kitakar5525/surface-ipu3-cameras/issues/1) though