Capturing video with reduced blanking

I am attempting to capture HDMI at a variant of 1600x1200 with a reduced blanking area, using a pixel clock of 132.18Mhz, a horizontal total of 1776 pixels and a vertical total of 1239 lines using an ADV7481 to convert the HDMI to MIPI and capturing with a Jetson Xavier NX on a custom carrier board.

I am able to capture standard 1600x1200 with a pixel clock of 162MHz but the reduced blanking mode fails. I have attached traces of my attempts to capture: trace-1600x1200.log shows the successful capture of the standard resolution, whereas trace-1600x1200-RB.log shows the unsuccessful attempt to capture the reduced blanking mode.

The problem also occurs at 1920x1080: capture works as nomal with the standard 1080p60 timings but using a reduced blanking with a horizontal total of 2080 and a vertical total of 1235, the capture fails.

I am unsure whether the problem lies with the ADV7481 or with the Jetson but I am hoping that these logs might help to identify which of the two is failing.

trace-1600x1200-RB.log (6.5 KB)

trace-1600x1200.log (323.4 KB)

Hi @Krokosh

I haven’t worked with the ADV7481, but looking at your traces it seems like the Jetson capture subsystem is not detecting any buffer. Also, there’s no error on the trace from Video Input unit so, I guess it could be a problem on the source or on the ADV7481 driver.

Just in case, have you tried updating the pixel_clk_hz parameter on your device-tree according to the changes on your HDM source?

Enrique Ramirez
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

Like comment from @enrique.ramirez NVCI/VI didn’t receive any validate data from the MIPI bus.

Maybe probe the signal to confirm the ADV7481 output settings.

My oscilloscope doens’t have the bandwidth to capture the MIPI clock at 1600x1200, but I have managed to reproduce the problem at 640x480 by using a modeline with a horizontal total of 700 pixels:

xrandr --newmode “640x480-700” 22.05 640 652 684 700 480 490 492 525

I see identical errors in the trace but the MIPI clock shows a 67.2MHz signal. This would seem to indicate that the ADV7481 is giving data.

In addition, I see the following two lines in the kernel log:

[ 6926.548663] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 6926.548928] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 6926.549179] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 6926.549338] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[ 6926.549553] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 6926.550145] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

Could you please share the trace output for 640x480?

Is it different on this mode?

Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

I have attached a trace of the capture of 640x480 with a horizontal total of 700 pixels. Also attached is a scope trace showing one of the MIPI clock lines in this mode.

trace-640x480-700.log (6.5 KB)