We have a Jetson Nano developer kit(B01) and develop our own driver of CSI-MIPI camera.
We have developed a RGB888 driver and have successfully captured images from the CSI-MIPI camera at a normal framerate but it was not possible to capture image at a low framerate.
normal framerate = 13.5fps
low framerate = 3fps or less
However, it is improved by setting of low_latency_mode.
v4l2-ctl -d /dev/video0 --set-ctrl low_latency_mode=0 : low framerate is NG
v4l2-ctl -d /dev/video0 --set-ctrl low_latency_mode=1 : low framerate is OK
Can you tell what changed by changing the low latency mode setting?
static void tegra_channel_ec_init(struct tegra_channel *chan)
{
/*
* error recover initialization sequence
* set timeout as 200 ms, use default if fps not available
* Time limit allow CSI to capture good frames and drop error frames
* TODO: Get frame rate from sub-device and adopt timeout
*/
chan->timeout = msecs_to_jiffies(200);
/*
* Sync point FIFO full blocks host interface
* Below setting enables SW to process error recovery
*/
tegra_channel_write(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT_CNTRL, 0x100);
}