TX1 onboard OV5693 does not work for V4L under L4T R28.1

The following command worked for R24.2.1:

v4l2-ctl -d /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=image.raw

but does not work for R28.1 (Jetpack 3.1).

It returns without error but captured image has all zeros.

There is no error message in “dmesg”.

All our applications use raw acquisitions (V4L2), what could break V4L2 for TX1 onboard camera?

hello yahoo2016,

this is a known issue due to 1st frame of ov5693 did not contain complete frame,
24.2.1 vi driver would drop first two frames hence you did not saw this issue.
this has been removed in the latest vi driver to improve frame latency,

please refer to R28.1/kernel/kernel-4.4/drivers/media/platform/tegra/camera/vi/channel.c
and please also refer to the code snippet as below,

321 #if 0
 322                 /* This will drop the first two frames. Disable for now. */
 323                 if (chan->capture_state != CAPTURE_GOOD ||
 324                         chan->released_bufs < 2)
 325                         chan->buffer_state[chan->free_index] =
 326                                                 VB2_BUF_STATE_ERROR;
 327 #endif
 328                 vb2_buffer_done(&vbuf->vb2_buf,
 329                         chan->buffer_state[chan->free_index++]);

you could simply increase the stream count to dump complete frame. thanks

v4l2-ctl -d /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=5 --stream-to=image.raw


Thanks for your quick response.

I captured 20 frames and the frames after the first frame is not black but scrambled.

I read some other posts about 400KHz I2C does not work for newer L4Ts and DTB had to be modified to use 100KHz I2C clock.

I’m wondering if the OV5693 is correctly configured.

Were you able to verify the frames after the first frame are correct?

Is this the same issue as:


and kernel needs to be modified and built?

I followed above link changed TEGRA_STRIDE_ALIGNMENT in “kernel-4.4/drivers/media/platform/tegra/camera/vi/core.h” from 256 back to 64, the frames after the first frame are correct now.