We have a 12-bit RAW image sensor connected through CSI port on TX1 with L4T R28.1 version. We pull RAW images using v4l2 in C.
The sensor has both rolling shutter and global shutter modes. The global shutter capture is initiated by a signal to the TRIGGER pad.
When we use the rolling shutter, we adjust the frame rate by adjusting the frame length register of the sensor. However, the frame rate can only go to as low as 15 fps. If we set it lower, the measured frame rate is still 15 fps and there are dequeued frames that are empty (blank/black images). There are “frame start syncpt timeout!0” issues in the error log.
When we use the global shutter mode and trigger the sensor at 30 fps, the frame rate only reaches up to 7-8 fps. There are no errors in the log.
We changed the timeout setting in the vi2_fops.c file inside the tegra_channel_ec_init function.
chan->timeout = 20
chan->timeout = 80
This setting allowed the rolling shutter frame rate to go as low as 5 fps, while the global shutter mode improved slightly as it can now be triggered accurately up to 10 fps.
It seems that the timeout setting should have been adapting to the frame rate but it is a hard-coded value. I checked the R28.2 version and it is still hard-coded. Is there a patch to fix this csi/vi timeout issue or is there a specific setting that we should adjust as well?