MW_ACK_DONE syncpoint time out!0 on Jetson Nano R32.4.4

Hi,
camera is connected to Jetson nano through FPD LINK III.
using this command to capture an image:
v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=frame.raw --stream-count=1
and get this feedback in dmesg:
video4linux video0: tegra_channel_capture_done: MW_ACK_DONE syncpoint time out!0

Any tipp and solutions?
Thanks a lot!

Enable more log to check if can get more clue.

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

[ 183.614060] vgxy61 7-0010: vgxy61_power_on ffffffc0cd693c18
[ 183.643871] vgxy61 7-0010: vgxy61_set_mode ffffffc0f18bde70
[ 183.643876] vgxy61 7-0010: vgxy61_start_streaming ffffffc0f18bde70
[ 183.644176] reg:0x305, val:0x8
[ 183.644460] reg:0x30a, val:0x2a
[ 183.644748] reg:0x530, val:0x0
[ 183.645033] reg:0x400, val:0xc
[ 183.645319] reg:0x401, val:0x0
[ 183.645606] reg:0x404, val:0x8b
[ 183.645892] reg:0x405, val:0x7
[ 183.646179] reg:0x402, val:0x3e
[ 183.646464] reg:0x403, val:0x0
[ 183.646750] reg:0x406, val:0x75
[ 183.647121] reg:0x407, val:0x4
[ 183.647519] reg:0x312, val:0xff
[ 183.647907] reg:0x51a, val:0x86
[ 183.648292] reg:0x51b, val:0x14
[ 183.648298] vgxy61 7-0010: apply_exposure request expo 50 ms
[ 183.649574] reg:0x504, val:0x0
[ 183.649923] reg:0x505, val:0x0
[ 183.650204] reg:0x500, val:0x65
[ 183.650490] reg:0x501, val:0xf
[ 183.650839] reg:0x504, val:0x8a
[ 183.651127] reg:0x505, val:0x1
[ 183.651132] vgxy61 7-0010: apply_exposure applied expo 50 ms
[ 183.651414] reg:0x202, val:0x2
[ 183.651768] vgxy61 7-0010: vgxy61_poll_reg: got 2 / waiting 0 => ret = 0
[ 183.671411] vgxy61 7-0010: vgxy61_poll_reg: got 0 / waiting 0 => ret = 0
[ 183.671782] vgxy61 7-0010: vgxy61_poll_reg: got 4 / waiting 4 => ret = 0
[ 183.671784] start streaming successfully.
[ 184.087451] video4linux video0: tegra_channel_capture_done: MW_ACK_DONE syncpoint time out!0
[ 184.096710] vgxy61 7-0010: vgxy61_stop_streaming ffffffc0f18bde70
[ 184.097269] reg:0x202, val:0x1
[ 184.098039] vgxy61 7-0010: vgxy61_poll_reg: got 1 / waiting 0 => ret = 0
[ 184.116111] vgxy61 7-0010: vgxy61_poll_reg: got 1 / waiting 0 => ret = 0
[ 184.136457] vgxy61 7-0010: vgxy61_poll_reg: got 1 / waiting 0 => ret = 0
[ 184.157005] vgxy61 7-0010: vgxy61_poll_reg: got 1 / waiting 0 => ret = 0
[ 184.176567] vgxy61 7-0010: vgxy61_poll_reg: got 1 / waiting 0 => ret = 0
[ 184.197034] vgxy61 7-0010: vgxy61_poll_reg: got 0 / waiting 0 => ret = 0
[ 184.198116] vgxy61 7-0010: vgxy61_poll_reg: got 3 / waiting 3 => ret = 0
[ 184.213725] vgxy61 7-0010: vgxy61_power_off ffffffc0cd693c18

the others are just register oprations…

Should have REG dump from below function from below function in csi2_fops.c

oid tegra_csi_status(struct tegra_csi_channel *chan, int port_idx)
100  {
101  	int i;
102  	u32 val;
103  	struct tegra_csi_port *port;
104  
105  	for (i = 0; i < chan->numports; i++) {
106  		port = &chan->ports[i];
107  		val = pp_read(port, TEGRA_CSI_PIXEL_PARSER_STATUS);
108  
109  		dev_dbg(chan->csi->dev,
110  			"TEGRA_CSI_PIXEL_PARSER_STATUS 0x%08x\n",
111  			val);
112  
113  		val = cil_read(port, TEGRA_CSI_CIL_STATUS);
114  		dev_dbg(chan->csi->dev,
115  			"TEGRA_CSI_CIL_STATUS 0x%08x\n", val);
116  
117  		val = cil_read(port, TEGRA_CSI_CILX_STATUS);
118  		dev_dbg(chan->csi->dev,
119  			"TEGRA_CSI_CILX_STATUS 0x%08x\n", val);
120  	}
121  }

I don´t know where would this function be called…
actually i have the similar ISSUE as this post: Custom CSI camera frames contain only zeros - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums
but how to match the height and the active_h? what does it mean less height…

in driver:
#define VGX761_WIDTH 1944
#define VGX761_HEIGH 1204

in device tree:
active_w = “1280”;
active_h = “720”;

ist it okay?

ok these messages I get:

[ 5955.236024] start streaming successfully.
[ 5955.771632] video4linux video0: tegra_channel_capture_done: MW_ACK_DONE syncpoint time out!0
[ 5955.780579] vi 54080000.vi: TEGRA_CSI_PIXEL_PARSER_STATUS 0x00000080
[ 5955.780629] vi 54080000.vi: TEGRA_CSI_CIL_STATUS 0x00000000
[ 5955.780677] vi 54080000.vi: TEGRA_CSI_CILX_STATUS 0x00000000
[ 5955.780923] vi 54080000.vi: cil_settingtime was autocalculated
[ 5955.780946] vi 54080000.vi: csi clock settle time: 13, cil settle time: 10

The error tell short frame below is the information from TRM. Looks like the output less 720 lines.

PPA_SHORT_FRAME: Set when CSI-PPA receives a short frame. This bit gets set even if
CSI_PPA_PAD_FRAME specifies that short frames are to be padded to the correct line length.

thanks for the reply!
what else can I do to make it working? I get this problem since days…

Make sure the output size and report correct size or reduce the lines to narrow down it.

2.3 million pixels (1944 x1204) at 60 fps (MIPI) in 1/2.5” optical format with
microlens

this is the camera I´m using.

Hi ShaneCCC,
I have read this:
Jetson/l4t/Camera BringUp - eLinux.org

please review the configuration of “line_length” in sensor driver
try to increase the delay between video lines data send via CSI
review the sensor datasheet to check the settings of FPS range

the line_length is correct according to my datasheet.
Increasing the delay between video lines? which parameters should i set? could you please explain it more ?

The output size is different with the line_length.

the LINE_LENGTH of my camera is 2040

The short frame cause the output line less than expect. But the line_length is the sensor REG configure not necessary the same as output lines. So you need to confirm how many lines output from sensor then report correct resolution by sensor driver to fix the short frame issue.

how can I confirm how many lines output from sensor? which parameter should I check?

You need to check with sensor vendor for the output size configure. Others you need to report less step by step to figure the correct lines.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.