Camera not work correctly

Jetson Linux r35.4.1
I have two I2C buses, each connected to one MAX9296A deserializer, with each deserializer supporting two cameras for a total of four cameras. I’m only connecting one camera for testing

gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink -ev

I got

[ 3631.630044] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 3631.639194] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 3631.649721] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 3631.657437] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 3631.668098] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 3631.675813] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 3631.686885] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

trace log is attached, what is the problem and how can I figure out this?
trace.txt (4.2 KB)

Hi @lzyu1110,

The Null VI channel error suggests that no valid frame data is being captured. Just a few questions to better understand your issue:

  • Are you using a devkit or a custom board?
  • Are you using any custom drivers?
  • Could you share dmesg logs and device tree?

Regards,
Francis Guindon

Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: http://www.ridgerun.com/

Hi,

I use a custom board and a custom camera driver provided by the camera vendor.
dmesg.txt (111.2 KB)
sgx-yuv-gmsl.txt (32.3 KB)
tegra234-p3768-sg6c-orin-gmsl2-m.txt (4.0 KB)

You may need to probe the MIPI signal to confirm output data due to didn’t receive any validate data from the trace log.

When I reduced my configuration to 2 channels, both 2 cameras using cam-i2c worked well.
sgx-yuv-gmsl.dtsi.txt (17.0 KB)
tegra234-p3768-sg6c-orin-gmsl2-m.dtsi.txt (3.2 KB)

What’s do you mean 2 channels?

I have a total of 4 cameras. 2 of them are connected to the cam-i2c bus, and the other 2 to i2c7. In the tegra-capture-vi node, num-channels is set to 4. For now, I’ve temporarily disabled the devices under i2c7 and the other 2 work well. Since each camera corresponds to one channel, I modified the related channel configurations accordingly.

Now I want to rule out any driver-related issues. I’m attempting to disable the cameras connected to cam-i2c, and enable the two cameras mounted under i2c-7 instead. These two cameras are using CSI-2 and CSI-3, and I have set port-index = <2>. However, my test failed. Could there be an issue with how the device tree is configured or bound?
tegra234-p3768-sg6c-orin-gmsl2-m (2).dtsi.txt (3.2 KB)
sgx-yuv-gmsl (2).dtsi.txt (17.0 KB)

What are these 4 cameras connect to? Which one is working which one is failed?

They both connect to 9296A (actually I have two 9296A chips).
The first pair of cameras, which are connected as shown in the diagram below, use CSI-0 and CSI-1, and they are working properly.


The second pair of cameras, connected as shown in the diagram below, use CSI-2 and CSI-3, but they fail to work.

Why CKAP/CKAN connect to CSI1_CLKP/CSI1_CLKN?

So should csi2_clk be the correct clock to use in this case?

Yes, should be CSI2_clk

I wired it now and measured the CSI_CLK and CSI_DATA signals on the MAX9296 chip under i2c-7.They both appear to be fine. But there is no video output like before.

proc-device-tree.dts.txt (422.1 KB)

Get the trace log to check.

Is this still an issue to support? Any result can be shared?

no it still works failed.

There is no update from you for a period, assuming this is not an issue anymore.
Hence, we are closing this topic. If need further support, please open a new one.
Thanks
~0730

Can you refer to previous comments to get the trace log?