Issue while streaming the YUV camera

I am porting Jetpack from version 4.6 (L4T 32.6.1) to 5.1.3 (L4T 35.5.0). The platform has an FPD-Link III connected to the Xavier NX platform.

Below is the streaming command:

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720 --stream-mmap

After inserting the camera driver using insmod, I can stream successfully. However, when I stop the streaming and start it again, it throws an uncorr_error. Below is the error log:

stream_error.txt (2.5 KB)

I have probed the MIPI data from the deserializer, and it appears to be working correctly. My main concern is about the platform board. I have boosted all the clocks and run the Jetson clock utility, but the issue still persists.

I am using a 6.4 Gbps MIPI output data rate from the deserializer.

Below is the mode.dtsi file for your reference:

mode.txt (3.0 KB)

Could you please help us resolve this issue?

hello Yugesh,

please refer to Topic 305007 to apply couple of kernel patches for verification.

Hi JerrChang,

I have applied the kernel patch from this Topic 305007

Whenever I stop the initial streaming and start it again, it throws an uncorr_error. Additionally, I cannot switch resolutions during the first streaming. The same error persists.

After this, I removed the driver using rmmod and reloaded it using insmod. I successfully started the initial streaming again, but stopping and restarting it results in the same uncorr_error. The issue remains consistent.

Below is the error log after applying the kernel patch:
second_time_stream_issue.txt (4.4 KB)

I did not observe any corr_err during this process.
Could there be an issue with the pix_clk_hz value?

Could you please assist us in resolving this issue?

hello Yugesh,

could you please issue a reset since it’s the camera streaming from SerDes chip.

Hi JerryChang,

I stopped the first-time streaming and started it again, it throws an uncorr_error. After resetting the SerDes, I was able to stream.

For subsequent attempts, if I start the stream within 5 seconds, it works fine. However, if I start the stream after 5 seconds, I need to reset the SerDes every time to get the stream.

Is it necessary to perform a full reset of the SerDes every time to get the stream?

hello Yugesh,

thanks for issue narrow down, it’s helpful information.


it’s camera firmware driver looking for camera initialization sequence (i.e. LP sequence), and it’s output data-rate to determine whether it needs to wait for skew calibration; it’ll enable pixel parser when deskew calibration has completed.
hence… it’s necessary for SerDes use-case.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.