Uncorr_err: request timed out after 2500 ms

The sensor is working, but the collection fails. Why is this? How to solve it. Sensors are working on a Jetson Orin NX.

sqray-desktop login: [   42.210174] imx568 10-001a: imx568_power_on: nongjh power on
[   42.226170] imx568 10-001a: camera_common_mclk_enable: nongjh enable MCLK with 37125000 Hz
[   42.245490] bwmgr API not supported
[   42.253768] imx568 10-001a: imx568_set_mode: set mode=0
[   42.262739] imx568 10-001a: imx568_set_mode: set mode init regs list
[   42.280339] imx568 10-001a: imx568_set_mode: set mode init regs list successfully
[   42.288049] imx568 10-001a: tegracam_init_ctrl_ranges_by_mode:ctrl Gain min:1, max:480, step:10, default:480
[   42.298177] imx568 10-001a: tegracam_init_ctrl_ranges_by_mode:ctrl Exposure min:5, max:1000000, step:1, default:1000
[   42.309030] imx568 10-001a: tegracam_init_ctrl_ranges_by_mode:ctrl Frame Rate min:10000000, max:79000000, step:1, default:79000000
[   42.343710] imx568 10-001a: imx568_start_streaming: start streaming
[   44.995954] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[   45.005102] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[   45.015377] (NULL device *): vi_capture_control_message: NULL VI channel received
[   45.023097] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[   45.033763] (NULL device *): vi_capture_control_message: NULL VI channel received
[   45.041481] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[   45.052271] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[   47.811734] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[   47.820887] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[   47.831377] (NULL device *): vi_capture_control_message: NULL VI channel received
[   47.839101] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[   47.849765] (NULL device *): vi_capture_control_message: NULL VI channel received
[   47.857482] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[   47.868253] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[   50.627729] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[   50.636879] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[   50.647392] (NULL device *): vi_capture_control_message: NULL VI channel received
[   50.655122] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[   50.665778] (NULL device *): vi_capture_control_message: NULL VI channel received
[   50.673494] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[   50.684240] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[   53.219738] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[   53.228884] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[   53.239399] (NULL device *): vi_capture_control_message: NULL VI channel received
[   53.247117] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[   53.257782] (NULL device *): vi_capture_control_message: NULL VI channel received
[   53.265496] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[   53.276259] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[   53.285788] imx568 10-001a: imx568_stop_streaming: stop streaming
[   53.295580] bwmgr API not supported
[   53.304381] imx568 10-001a: imx568_power_off: nongjh power off

dsti:


/ {
	tegra-capture-vi  {
		num-channels = <2>;
		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			vi_port0: port@0 {
				reg = <0>;
				rbpcv2_imx568_vi_in0: endpoint {
					port-index = <0>;
					bus-width = <4>;
					remote-endpoint = <&rbpcv2_imx568_csi_out0>;
				};
			};
			vi_port1: port@1 {
				reg = <1>;
				rbpcv2_imx568_vi_in1: endpoint {
					port-index = <2>;
					bus-width = <4>;
					remote-endpoint = <&rbpcv2_imx568_csi_out1>;
				};
			};
		};
	};

	host1x@13e00000 {
		nvcsi@15a00000 {
			num-channels = <2>;
			#address-cells = <1>;
			#size-cells = <0>;
			csi_chan0: channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan0_port0: port@0 {
						reg = <0>;
						rbpcv2_imx568_csi_in0: endpoint@0 {
							port-index = <0>;
							bus-width = <4>;
							remote-endpoint = <&rbpcv2_imx568_out0>;
						};
					};
					csi_chan0_port1: port@1 {
						reg = <1>;
						rbpcv2_imx568_csi_out0: endpoint@1 {
							remote-endpoint = <&rbpcv2_imx568_vi_in0>;
						};
					};
				};
			};
			csi_chan1: channel@1 {
				reg = <1>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan1_port0: port@0 {
						reg = <0>;
						rbpcv2_imx568_csi_in1: endpoint@2 {
							port-index = <2>;
							bus-width = <4>;
							remote-endpoint = <&rbpcv2_imx568_out1>;
						};
					};
					csi_chan1_port1: port@1 {
						reg = <1>;
						rbpcv2_imx568_csi_out1: endpoint@3 {
							remote-endpoint = <&rbpcv2_imx568_vi_in1>;
						};
					};
				};
			};
		};
	};

	cam_i2cmux {
		i2c_0:i2c@0 {
			imx568_cam0: rbpcv2_imx568_a@1a {
				compatible = "sony,imx568";
				/* I2C device address */
				reg = <0x1a>;

				/* V4L2 device node location */
				devnode = "video0";

				/* Physical dimensions of sensor */
				physical_w = "6.708";
				physical_h = "5.612";

				sensor_model = "imx568";

				use_sensor_mode_id = "true";

				/**
				* ==== Modes ====
				* A modeX node is required to support v4l2 driver
				* implementation with NVIDIA camera software stack
				*
				* == Signal properties ==
				*
				* phy_mode = "";
				* PHY mode used by the MIPI lanes for this device
				*
				* tegra_sinterface = "";
				* CSI Serial interface connected to tegra
				* Incase of virtual HW devices, use virtual
				* For SW emulated devices, use host
				*
				* pix_clk_hz = "";
				* Sensor pixel clock used for calculations like exposure and framerate
				*
				* readout_orientation = "0";
				* Based on camera module orientation.
				* Only change readout_orientation if you specifically
				* Program a different readout order for this mode
				*
				* lane_polarity
				* Based on the camera connector pin.
				* CSIx_D0 | CSIx_D1 | CSI(X+1)_D0 | CSI(X+1)CSIx_D1
				*    LSB  |   BIT1  |     BIT2    |      MSB
				* if there is a polarity swap on any lane, the bit corrsponding
				* to the lane should be set
				* e.g. polarity swap on CSIx_D0 only -> lane_polarity = "1"; 0001
				* e.g. polarity swap on CSIx_D1 and CSI(X+1)_D0 -> lane_polarity = "6"; 0110
				*
				* == Image format Properties ==
				*
				* active_w = "";
				* Pixel active region width
				*
				* active_h = "";
				* Pixel active region height
				*
				* pixel_t = "";
				* The sensor readout pixel pattern
				*
				* line_length = "";
				* Pixel line length (width) for sensor mode.
				*
				* == Source Control Settings ==
				*
				* Gain factor used to convert fixed point integer to float
				* Gain range [min_gain/gain_factor, max_gain/gain_factor]
				* Gain step [step_gain/gain_factor is the smallest step that can be configured]
				* Default gain [Default gain to be initialized for the control.
				*     use min_gain_val as default for optimal results]
				* Framerate factor used to convert fixed point integer to float
				* Framerate range [min_framerate/framerate_factor, max_framerate/framerate_factor]
				* Framerate step [step_framerate/framerate_factor is the smallest step that can be configured]
				* Default Framerate [Default framerate to be initialized for the control.
				*     use max_framerate to get required performance]
				* Exposure factor used to convert fixed point integer to float
				* For convenience use 1 sec = 1000000us as conversion factor
				* Exposure range [min_exp_time/exposure_factor, max_exp_time/exposure_factor]
				* Exposure step [step_exp_time/exposure_factor is the smallest step that can be configured]
				* Default Exposure Time [Default exposure to be initialized for the control.
				*     Set default exposure based on the default_framerate for optimal exposure settings]
				*
				* gain_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_gain_val = ""; (ceil to integer)
				* max_gain_val = ""; (ceil to integer)
				* step_gain_val = ""; (ceil to integer)
				* default_gain = ""; (ceil to integer)
				* Gain limits for mode
				*
				* exposure_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_exp_time = ""; (ceil to integer)
				* max_exp_time = ""; (ceil to integer)
				* step_exp_time = ""; (ceil to integer)
				* default_exp_time = ""; (ceil to integer)
				* Exposure Time limits for mode (sec)
				*
				* framerate_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_framerate = ""; (ceil to integer)
				* max_framerate = ""; (ceil to integer)
				* step_framerate = ""; (ceil to integer)
				* default_framerate = ""; (ceil to integer)
				* Framerate limits for mode (fps)
				*
				* embedded_metadata_height = "";
				* Sensor embedded metadata height in units of rows.
				* If sensor does not support embedded metadata value should be 0.
				*/
				mode0 { /* imx568_MODE_2448*2048_79FPS */
					mclk_khz = "37125";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";
					lane_polarity = "2";

					active_w = "2448";
					active_h = "2048";
					mode_type = "bayer";
					pixel_phase = "rggb";
					dynamic_pixel_bit_depth = "10";
					csi_pixel_bit_depth = "10";
					readout_orientation = "0";
					line_length = "2448";
					inherent_gain = "1";
					mclk_multiplier = "9.33"; 
					pix_clk_hz = "415572864"; 

					gain_factor = "10";
					framerate_factor = "1000";
					exposure_factor = "1000000";
					min_gain_val = "1"; 	/* 0dB */
					max_gain_val = "480"; /* dB */
					step_gain_val = "10";  /* 0.1 */
					default_gain = "480"; /*  */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "10000000"; /* 10.0 fps */
					max_framerate = "79000000"; /* 79.0 fps */
					step_framerate = "1";
					default_framerate = "79000000"; /* 21.0 fps */
					min_exp_time = "5"; 
					max_exp_time = "1000000"; /* us */
					step_exp_time = "1";
					default_exp_time = "1000"; /* us */

					embedded_metadata_height = "0";
				};
				

				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						rbpcv2_imx568_out0: endpoint {
							port-index = <0>;
							bus-width = <4>;
							remote-endpoint = <&rbpcv2_imx568_csi_in0>;
						};
					};
				};
			};
		};
		i2c_1: i2c@1 {
			imx568_cam1: rbpcv2_imx568_c@1a {
				compatible = "sony,imx568";
				/* I2C device address */
				reg = <0x1a>;

				/* V4L2 device node location */
				devnode = "video1";

				/* Physical dimensions of sensor */
				physical_w = "6.708";
				physical_h = "5.612";

				sensor_model = "imx568";

				use_sensor_mode_id = "true";

				mode0 { /* imx568_MODE_2448*2048_79FPS */
					mclk_khz = "37125";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";
					lane_polarity = "2";

					active_w = "2448";
					active_h = "2048";
					mode_type = "bayer";
					pixel_phase = "rggb";
					dynamic_pixel_bit_depth = "10";
					csi_pixel_bit_depth = "10";
					readout_orientation = "0";
					line_length = "2448";
					inherent_gain = "1";
					mclk_multiplier = "9.33"; 
					pix_clk_hz = "415572864"; 

					gain_factor = "10";
					framerate_factor = "1000";
					exposure_factor = "1000000";
					min_gain_val = "1"; 	/* dB */
					max_gain_val = "480"; /* dB */
					step_gain_val = "10";  /* 0.1 */
					default_gain = "480"; /*  */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "10000000"; /* 10.0 fps */
					max_framerate = "79000000"; /* 79.0 fps */
					step_framerate = "1";
					default_framerate = "79000000"; /* 21.0 fps */
					min_exp_time = "5"; /* us, min_exp_time = (minimum coarse integration time) × line_length / pix_clk_hz × 1000000 */
					max_exp_time = "1000000"; /* us */
					step_exp_time = "1";
					default_exp_time = "1000"; /* us */

					embedded_metadata_height = "0";
				};

				 /* IMX219_MODE_3280x1848_28FPS */

				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						rbpcv2_imx568_out1: endpoint {
							status = "okay";
							port-index = <2>;
							bus-width = <4>;
							remote-endpoint = <&rbpcv2_imx568_csi_in1>;
						};
					};
				};
			};
		};
	};

	lens_imx568@RBPCV2 {
		min_focus_distance = "0.0";
		hyper_focal = "0.0";
		focal_length = "3.04";
		f_number = "2.0";
		aperture = "0.0";
	};
};
/ {
	tcp: tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";
		
		num_csi_lanes = <4>;
		max_lane_speed = <1500000>;
		min_bits_per_pixel = <10>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		isp_peak_byte_per_pixel = <5>;
		isp_bw_margin_pct = <25>;


		modules {
			cam_module0: module0 {
				badge = "jakku_front_RBP194";
				position = "front";
				orientation = "1";
				cam_module0_drivernode0: drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "imx568 9-0010";
					proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@0/rbpcv2_imx568_a@1a";
				};
				cam_module0_drivernode1: drivernode1 {
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_imx568@RBPCV2/";
				};
			};
			cam_module1: module1 {
				badge = "jakku_rear_RBP194";
				position = "rear";
				orientation = "1";
				cam_module1_drivernode0: drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "imx568 10-0010";
					proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@1/rbpcv2_imx568_c@1a";
				};
				cam_module1_drivernode1: drivernode1 {
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_imx568@RBPCV2/";
				};
			};
		};
	};
};

v4l2-ctl -d /dev/video0 --verbose --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --set-ctrl=sensor_mode=0 --stream-mmap --stream-count=100

error log:

[  613.661395] bwmgr API not supported
[  613.669633] imx568 10-001a: imx568_set_mode: set mode=0
[  613.678581] imx568 10-001a: imx568_set_mode: set mode init regs list
[  613.696171] imx568 10-001a: imx568_set_mode: set mode init regs list successfully
[  613.703872] imx568 10-001a: tegracam_init_ctrl_ranges_by_mode:ctrl Gain min:1, max:480, step:10, default:480
[  613.713973] imx568 10-001a: tegracam_init_ctrl_ranges_by_mode:ctrl Exposure min:5, max:1000000, step:1, default:1000
[  613.724800] imx568 10-001a: tegracam_init_ctrl_ranges_by_mode:ctrl Frame Rate min:10000000, max:79000000, step:1, default:79000000
[  613.761145] imx568 10-001a: imx568_start_streaming: start streaming
                VIDIOC_STREAMON returned 0 (Success)
[  616.374553] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
cap dqbuf: 0 seq:      0 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
[  616.383708] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
cap dqbuf: 0 seq:      0 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      1 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:      2 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 3 seq:      3 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
[  616.394286] (NULL device *): vi_capture_control_message: NULL VI channel received
[  616.401984] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[  616.412610] (NULL device *): vi_capture_control_message: NULL VI channel received
[  616.420297] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[  616.431046] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[  619.190691] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
cap dqbuf: 0 seq:      0 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
[  619.199837] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
cap dqbuf: 0 seq:      0 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      1 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:      2 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 3 seq:      3 bytesused: 10027008 ts: 0.000000 (error, ts-monotonic, ts-src-eof)
[  619.210294] (NULL device *): vi_capture_control_message: NULL VI channel received
[  619.218000] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[  619.228623] (NULL device *): vi_capture_control_message: NULL VI channel received
[  619.236309] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[  619.247035] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
^C[  621.782442] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[  621.791935] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[  621.802744] (NULL device *): vi_capture_control_message: NULL VI channel received
[  621.810463] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[  621.821113] (NULL device *): vi_capture_control_message: NULL VI channel received
[  621.828831] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[  621.839662] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[  621.849704] imx568 10-001a: imx568_stop_streaming: stop streaming

hello shenchengzha,

it looks NULL VI channel received has reported, which represent there’s no frames coming to VI engine.
may I know what did you meant “working”? for example, how you validate it’s functional?

During the collection process, when I tested the output clock using an oscilloscope, it was correct, and there were changes in the MIPI data lines as well. Should this confirm that the sensor is functioning?
MIPI_CLK:


MIPI DATA:

hello shenchengzha,

are you using customize carrier board? or, you’re tested with Orin NX developer kits?

according to your device tree settings, you’ve two 4-lane camera sensor for using CSI-A and CSI-C.
FYI, for the Orin NX DevKit, it’s Cam0 slot for using CSI-C, and Cam1 for using CSI-B.
there’s only single camera slot (i.e. Cam0) works with 4-lane configuration with Orin NX carrier board.

Hello JerryChang, currently I have made the changes to 2 lanes, port-index = <3>, tegra_sinterface = "serial_d", using CSI3, but I am still encountering the same error.

dts.txt (427.6 KB)

hello shenchengzha,

could you please double check Jetson Orin NX Series and Orin Nano Series Design Guide for [Chapter 10. MIPI CSI Video Input] to review your pin connections.
and… please revise your polarity setting to… lane_polarity = "0"; as it only CSI0 D1 and CSI1 D0 always been polarity swapped.

furthermore,
it looks you’re using camera sensor with output data-rate larger than 1.5Gbps. i.e. pix_clk_hz = "178200000";
please note that, deskew calibration is a must if data-rate > 1.5 Gbps. you should also apply rce-fw update from Topic 268833 to update deskew algorithm, and also stability fixes.
or… for sensor bring-up, you may have an alternative way to reduce the data-rate for quick confirmation of your port bindings.

Hello JerryChang,

If we have currently selected a data rate of 1188Mbps, is it not necessary to configure the pix_clk_hz?

please see-also Sensor Pixel Clock, you must be set pix_clk_hz correctly to avoid potential issues.

Hello JerryChang,
The calculation process for pixel_clk_hz is as follows. Is the calculation method correct?

  • Sensor data rate = 891 Mbps (per lane)
  • Number of lanes = 2
  • Bits per pixel = 10
    Then pix_clk_hz = 891 Mbps × 2 / 10 = 178,200,000

hello shenchengzha,

it looks correct, if you’re using sensor with data-rate larger than 1.5Gbps, please refer to Topic 268833 to apply rce-fw update.

@JerryChang can you quantify what the data-rate is you are talking about?

I’ve looked through the documentation and it’s unclear what rate is being referred to in this conversation, and many others. This 1.5Gps. Is that PER lane, or ALL lanes added together.

In the example about, it says 891 Mbps PER LANE. The selected mode is 2 LANE. So the 1.5 Gbps, is that relative to 891 Mbps or 1782 Mbps?

hello enc0der,

it’s my mistake… your pix_clk_hz is 891 Mbps * 2 / 10 = 178200000 =0.178 Gbps which below the deskew threshold.

FYI,
internally it’s checking per lane data rate, for instance, MIPI clock rate = pix_clk_hz * bps / signal->num_lanes
skew calibration is required (when using DPHY), and the MIPI clock rate> 1.5Gbps.

Hello Jerry,

Thanks for the clarification. One thing that is confusing is in the first line you say that the pix_clk_hz is below the deskew threshold of 1.5Ghz. But I don’t see how the pix_clk_hz makes any sense to measure against. It’s NOT a measure of the MIPI clock rate. Why would anything measure against the pix_clk_hz when it’s not actually taking into account bit depth for each pixel?

The second part, where you calculate the MIPI clock rate, that makes sense to me. Are you saying that is the only check, or, does it actually check against the pix_clk_hz as well?

I figured the pix_clk_hz was broken out in case you selected a different format to record (IE RGB888 or UYVY) so it just had to multiple bpp (bits per pixel) like you did.

Thanks!

hello enc0der,

the unit of pix_clk_hz is bps, please check Sensor Pixel Clock section for reference.

How could pix_clk_hz be bits per second? The unit has to be pixels per second as it does’t take into consideration the bit depth of the pixel.

Look at the math you did:

891 Mbps * 2 / 10 = 178200000 =0.178 Gbps

That 2 is lanes. That 10 is bits, the units here would have to be pixels per second.