IMX728 framerate remains the same despite modifying Fsync generator

DRIVE OS Version: 7.0.3

Issue Description: We are trying to run a Valeo IMX728 at 20fps by modifying the Fsync generator to 20Hz. Despite changing the generator frequency, we find the IMX728 still runs at 30fps. I tested both a Valeo IMX728 and Valeo IMX623, and the IMX623 works as expected (runs at 20fps). Is modifying the Fsync generator to 20Hz expected to work for the IMX728?

Summary of steps:

  1. Modify Fsync Generator 0 from 30Hz (default) to 20Hz using fsync_debug:
$ cd /opt/nvidia/drive-linux/samples/nvmedia/nvsipl/test/fsync_debug
$ sudo ./fsync_debug stopgroup 0
$ sudo ./fsync_debug modifygenerator 0 0 20 25 0
$ sudo ./fsync_debug startgroupnow 0
  1. Run nvsipl_camera with 1 Valeo IMX728 connected to Deser D, Link 0:
$ ./nvsipl_camera -c V1SIM728MPRU3030ND1_5Des_CPHY_x4 --link-enable-masks "0x0000 0x0000 0x0000 0x0001 0x0000" -0 -1 --showfps
Pipeline: 10 ISP Output: 2 is using RGBA PACKED FLOAT16 PL SENSOR_RGBA

MAX96712: Revision 5 detected
MAX96712 Link 0: PHY optimization was enabled
MAX96717: Revision 6 detected!
Sensor IMX728 Rev 0x34 RGGB detected!
nvsipl_camera: Opened NITO file for module "V1SIM728MPRU3030ND1", file name: "/usr/share/camera/V1SIM728MPRU3030ND1.nito" 

Enter 'les' followed by sensor ID to enable LED
Enter 'lds' followed by sensor ID to disable LED
Enter 'dl' followed by sensor ID to disable the link
Enter 'el' followed by sensor ID to enable the link without module reset
Enter 'elr' followed by sensor ID to enable the link with module reset
Enter 'cm' to check the module availability
Enter 'sh<1 or 0>' followed by sensor ID to turn on or off heater
Enter 'bp' to set bypass mode for MAX96712 deserializer custom API
Enter 'q' to quit the application
-
Output
Sensor10_Out3	Frame rate (fps):		29.4991

Output
Sensor10_Out3	Frame rate (fps):		29.9991

Output
Sensor10_Out3	Frame rate (fps):		29.9991

q
Output
Sensor10_Out3	Frame rate (fps):		29.9991

Sensor10	Frame captured: 239	Frame drops: 0	Frame discontinuities: 0	Frames authenticated: 0	Frames failed to authenticate: 0	Frames authenticated as Out Of Order: 0
SUCCESS
  1. Run nvsipl_camera with 1 Valeo IMX623 connected to Deser E, Link 0, for comparison:
$ ./nvsipl_camera -c V1SIM623MPRU8200ND1_5Des_CPHY_x4 --link-enable-masks "0x0000 0x0000 0x0000 0x0000 0x0001" -0 -1 --showfps
Pipeline: 14 ISP Output: 2 is using RGBA PACKED FLOAT16 PL SENSOR_RGBA

MAX96724: Revision 1 detected
MAX96717F: Revision 6 detected!
Sensor IMX623 Rev 0xA RGGB detected!
nvsipl_camera: Opened NITO file for module "V1SIM623MPRU8200ND1", file name: "/usr/share/camera/V1SIM623MPRU8200ND1.nito" 

Enter 'les' followed by sensor ID to enable LED
Enter 'lds' followed by sensor ID to disable LED
Enter 'dl' followed by sensor ID to disable the link
Enter 'el' followed by sensor ID to enable the link without module reset
Enter 'elr' followed by sensor ID to enable the link with module reset
Enter 'cm' to check the module availability
Enter 'bp' to set bypass mode for MAX96712 deserializer custom API
Enter 'q' to quit the application
-
Output
Sensor14_Out3	Frame rate (fps):		17.4994

Output
Sensor14_Out3	Frame rate (fps):		19.9993

Output
Sensor14_Out3	Frame rate (fps):		19.9993

q
Output
Sensor14_Out3	Frame rate (fps):		19.9994

Sensor14	Frame captured: 155	Frame drops: 0	Frame discontinuities: 0	Frames authenticated: 0	Frames failed to authenticate: 0	Frames authenticated as Out Of Order: 0
SUCCESS

When stopping the Fsync Generator 0 while the IMX728 is streaming, I see the fps drop to 0 and the camera stops streaming, which leads me to believe that Generator 0 is triggering the IMX728. Why does the IMX728 still run at 30fps if it is being triggered at 20Hz?

Shortly after writing this post, I realized that Generator 0 maps to Deser-E, but not Deser-D.
My understanding of the Generator to Deserializer mapping is as follows:
Deser-E: Generator 0 (FSYNC1)
Deser-D: Generator 2 (FSYNC3)
Deser-C: Generator 2 (FSYNC3)
Deser-A: Generator 3 (FSYNC2)
Deser-B: Generator 0 (FSYNC1)
Could you confirm this?

Dear @nina.krishnan
Let me check with engineering team and confirm .

Dear @nina.krishnan ,
fsync_debug is simple way to figure out find which group and generator corresponds to a each deserilizer. You followed the same. The doc does not seem to provide info about direct deserilzer to Fsync mapping.