PXL_EOF on kernel level even though camera traces indicate that CSI-2 receiver gets data ok

I am currently porting camera driver from BSP 28.1 to BSP 32.4.3.

Sensor responds, and controls (seem to work) and streaming is started alright, but receiving keeps getting timeout (tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11).

Upon closer inspection with traces enavbled i can see following:

To me it seems that CSI-2 receiver gets data alright SOF and EOF are seen correctly. SOF traces seem to indicate that SOF is seen at correct interval (roughly 60 frames per second)

In order to verify this I took same trace on working build (with 28.1 BSP).

Sequence seems to be same, tegra_channel_capture_frame traces are not present as they are not present in 28.1. Received line count is same in both cases.

Any ideas why vi_notify_wait() does not get notified about EOF from CSI-2 receiver with 32.4.3 BSP ? Instead it always timeouts, and thus no frames are received by upperlevel software. Device tree is modified (csi-port → port-index) so it should be alright.

Have try to boost the clock to try.

https://elinux.org/Jetson_TX2_Camera_BringUp

Ah, forgot to say that clocks were already boosted with the 32.4.3 logs.

Wow, that’s weird! Did you capture by v4l2-ctl? What’s the command line

v4l-ctl is not used as it does not control quite large portion of imaging chain currently, so captures are done using custom software.

I’ll check possibility of using v4l-ctl as that would be “standard” way of doing things.

Have a reference to below doc for the v4l2-ctl command.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fcamera_sensor_prog.html%23wwpID0E0LF0HA