CSI2 Camera does not work ON NANO

dear sir,

Hardware connection:
Analog Video Input---->Video decode ->MIPI---->nano

camera hardware configuration:
1920X1080@30fps

after modify kernel and bsp,Run as below at terminal:
v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=100 --stream-to=video0.yuv

Kernel error reporting as below:
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
vi 54080000.vi: Calibrate csi port 0
nvp6188,nvp6188_s_stream,enable=0
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_g_input_status
vi 54080000.vi: cil_settingtime was autocalculated
vi 54080000.vi: csi clock settle time: 13, cil settle time: 10
nvp6188,nvp6188_s_stream,enable=1
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 0
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 1
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 2
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 3
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 4
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 5
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 6
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 7
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 8
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 9
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 10
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 11
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 12
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 13
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 14
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 15
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 16
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 17
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 18
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 19
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 20
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 21
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 22
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 23
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 24
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 25
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 26
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 27
nvp6188,nvp6188_s_stream,enable=0
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–

Please enable the debug print of the csi2_fops.c/vi2_fops.c to get more information.

echo file csi2_fops.c +p > /sys/kernel/debug/dynamic_debug/control
echo file vi2_fops.c +p > /sys/kernel/debug/dynamic_debug/control
echo file channel.c +p > /sys/kernel/debug/dynamic_debug/control
echo file capture.c +p > /sys/kernel/debug/dynamic_debug/control
echo file capture_vi_channel.c +p > /sys/kernel/debug/dynamic_debug/control

hi ShaneCCC,tks for your reply,the debug log is as follow:
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_s_stream,enable=1
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
vi 54080000.vi: Calibrate csi port 0
nvp6188,nvp6188_s_stream,enable=0
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_g_input_status
vi 54080000.vi: cil_settingtime was autocalculated
vi 54080000.vi: csi clock settle time: 13, cil settle time: 10
nvp6188,nvp6188_s_stream,enable=1
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 0
video4linux video0: free_ring_buffers: capture init latency is 45 ms
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 1
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 2
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 3
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 4
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 5
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 6
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 7
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 8
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 9
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 10
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 11
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 12
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 13
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 14
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 15
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 16
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 17
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 18
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 19
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 20
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 21
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 22
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 23
nvp6188,nvp6188_s_stream,enable=0
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–

Looks like the debug print not enable properly.
Have “sudo su” the enter the echo xxx command.

yes, i’m sure using “sudo su” command,Is there any other way to check?

Could you disable remove the tegra_channel_ec_recover() from the vi2_fops.c to disable the recovery for check the capture failed status.

do you mean comment the tegra_channel_ec_recove() in vi2_fops.c

Yes

hi,ShaneCCC,
I comment the tegra_channel_ec_recove() in vi2_fops.c,the kernel msg looks the same as before,
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_s_stream,enable=1
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
vi 54080000.vi: Calibrate csi port 0
nvp6188,nvp6188_s_stream,enable=0
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
nvp6188,nvp6188_g_input_status
vi 54080000.vi: cil_settingtime was autocalculated
vi 54080000.vi: csi clock settle time: 13, cil settle time: 10
nvp6188,nvp6188_s_stream,enable=1
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 0
video4linux video0: free_ring_buffers: capture init latency is 39 ms
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 1
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 2
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 3
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 4
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 5
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 6
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 7
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 8
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 9
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 10
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 11
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 12
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 13
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 14
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 15
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 16
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 17
vi 54080000.vi: tegra_channel_error_status:error 20022 frame 18
nvp6188,nvp6188_s_stream,enable=0
nvp6188,nvp6188_power_on++
nvp6188,nvp6188_power_on–

i add printk log in tegra_channel_capture_error(),but I can’t see any information about tegra_channel_capture_error in the dmesg log.
maybe i have some problem before this??

static void tegra_channel_capture_error(struct tegra_channel *chan)
{
u32 val;
int index = 0;
struct tegra_csi_channel *csi_chan;
struct tegra_csi_device *csi = chan->vi->csi;

    /* Find connected csi_channel */
    csi_chan = find_linked_csi_channel(chan, csi);
    printk("%s:%d\n",__func__,chan->valid_ports);

hi ShaneCCC
have some good news,Is it possible that it is a hardware problem?

Do you mean HW of sensor board? Yes, maybe possible.