Cam_fsync Stop and Start

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
1.9.3.10904
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Hello,

A new feature in 6.0.8.1 appears to be the cam_fsync driver, which (assuming fsync-groups are enabled) creates a rising edge for camera synchronization with greater control than was previously possible. I have used this new driver and library and found it to be functional, however, I note that there doesn’t appear to be a simple method of stopping the fsync-group once it has been started - attempts to run nvsipl_camera with the -F flag set after it has been run successfully once results in it failing out with dmesg reporting that the fsync-group isn’t idle, there is no easy function call in NvCamFsync.h (included in the updated version of nvsipl_camera) to stop the group, the ioctl call in cam_fsync.c for which the function cam_fsync_program_abs_start_value is a convenient alias doesn’t have any other ioctl-compatible calls to stop or reconfigure the fsync-group, the only way it appears to reset the fsync-group is to rmmod and modprobe the cam_fsync driver or restart the Drive AGX entirely, which is a bit scorched-earth. Does NVIDIA have a recommendation on how to stop and restart fsync-groups?

Certainly, it seems that currently, based on the cam_fsync.c source code, there is no additional IOCTL designated explicitly for stopping or reconfiguring the fsync-group once it has been initiated.

Ok, so reading between the lines, NVIDIA’s recommendation is ‘don’t stop the fsync-group’?

Yes, the fsync feature is new in the current release. Could you provide more details on how the inability to stop the fsync group is affecting your ongoing development?

Well, given that this is a development kit, it is extremely common for one of our developers to log into a system and attempt to run code on it that may reinitialize camera systems. Since my default it’s the entire camera subsystem within the Drive AGX completely powers down as soon as the driver is unloaded, it is usually a safe bet that doing a fresh re-initialization will result in a proper bring up. In this case, not only will a reinitialization fail in certain circumstances, there isn’t even a correct way to check to see if the group is already started, meaning any timing settings that were under test will be locked until the system is rebooted. It’s not a showstopper per se, but it is oddly and unnecessarily restrictive and encourages poor development habits such as ignoring initialization failure.

@VickNV is there any update for stopping fsync?