Tegra_channel_error_status:error 4000

Hello,

I use custom carrier board for Jetson Nano with 3 csi ports (2 lane used), JetPack 4.5.1
When I connect IMX477 to 1 port its working fine.
When I connect IMX477 to 2 or 3 port it’s not working. I get follow error:

[  428.628891] vi 54080000.vi: Calibrate csi port 4
[  428.958734] vi 54080000.vi: cil_settingtime was autocalculated
[  428.958740] vi 54080000.vi: csi clock settle time: 13, cil settle time: 10
[  429.035787] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 0
[  429.052538] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 1
[  429.069121] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 2
[  429.085857] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 3
[  429.102987] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 4
[  429.120112] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 5
[  429.135927] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 6
[  429.152584] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 7
[  429.169361] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 8
[  429.185914] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 9
[  429.203180] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 10
[  429.219322] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 11
[  429.235984] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 12
[  429.252657] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 13
[  429.269216] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 14
[  429.285876] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 15

Sensor driver is the same, DT is edited to CSI (EF), like this: 1.dtsi (6.7 KB)

If I try to run

gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1" ! nvvidconv ! fakesink

I get kernel panic and Jetson auto reboots.

Where the problem can be? How to fix it?

Enable the dev_dbg() in /kernel/nvidia/drivers/media/platform/tegra/camera/camera_common.c to confirm the port-index is correct.

[  182.971452] imx477 0-001a: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  182.971500] imx477 0-001a: camera_common_dpd_disable: csi 4
[  183.440606] imx477 0-001a: camera_common_dpd_enable: csi 4
[  183.440626] imx477 0-001a: camera_common_mclk_disable: disable MCLK
[  183.440675] imx477 0-001a: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  183.440787] imx477 0-001a: camera_common_dpd_disable: csi 4
[  183.748634] imx477 0-001a: camera_common_try_fmt: size 1920 x 1080
[  183.748700] imx477 0-001a: camera_common_try_fmt: use_sensor_mode_id 1
[  183.748834] imx477 0-001a: camera_common_s_fmt(12303) size 1920 x 1080
[  183.748917] imx477 0-001a: camera_common_try_fmt: size 1920 x 1080
[  183.748960] imx477 0-001a: camera_common_try_fmt: use_sensor_mode_id 1
[  183.861558] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 0
[  183.878226] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 1
....
[  185.128520] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 76
[  185.145007] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 77
[  185.156207] imx477 0-001a: camera_common_dpd_enable: csi 4
[  185.156219] imx477 0-001a: camera_common_mclk_disable: disable MCLK

Look like everything is ok (port 4, it’s CSI EF)

Just for testing, when I have change port-index to 2, I see another error. So looks like, port-index=4 is correct value.

[  139.360942] imx477 0-001a: camera_common_dpd_disable: csi 2
...
[  139.953008] video4linux video0: frame start syncpt timeout!0
[  140.157371] video4linux video0: frame start syncpt timeout!0
...

Looks like the configure without problem.
You may need check with HW guide to probe the signal to debug further.