TX2 L4T 28.1 IMX291 Sensor Porting Issues

Hello,

I am trying to port imx291 camer driver on L4T28.1 kernel (TX2).
my camera sensor is connected on csi-4/5(4-lane) port and use external osillator(37.125).

I am using main platform device tree as below
I filled out the camera sensor characteristics, but I am not sure some of them are correct such as line_length.
I couldn’t find the value on datasheet.
I think that ‘active_w’, ‘active_h’,‘embedded_metadata_height’ values are correct

#define CAM0_RST_L	TEGRA_MAIN_GPIO(R, 1)
#define CAM0_PWDN	TEGRA_MAIN_GPIO(R, 0)
#define CAM1_RST_L	TEGRA_MAIN_GPIO(R, 1)
#define CAM1_PWDN	TEGRA_MAIN_GPIO(N, 2)

/ {
	tegra-camera-platform {
		tpg_max_iso = <3916800>;
	};

	/* set camera gpio direction to output */
	gpio@2200000 {
		camera-control-output-low {
			gpio-hog;
			output-low;
			gpios = <CAM0_RST_L 0 CAM0_PWDN 0
				 CAM1_RST_L 0 CAM1_PWDN 0>;
			label = "cam0-rst", "cam0-pwdn",
				"cam1-rst", "cam1-pwdn";
		};
	};

	/* all cameras are disabled by default */
	host1x {
		vi@15700000 {
			num-channels = <1>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					status = "okay";
					reg = <0>;
					my_vi_in0: endpoint {
						status = "okay";
						csi-port = <4>;
						bus-width = <4>;
						remote-endpoint = <&my_csi_out0>;
					};
				};
      };
		};

		nvcsi@150c0000 {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
      channel@0 {
				status = "okay";
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						status = "okay";
						reg = <0>;
						my_csi_in0: endpoint@0 {
							status = "okay";
							csi-port = <4>;
							bus-width = <4>;
							remote-endpoint = <&my_imx291_out0>;
						};
					};
					port@1 {
						status = "okay";
						reg = <1>;
						my_csi_out0: endpoint@1 {
							status = "okay";
							remote-endpoint = <&my_vi_in0>;
						};
					};
				};
			};
    };
	};

	i2c@c240000 {
		imx291_a@1a {
			status = "okay";
			compatible = "nvidia,imx291";

      /* Define any required hw resources needed by driver */
      /* ie. clocks, io pins, power sources */
      clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>,
           <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
      clock-names = "extperiph1", "pllp_grtba";
      mclk = "extperiph1";

      reset-gpios = <&tegra_main_gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;
			pwdn-gpios = <&tegra_main_gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;

      reg = <0x1a>;
      devnode = "video0";

      /* Physical dimensions of sensor */
      physical_w = "12.0";
      physical_h = "9.3";

      mode0 {/*mode IMX291_MODE_1920X1080_30FPS*/
        mclk_khz = "37125";
        num_lanes = "4";
        tegra_sinterface = "serial_e";
        discontinuous_clk = "no";
        dpcm_enable = "false";
        cil_settletime = "0";

        active_w = "1937";
        active_h = "1097";
        pixel_t = "bayer_bggr";
        readout_orientation = "0";
        line_length = "2640";
        inherent_gain = "1";
        mclk_multiplier = "4";
        pix_clk_hz = "148500000";

        min_gain_val = "0"; /* dB */
        max_gain_val = "48"; /* dB */
        min_hdr_ratio = "1";
        max_hdr_ratio = "1";
        min_framerate = "1.5";
        max_framerate = "30";
        min_exp_time = "30";
        max_exp_time = "660000";
        embedded_metadata_height = "1";
      };

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					my_imx291_out0: endpoint {
						csi-port = <4>;
						bus-width = <4>;
						remote-endpoint = <&my_csi_in0>;
					};
				};
			};
		};
	};

	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>;
		max_pixel_rate = <750000>;
		isp_peak_byte_per_pixel = <5>;
		isp_bw_margin_pct = <25>;

		modules {
			cam_module0: module0 {
				status = "okay";
				badge = "my_rear_imx291";
				position = "rear";
				orientation = "0";
				cam_module0_drivernode0: drivernode0 {
					status = "okay";
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx291 1-001a";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@c240000/imx291_a@1a";
				};
			};
		};
	};
};

the device node(/dev/video0) created successfully during kernel booting and dmesg seems good.
My imx291 driver only support 1920*1080@30 and It seems that the osilloscope show correct signalling on csi2 data lie.

I was trying to capture raw image but the command fails.

root@tegra-ubuntu:/home/nvidia# v4l2-ctl -d /dev/video0 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=test.raw

[  212.992709] [imx291] power on
[  213.016079] [imx291] get fmt
[  213.520860] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:8861, lanes:3000000
[  213.528665] tegra_mipi_cal 3990000.mipical: MIPI_CAL_CTRL                  0x04 0x2a000010
[  213.537013] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS            0x0c 0x00008861
[  213.545363] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS_2          0x10 0x00000000
[  213.553689] tegra_mipi_cal 3990000.mipical: CILA_MIPI_CAL_CONFIG           0x18 0x00000000
[  213.562084] tegra_mipi_cal 3990000.mipical: CILB_MIPI_CAL_CONFIG           0x1c 0x00000000
[  213.570435] tegra_mipi_cal 3990000.mipical: CILC_MIPI_CAL_CONFIG           0x20 0x00000000
[  213.578771] tegra_mipi_cal 3990000.mipical: CILD_MIPI_CAL_CONFIG           0x24 0x00000000
[  213.587120] tegra_mipi_cal 3990000.mipical: CILE_MIPI_CAL_CONFIG           0x28 0x00200000
[  213.595439] tegra_mipi_cal 3990000.mipical: CILF_MIPI_CAL_CONFIG           0x2c 0x00200000
[  213.603742] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG           0x3c 0x00000200
[  213.612041] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG           0x40 0x00000200
[  213.620352] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG           0x44 0x00000200
[  213.628648] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG           0x48 0x00000200
[  213.636939] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG0             0x5c 0x00000000
[  213.645228] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG1             0x60 0x00000000
[  213.653510] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG2             0x64 0x00010010
[  213.661788] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG_2         0x68 0x00000002
[  213.670076] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG_2         0x6c 0x00000002
[  213.678351] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG_2         0x74 0x00000002
[  213.686636] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG_2         0x78 0x00000002
[  213.694949] [imx291] s_stream on mode[0]
[  214.820685] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  215.827459] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
<[  216.834176] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  217.840651] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!
[  217.846736] [imx291] s_stream off mode[0]

root@tegra-ubuntu:/home/nvidia# cat /sys/kernel/debug/tracing/trace

# tracer: nop
#
# entries-in-buffer/entries-written: 26/26   #P:4
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
     kworker/4:0-1771  [004] ...1  2023.148266: rtos_queue_peek_from_isr_failed: tstamp:63525590569 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2023.148274: rtcpu_start: tstamp:63525591953
     kworker/4:0-1771  [004] ...1  2023.304433: rtos_queue_peek_from_isr_failed: tstamp:63530591466 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2023.460567: rtos_queue_peek_from_isr_failed: tstamp:63535591971 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2023.673973: rtos_queue_peek_from_isr_failed: tstamp:63540592485 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2023.781887: rtos_queue_peek_from_isr_failed: tstamp:63545592966 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2023.936973: rtos_queue_peek_from_isr_failed: tstamp:63550593498 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2023.989018: rtcpu_vinotify_handle_msg: tstamp:63550710601 tag:ATOMP_FS channel:0x00 frame:1 vi_tstamp:3421168022 data:0x00000000
     kworker/4:0-1771  [004] ...1  2023.989022: rtcpu_vinotify_handle_msg: tstamp:63550721696 tag:CHANSEL_PXL_SOF channel:0x00 frame:1 vi_tstamp:3421179120 data:0x00000001
     kworker/4:0-1771  [004] ...1  2023.989023: rtcpu_vinotify_handle_msg: tstamp:63550722358 tag:CHANSEL_FAULT channel:0x00 frame:1 vi_tstamp:3421179786 data:0x00000100
     kworker/4:0-1771  [004] ...1  2023.989025: rtcpu_vinotify_handle_msg: tstamp:63550723284 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:1 vi_tstamp:3421180359 data:0x08000000
     kworker/4:0-1771  [004] ...1  2023.989027: rtcpu_vinotify_handle_msg: tstamp:63550723415 tag:CHANSEL_FAULT_FE channel:0x10 frame:1 vi_tstamp:3421180361 data:0x00000001
     kworker/4:0-1771  [004] ...1  2023.989028: rtcpu_vinotify_handle_msg: tstamp:63550723591 tag:ATOMP_FE channel:0x00 frame:1 vi_tstamp:3421180364 data:0x00000000
     kworker/4:0-1771  [004] ...1  2024.145174: rtos_queue_peek_from_isr_failed: tstamp:63555594000 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2024.301306: rtos_queue_peek_from_isr_failed: tstamp:63560594504 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2024.457440: rtos_queue_peek_from_isr_failed: tstamp:63565595011 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2024.613578: rtos_queue_peek_from_isr_failed: tstamp:63570595515 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2024.769703: rtos_queue_peek_from_isr_failed: tstamp:63575596032 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2024.925831: rtos_queue_peek_from_isr_failed: tstamp:63580596531 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.082008: rtos_queue_peek_from_isr_failed: tstamp:63585597036 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.238103: rtos_queue_peek_from_isr_failed: tstamp:63590597550 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.394226: rtos_queue_peek_from_isr_failed: tstamp:63595598053 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.550374: rtos_queue_peek_from_isr_failed: tstamp:63600598558 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.706506: rtos_queue_peek_from_isr_failed: tstamp:63605599065 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.862635: rtos_queue_peek_from_isr_failed: tstamp:63610599571 queue:0x0b4a3c58
     kworker/4:0-1771  [004] ...1  2025.966732: rtos_queue_peek_from_isr_failed: tstamp:63613587831 queue:0x0b4a3c58

Any help would be appreciated.

@hjbaek
As my experience for this sensor embedded_metadata_height should be “2”

@ShaneCCC

Thank you for your quick response.

I replaced the value of embedded_metadata_height.
but there are similar fails.

[  208.022008] [imx291] power on
[  208.039571] [imx291] get fmt
[  208.540086] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:8861, lanes:3000000
[  208.547891] tegra_mipi_cal 3990000.mipical: MIPI_CAL_CTRL                  0x04 0x2a000010
[  208.556287] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS            0x0c 0x00008861
[  208.564638] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS_2          0x10 0x00000000
[  208.572999] tegra_mipi_cal 3990000.mipical: CILA_MIPI_CAL_CONFIG           0x18 0x00000000
[  208.581308] tegra_mipi_cal 3990000.mipical: CILB_MIPI_CAL_CONFIG           0x1c 0x00000000
[  208.589620] tegra_mipi_cal 3990000.mipical: CILC_MIPI_CAL_CONFIG           0x20 0x00000000
[  208.597959] tegra_mipi_cal 3990000.mipical: CILD_MIPI_CAL_CONFIG           0x24 0x00000000
[  208.606306] tegra_mipi_cal 3990000.mipical: CILE_MIPI_CAL_CONFIG           0x28 0x00200000
[  208.614626] tegra_mipi_cal 3990000.mipical: CILF_MIPI_CAL_CONFIG           0x2c 0x00200000
[  208.622936] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG           0x3c 0x00000200
[  208.631245] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG           0x40 0x00000200
[  208.639556] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG           0x44 0x00000200
[  208.647851] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG           0x48 0x00000200
[  208.656144] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG0             0x5c 0x00000000
[  208.664437] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG1             0x60 0x00000000
[  208.672726] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG2             0x64 0x00010010
[  208.681009] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG_2         0x68 0x00000002
[  208.689297] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG_2         0x6c 0x00000002
[  208.697575] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG_2         0x74 0x00000002
[  208.705865] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG_2         0x78 0x00000002
[  208.714174] [imx291] s_stream on mode[0]
[  208.840844] tegra-vi4 15700000.vi: Status:  4 channel:00 frame:0001
[  208.847182] tegra-vi4 15700000.vi:          timestamp sof 218503426816 eof 218503448128 data 0x00000100
[  208.856694] tegra-vi4 15700000.vi:          capture_id 1 stream  4 vchan  0
VIDIOC_DQBUF: failed: Input/output error
[  209.833292] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  210.832646] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!
[  210.838612] [imx291] s_stream off mode[0]

[  210.873002] [imx291] power off
root@tegra-ubuntu:/home/nvidia# 
root@tegra-ubuntu:/home/nvidia# cat cat /sys/kernel/debug/tracing/trace
cat: cat: No such file or directory
# tracer: nop
#
# entries-in-buffer/entries-written: 26/26   #P:4
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
     kworker/5:2-738   [005] ...1   208.050816: rtos_queue_peek_from_isr_failed: tstamp:6803311186 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   208.050823: rtcpu_start: tstamp:6803312962
     kworker/5:2-738   [005] ...1   208.206218: rtos_queue_peek_from_isr_failed: tstamp:6808312059 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   208.413026: rtos_queue_peek_from_isr_failed: tstamp:6813312564 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   208.567963: rtos_queue_peek_from_isr_failed: tstamp:6818313072 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   208.723069: rtos_queue_peek_from_isr_failed: tstamp:6823313603 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   208.878287: rtcpu_vinotify_handle_msg: tstamp:6828232663 tag:CHANSEL_PXL_SOF channel:0x00 frame:1 vi_tstamp:2533264792 data:0x00000001
     kworker/5:2-738   [005] ...1   208.878293: rtcpu_vinotify_handle_msg: tstamp:6828233065 tag:ATOMP_FS channel:0x00 frame:1 vi_tstamp:2533264804 data:0x00000000
     kworker/5:2-738   [005] ...1   208.878295: rtcpu_vinotify_handle_msg: tstamp:6828233201 tag:CHANSEL_FAULT channel:0x00 frame:1 vi_tstamp:2533265458 data:0x00000100
     kworker/5:2-738   [005] ...1   208.878298: rtcpu_vinotify_handle_msg: tstamp:6828234022 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:1 vi_tstamp:2533266051 data:0x08000000
     kworker/5:2-738   [005] ...1   208.878300: rtcpu_vinotify_handle_msg: tstamp:6828234153 tag:CHANSEL_FAULT_FE channel:0x10 frame:1 vi_tstamp:2533266051 data:0x00000001
     kworker/5:2-738   [005] ...1   208.878303: rtcpu_vinotify_handle_msg: tstamp:6828234328 tag:ATOMP_FE channel:0x00 frame:1 vi_tstamp:2533266054 data:0x00000000
     kworker/5:2-738   [005] ...1   208.878307: rtos_queue_peek_from_isr_failed: tstamp:6828314085 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.033439: rtos_queue_peek_from_isr_failed: tstamp:6833314592 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.188835: rtos_queue_peek_from_isr_failed: tstamp:6838315100 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.343990: rtos_queue_peek_from_isr_failed: tstamp:6843315605 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.499162: rtos_queue_peek_from_isr_failed: tstamp:6848316111 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.654375: rtos_queue_peek_from_isr_failed: tstamp:6853316619 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.809398: rtos_queue_peek_from_isr_failed: tstamp:6858317124 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   209.964793: rtos_queue_peek_from_isr_failed: tstamp:6863317632 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   210.171728: rtos_queue_peek_from_isr_failed: tstamp:6868318137 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   210.326938: rtos_queue_peek_from_isr_failed: tstamp:6873318650 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   210.482159: rtos_queue_peek_from_isr_failed: tstamp:6878319150 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   210.637412: rtos_queue_peek_from_isr_failed: tstamp:6883319659 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   210.792424: rtos_queue_peek_from_isr_failed: tstamp:6888320165 queue:0x0b4a3c58
     kworker/5:2-738   [005] ...1   210.844199: rtos_queue_peek_from_isr_failed: tstamp:6890665620 queue:0x0b4a3c58

And I reviewed previous discussion at Understanding vi error messages. - Jetson TX2 - NVIDIA Developer Forums
In that discussion, you are saying that the output active_h should be the height in the kernel driver.

In my kernel driver (imx291_probe), the ‘def_height’ is 1080 and the active_h in dt is 1097.

common_data->def_width		= IMX291_DEFAULT_WIDTH; // 1920
	common_data->def_height		= IMX291_DEFAULT_HEIGHT; // 1080
	common_data->fmt_width		= common_data->def_width;
	common_data->fmt_height		= common_data->def_height;

should I modify the def_height in my kernel driver?
Anyway, I modified the def_width and def_height in my kernel driver. but same error happen.

common_data->def_width		= 1937;//IMX291_DEFAULT_WIDTH;
	common_data->def_height		= 1097;//IMX291_DEFAULT_HEIGHT;
	common_data->fmt_width		= 1920;//common_data->def_width;
	common_data->fmt_height		= 1080;//common_data->def_height;

I check the imx219 there’s not 1080p mode. Looks like 1080p is crop mode. You should verify any others mode first.

static struct reg_8 *mode_table = {
[IMX219_MODE_3280x2464] = mode_3280x2464,
[IMX219_MODE_3280x2460] = mode_3280x2460,
[IMX219_MODE_3280x1846] = mode_3280x1846,
[IMX219_MODE_1280x720] = mode_1280x720,
};

@ ShaneCCC

My camera sensor is not imx219 but imx291.
I’m not sure if i can share imx291 datasheet.
imx291 support 3 modes. 1080p, 720p and crop mode.

The kernel4.4 doesn’t have imx291 driver. so I had to implement imx291 kernel driver based on imx219.
At this moment, I implemented only one mode (1080p) just for test.

Thank you.

some basic info,
https://s1.dl.theimagingsource.com/api/2.0/packages/publications/sensors-cmos/imx290ll/a5a99ae68b/imx290ll_1.0.en_US.pdf

so did you read our Sensor Driver Programming Guide document before the driver porting?

@chijen

Thank you for sharing information but I have more detail one.
I also read Sensor driver programming guide.

After reviewing some discussions, I modified my dts and kernel driver code.
But there are same fails.

I am completely stuck in this issue.
Could you check my DTS file and driver settings ?

I am using csi2 4-lane output and Full HD 1080p , 30 frame/s , All-pixel mode.
The Input clock is 37.125 and output format is RAW10.

I found active_w, active_h values on the pixel arrangement section of IMX291 datasheet , please check below link

    active_w = "1937";
    active_h = "1097";

The embedded_metadata_height value is from the CSI2 Output Frame Structure section as below link.

embedded_metadata_height = "1";

The line_length value is from the total number of pixel section as below link.

line_length = “2640” 

And regarding pix_clk_hz value, the datasheet says that “ In 4 Lane mode, data is output from Lane1, Lane2, Lane3 and Lane4. The bit rate maximum value is 891 Mbps / Lane.”

Please check my settings and give me some clue.

DTS

mode0 {/*mode IMX291_MODE_1920X1080_30FPS*/
        mclk_khz = "37125";
        num_lanes = "4";
        tegra_sinterface = "serial_e";
        discontinuous_clk = "no";
        dpcm_enable = "false";
        cil_settletime = "0";

        active_w = "1937";
        active_h = "1097";
        pixel_t = "bayer_bggr";
        readout_orientation = "0";
        line_length = "2640";
        inherent_gain = "1";
        mclk_multiplier = "2.4";
        pix_clk_hz = "89100000";
        embedded_metadata_height = "1";
        
        min_gain_val = "1"; /* dB */
        max_gain_val = "72"; /* dB */
        min_hdr_ratio = "1";
        max_hdr_ratio = "1";
        min_framerate = "0.25749403";
        max_framerate = "30";
        min_exp_time = "30";
        max_exp_time = "660000";    
      };

IMX291 Kernel Driver

#define IMX291_DEFAULT_MODE	IMX291_MODE_1920X1080_30FR

#define IMX291_DEFAULT_WIDTH	1937
#define IMX291_DEFAULT_HEIGHT	1097
#define IMX291_DEFAULT_DATAFMT	MEDIA_BUS_FMT_SRGGB10_1X10
#define IMX291_DEFAULT_CLK_FREQ	37125000

#define IMX291_GAIN_MODE_ADDR	(0x3009)

hjbaek,
For your reference, both of our camera partners, Appro and E-Con, provide IMX290 support. That’s an easier way to gain direct support and camera bring-up.

http://www.appropho.com/products_ii_en.html?id=183&type=36

https://www.e-consystems.com/2mp-sony-imx290-hd-cameramodule.asp

@hjbaek
I check the trace again. It shows the PIXEL_LONG_LINE A line has more pixels than expected width, make sure the sensor output width is correct.
And i think it should not be odd. Try modify it to 1940x1080

#define IMX291_DEFAULT_WIDTH 1937
#define IMX291_DEFAULT_HEIGHT 1097

kworker/4:0-1771  [004] ...1  2023.989023: rtcpu_vinotify_handle_msg: tstamp:63550722358 tag:CHANSEL_FAULT channel:0x00 frame:1 vi_tstamp:3421179786 data:0x00000100

@ShaneCCC

Thanks.
I modified it to 1940 * 1080, but same failure happens.

I want to ask some questions.
How do you get these values 1940, 1080 ?
Below is mipi csi-2 pixel array of imx291

and how can I get PIXEL_LONG_LINE from notification msg?

#define MASK_PIXEL_LONG_LINE (0x1 << 5)

dmesg

[  101.313729] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:8861, lanes:3000000
[  101.321527] tegra_mipi_cal 3990000.mipical: MIPI_CAL_CTRL                  0x04 0x2a000010
[  101.329935] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS            0x0c 0x00008861
[  101.338330] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS_2          0x10 0x00000000
[  101.346681] tegra_mipi_cal 3990000.mipical: CILA_MIPI_CAL_CONFIG           0x18 0x00000000
[  101.355012] tegra_mipi_cal 3990000.mipical: CILB_MIPI_CAL_CONFIG           0x1c 0x00000000
[  101.363372] tegra_mipi_cal 3990000.mipical: CILC_MIPI_CAL_CONFIG           0x20 0x00000000
[  101.371740] tegra_mipi_cal 3990000.mipical: CILD_MIPI_CAL_CONFIG           0x24 0x00000000
[  101.380074] tegra_mipi_cal 3990000.mipical: CILE_MIPI_CAL_CONFIG           0x28 0x00200000
[  101.388527] tegra_mipi_cal 3990000.mipical: CILF_MIPI_CAL_CONFIG           0x2c 0x00200000
[  101.396961] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG           0x3c 0x00000200
[  101.405285] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG           0x40 0x00000200
[  101.413686] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG           0x44 0x00000200
[  101.422049] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG           0x48 0x00000200
[  101.430352] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG0             0x5c 0x00000000
[  101.438655] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG1             0x60 0x00000000
[  101.446946] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG2             0x64 0x00010010
[  101.455245] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG_2         0x68 0x00000002
[  101.463531] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG_2         0x6c 0x00000002
[  101.471809] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG_2         0x74 0x00000002
[  101.480092] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG_2         0x78 0x00000002
[  101.496829] [imx291] s_stream on mode[0]
[  101.581585] vi4_check_status, status = 1056964608
[  101.587100] vi4_check_status, fifo error 0
[  101.591996] tegra_channel_capture_frame
[  101.596655] tegra_channel_surface_setup embed 1940x1
[  102.602190] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  102.608589] vi4_check_status, status = 1056964608
[  102.614151] vi4_check_status, fifo error 0
[  102.619154] tegra_channel_capture_frame
[  102.623860] tegra_channel_surface_setup embed 1940x1
[  103.626487] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  103.632890] vi4_check_status, status = 1056964608
[  103.638513] vi4_check_status, fifo error 0
[  103.643481] tegra_channel_capture_frame
[  103.648186] tegra_channel_surface_setup embed 1940x1
[  104.650777] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  104.657186] vi4_check_status, status = 1056964608
[  104.662795] vi4_check_status, fifo error 0
[  104.667782] tegra_channel_surface_setup embed 1940x1
[  105.671024] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!

trace

# tracer: nop
#
# entries-in-buffer/entries-written: 39/39   #P:4
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
     kworker/4:2-771   [004] ...1   100.805551: rtos_queue_peek_from_isr_failed: tstamp:3451737357 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   100.805558: rtcpu_start: tstamp:3451738399
     kworker/4:2-771   [004] ...1   100.961625: rtos_queue_peek_from_isr_failed: tstamp:3456738255 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   101.117679: rtos_queue_peek_from_isr_failed: tstamp:3461738758 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   101.325746: rtos_queue_peek_from_isr_failed: tstamp:3466739264 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   101.489756: rtos_queue_peek_from_isr_failed: tstamp:3471739785 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   101.593794: rtcpu_vinotify_handle_msg: tstamp:3476240816 tag:ATOMP_FS channel:0x00 frame:1 vi_tstamp:3476240370 data:0x00000000
     kworker/4:2-771   [004] ...1   101.593797: rtcpu_vinotify_handle_msg: tstamp:3476251907 tag:CHANSEL_PXL_SOF channel:0x00 frame:1 vi_tstamp:3476251480 data:0x00000001
     kworker/4:2-771   [004] ...1   101.593798: rtcpu_vinotify_handle_msg: tstamp:3476252599 tag:CHANSEL_FAULT channel:0x00 frame:1 vi_tstamp:3476252153 data:0x00000100
     kworker/4:2-771   [004] ...1   101.593800: rtcpu_vinotify_handle_msg: tstamp:3476253541 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:1 vi_tstamp:3476252745 data:0x08000000
     kworker/4:2-771   [004] ...1   101.593801: rtcpu_vinotify_handle_msg: tstamp:3476253688 tag:CHANSEL_FAULT_FE channel:0x10 frame:1 vi_tstamp:3476252747 data:0x00000001
     kworker/4:2-771   [004] ...1   101.593802: rtcpu_vinotify_handle_msg: tstamp:3476253865 tag:ATOMP_FE channel:0x00 frame:1 vi_tstamp:3476252750 data:0x00000000
     kworker/4:2-771   [004] ...1   101.641824: rtos_queue_peek_from_isr_failed: tstamp:3476740281 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   101.797894: rtos_queue_peek_from_isr_failed: tstamp:3481740784 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   101.953946: rtos_queue_peek_from_isr_failed: tstamp:3486741291 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   102.109994: rtos_queue_peek_from_isr_failed: tstamp:3491741795 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   102.266042: rtos_queue_peek_from_isr_failed: tstamp:3496742304 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   102.422090: rtos_queue_peek_from_isr_failed: tstamp:3501742812 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   102.578138: rtos_queue_peek_from_isr_failed: tstamp:3506743318 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   102.734197: rtos_queue_peek_from_isr_failed: tstamp:3511743825 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   102.890241: rtos_queue_peek_from_isr_failed: tstamp:3516744330 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   103.046284: rtos_queue_peek_from_isr_failed: tstamp:3521744842 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   103.202332: rtos_queue_peek_from_isr_failed: tstamp:3526745348 queue:0x0b4a3c58
     kworker/4:2-771   [004] ...1   103.358375: rtos_queue_peek_from_isr_failed: tstamp:3531745851 queue:0x0b4a3c58

@hjbaek
The trace log show PIXEL_LONG_LINE: A line has more pixels than expected width

kworker/4:2-771   [004] ...1   101.593798: rtcpu_vinotify_handle_msg: tstamp:3476252599 tag:CHANSEL_FAULT channel:0x00 frame:1 vi_tstamp:3476252153 data:0x00000100

Hello ShaneCCC

Now, my camera is working fine.
I got driver source codes and device tree files from one of your partners.
but I have another problem.

My board has 2 cameras, one is connected at mipi csi 4/5 and the other is connected at mipi csi 2/3.
When I activate CAM-A(CSI 4/5) only on device tree, it works fine. but if I activate CAM-B(CSI 2/3), nvcamera-deamon dead.

Could you check error codes as below ?

nvidia@tegra-ubuntu:~$ [   30.153712] nvcamera-daemon[1728]: unhandled level 2 translation fault (11) at 0x00000000, esr 0x92000006
[   30.163652] pgd = ffffffc1d7742000
[   30.167086] [00000000] *pgd=000000025722c003, *pud=000000025722c003, *pmd=0000000000000000
[   30.175457] 
[   30.176985] CPU: 5 PID: 1728 Comm: nvcamera-daemon Not tainted 4.4.38 #8
[   30.183697] Hardware name: quill (DT)
[   30.187382] task: ffffffc1cb04be80 ti: ffffffc073cb0000 task.ti: ffffffc073cb0000
[   30.194864] PC is at 0x402efc
[   30.197853] LR is at 0x402ef8
[   30.200825] pc : [<0000000000402efc>] lr : [<0000000000402ef8>] pstate: 60000000
[   30.208212] sp : 0000007f9638c2d0
[   30.211519] x29: 0000007f963909d0 x28: 0000000000000000 
[   30.216853] x27: 0000000000000002 x26: 0000007f96390340 
[   30.222182] x25: 0000000000404000 x24: 0000000000000334 
[   30.227511] x23: 0000007f9638e340 x22: 0000007f9638d340 
[   30.232856] x21: 0000007f9638e264 x20: 0000007f9638c350 
[   30.238187] x19: 0000007f9638e950 x18: 0000000000000014 
[   30.243516] x17: 0000007f97c02fb0 x16: 0000007f97957540 
[   30.248857] x15: 0000007f985fb000 x14: 7265766972446172 
[   30.254188] x13: 656d61432f697061 x12: 2f637273206d6f72 
[   30.259522] x11: 6620676e69746167 x10: 61706f7270282020 
[   30.264856] x9 : 3a726574656d6172 x8 : 0000000000000040 
[   30.270186] x7 : 0000007f906b3290 x6 : 0000000000000001 
[   30.275518] x5 : 0000000000000000 x4 : 0000007f90000b10 
[   30.280860] x3 : 0000000000000000 x2 : 0000000000000001 
[   30.286188] x1 : 0000000000000000 x0 : 0000000000000000 
[   30.291518] 
[   30.293016] Library at 0x402efc: 0x400000 /usr/sbin/nvcamera-daemon
[   30.299281] Library at 0x402ef8: 0x400000 /usr/sbin/nvcamera-daemon
[   30.305542] vdso base = 0x7f985fa000

@hjbaek
I can’t tell what happen for your post.
Check below command for both video0 and video1 are worked first.

v4l2-ctl -d /dev/videoX --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=t.raw

@ShaneCCC

As I mentioned before, I could get correct picture and mp4 video from CAM-A.
But If I add CAM-B on device tree I got nvcamera-demon crash.

root@tegra-ubuntu:/home/nvidia# v4l2-ctl -d /dev/video1 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=video.raw

[   10.352936] wl_bss_connect_done succeeded with 90:9f:33:fa:45:c0
[   10.385198] wl_bss_connect_done succeeded with 90:9f:33:fa:45:c0
[   10.490332] dhd_ndo_add_ip: ndo ip addr add failed, retcode = -23
[   10.496527] dhd_inet6_work_handler: Adding host ip for NDO failed -23
[  249.406798] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:8861, lanes:400000
[  249.414518] tegra_mipi_cal 3990000.mipical: MIPI_CAL_CTRL                  0x04 0x2a000010
[  249.422929] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS            0x0c 0x00008861
[  249.431279] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS_2          0x10 0x00000000
[  249.439623] tegra_mipi_cal 3990000.mipical: CILA_MIPI_CAL_CONFIG           0x18 0x00000000
[  249.447930] tegra_mipi_cal 3990000.mipical: CILB_MIPI_CAL_CONFIG           0x1c 0x00000000
[  249.456278] tegra_mipi_cal 3990000.mipical: CILC_MIPI_CAL_CONFIG           0x20 0x00200000
[  249.464570] tegra_mipi_cal 3990000.mipical: CILD_MIPI_CAL_CONFIG           0x24 0x00000000
[  249.472867] tegra_mipi_cal 3990000.mipical: CILE_MIPI_CAL_CONFIG           0x28 0x00000000
[  249.481188] tegra_mipi_cal 3990000.mipical: CILF_MIPI_CAL_CONFIG           0x2c 0x00000000
[  249.489494] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG           0x3c 0x00000200
[  249.497795] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG           0x40 0x00000200
[  249.506103] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG           0x44 0x00000200
[  249.514397] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG           0x48 0x00000200
[  249.522690] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG0             0x5c 0x00000000
[  249.530982] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG1             0x60 0x00000000
[  249.539264] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG2             0x64 0x00010010
[  249.547544] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG_2         0x68 0x00000002
[  249.555830] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG_2         0x6c 0x00000002
[  249.564105] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG_2         0x74 0x00000002
[  249.572390] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG_2         0x78 0x00000002
[  249.829408] tegra-vi4 15700000.vi: Status:  5 channel:00 frame:0006
[  249.835754] tegra-vi4 15700000.vi:          timestamp sof 259490845632 eof 259490980256 data 0x00000001
[  249.845210] tegra-vi4 15700000.vi:          capture_id 5 stream  2 vchan  0

root@tegra-ubuntu:/home/nvidia# v4l2-ctl -d /dev/video1 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=video.raw
<
root@tegra-ubuntu:/home/nvidia# cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 32/32   #P:4
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
     kworker/5:1-51    [005] ...1   248.922696: rtos_queue_peek_from_isr_failed: tstamp:8080273067 queue:0x0b4a3c58
     kworker/5:1-51    [005] ...1   248.922704: rtcpu_start: tstamp:8080274166
     kworker/5:1-51    [005] ...1   249.078745: rtos_queue_peek_from_isr_failed: tstamp:8085273956 queue:0x0b4a3c58
     kworker/5:1-51    [005] ...1   249.234770: rtos_queue_peek_from_isr_failed: tstamp:8090274458 queue:0x0b4a3c58
     kworker/5:1-51    [005] ...1   249.390794: rtos_queue_peek_from_isr_failed: tstamp:8095274966 queue:0x0b4a3c58
     kworker/5:1-51    [005] ...1   249.554788: rtos_queue_peek_from_isr_failed: tstamp:8100275499 queue:0x0b4a3c58
     kworker/5:1-51    [005] ...1   249.710849: rtos_queue_peek_from_isr_failed: tstamp:8105275979 queue:0x0b4a3c58
     kworker/5:1-51    [005] ...1   249.762855: rtcpu_vinotify_handle_msg: tstamp:8106998569 tag:ATOMP_FS channel:0x00 frame:2 vi_tstamp:3812030828 data:0x00000000
     kworker/5:1-51    [005] ...1   249.762859: rtcpu_vinotify_handle_msg: tstamp:8107004107 tag:CHANSEL_PXL_SOF channel:0x00 frame:2 vi_tstamp:3812036379 data:0x00000001
     kworker/5:1-51    [005] ...1   249.762861: rtcpu_vinotify_handle_msg: tstamp:8107008648 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:2 vi_tstamp:3812040908 data:0x08000000
     kworker/5:1-51    [005] ...1   249.814857: rtcpu_vinotify_handle_msg: tstamp:8107512110 tag:CHANSEL_PXL_EOF channel:0x00 frame:2 vi_tstamp:3812544200 data:0x04470002
     kworker/5:1-51    [005] ...1   249.814861: rtcpu_vinotify_handle_msg: tstamp:8107512252 tag:ATOMP_FE channel:0x00 frame:2 vi_tstamp:3812544250 data:0x00000000
     kworker/5:1-51    [005] ...1   249.814863: rtcpu_vinotify_handle_msg: tstamp:8107519875 tag:ATOMP_FS channel:0x00 frame:3 vi_tstamp:3812552142 data:0x00000000
     kworker/5:1-51    [005] ...1   249.814864: rtcpu_vinotify_handle_msg: tstamp:8107525415 tag:CHANSEL_PXL_SOF channel:0x00 frame:3 vi_tstamp:3812557693 data:0x00000001
     kworker/5:1-51    [005] ...1   249.814866: rtcpu_vinotify_handle_msg: tstamp:8107529020 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:3 vi_tstamp:3812561286 data:0x08000000
     kworker/5:1-51    [005] ...1   249.814868: rtcpu_vinotify_handle_msg: tstamp:8108033420 tag:CHANSEL_PXL_EOF channel:0x00 frame:3 vi_tstamp:3813065512 data:0x04470002
     kworker/5:1-51    [005] ...1   249.814869: rtcpu_vinotify_handle_msg: tstamp:8108033562 tag:ATOMP_FE channel:0x00 frame:3 vi_tstamp:3813065564 data:0x00000000
     kworker/5:1-51    [005] ...1   249.814871: rtcpu_vinotify_handle_msg: tstamp:8108041187 tag:ATOMP_FS channel:0x00 frame:4 vi_tstamp:3813073454 data:0x00000000
     kworker/5:1-51    [005] ...1   249.814873: rtcpu_vinotify_handle_msg: tstamp:8108046725 tag:CHANSEL_PXL_SOF channel:0x00 frame:4 vi_tstamp:3813079005 data:0x00000001
     kworker/5:1-51    [005] ...1   249.814875: rtcpu_vinotify_handle_msg: tstamp:8108050858 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:4 vi_tstamp:3813083134 data:0x08000000
     kworker/5:1-51    [005] ...1   249.814877: rtcpu_vinotify_handle_msg: tstamp:8108554721 tag:CHANSEL_PXL_EOF channel:0x00 frame:4 vi_tstamp:3813586825 data:0x04470002
     kworker/5:1-51    [005] ...1   249.814878: rtcpu_vinotify_handle_msg: tstamp:8108554867 tag:ATOMP_FE channel:0x00 frame:4 vi_tstamp:3813586876 data:0x00000000
     kworker/5:1-51    [005] ...1   249.814880: rtcpu_vinotify_handle_msg: tstamp:8108562491 tag:ATOMP_FS channel:0x00 frame:5 vi_tstamp:3813594767 data:0x00000000
     kworker/5:1-51    [005] ...1   249.814882: rtcpu_vinotify_handle_msg: tstamp:8108568035 tag:CHANSEL_PXL_SOF channel:0x00 frame:5 vi_tstamp:3813600318 data:0x00000001
     kworker/5:1-51    [005] ...1   249.866901: rtcpu_vinotify_handle_msg: tstamp:8109076048 tag:CHANSEL_PXL_EOF channel:0x00 frame:5 vi_tstamp:3814108137 data:0x04470002
     kworker/5:1-51    [005] ...1   249.866909: rtcpu_vinotify_handle_msg: tstamp:8109076189 tag:ATOMP_FE channel:0x00 frame:5 vi_tstamp:3814108189 data:0x00000000
     kworker/5:1-51    [005] ...1   249.866911: rtcpu_vinotify_handle_msg: tstamp:8109083808 tag:ATOMP_FS channel:0x00 frame:6 vi_tstamp:3814116079 data:0x00000000
     kworker/5:1-51    [005] ...1   249.866913: rtcpu_vinotify_handle_msg: tstamp:8109089350 tag:CHANSEL_PXL_SOF channel:0x00 frame:6 vi_tstamp:3814121630 data:0x00000001
     kworker/5:1-51    [005] ...1   249.866915: rtcpu_vinotify_handle_msg: tstamp:8109094700 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:6 vi_tstamp:3814125836 data:0x08000000
     kworker/5:1-51    [005] ...1   249.866918: rtcpu_vinotify_handle_msg: tstamp:8109094834 tag:CHANSEL_FAULT_FE channel:0x04 frame:6 vi_tstamp:3814125837 data:0x00000001
     kworker/5:1-51    [005] ...1   249.866920: rtcpu_vinotify_handle_msg: tstamp:8109095056 tag:ATOMP_FE channel:0x00 frame:6 vi_tstamp:3814125840 data:0x00000000
     kworker/5:1-51    [005] ...1   249.866925: rtos_queue_peek_from_isr_failed: tstamp:8109834085 queue:0x0b4a3c58
root@tegra-ubuntu:/home/nvidia# gst-launch-1.0 nvcamerasrc num-buffers=300 ! omxh264enc ! qtmux ! filesink location=test.mp4

[  400.481370] nvcamera-daemon[1973]: unhandled level 2 translation fault (11) at 0x00000000, esr 0x92000006
[  400.490985] pgd = ffffffc1e0bfc000
[  400.494437] [00000000] *pgd=0000000263dfd003, *pud=0000000263dfd003, *pmd=0000000000000000
[  400.502835] 
[  400.504348] CPU: 0 PID: 1973 Comm: nvcamera-daemon Not tainted 4.4.38 #8
[  400.511081] Hardware name: quill (DT)
[  400.514780] task: ffffffc077a8d780 ti: ffffffc1a8204000 task.ti: ffffffc1a8204000
[  400.522281] PC is at 0x402efc
[  400.525262] LR is at 0x402ef8
[  400.528233] pc : [<0000000000402efc>] lr : [<0000000000402ef8>] pstate: 60000000
[  400.535639] sp : 0000007f793c72d0
[  400.538971] x29: 0000007f793cb9d0 x28: 0000000000000000 
[  400.544318] x27: 0000000000000002 x26: 0000007f793cb340 
[  400.549691] x25: 0000000000404000 x24: 0000000000000334 
[  400.555076] x23: 0000007f793c9340 x22: 0000007f793c8340 
[  400.560416] x21: 0000007f793c9264 x20: 0000007f793c7350 
[  400.565746] x19: 0000007f793c9950 x18: 0000000000000014 
[  400.571075] x17: 0000007f7ac3dfb0 x16: 0000007f7a992540 
[  400.576408] x15: 0000007f7b636000 x14: 7265766972446172 
[  400.581745] x13: 656d61432f697061 x12: 2f637273206d6f72 
[  400.587076] x11: 6620676e69746167 x10: 61706f7270282020 
[  400.592406] x9 : 3a726574656d6172 x8 : 0000000000000040 
[  400.597741] x7 : 0000007f746b3290 x6 : 0000000000000001 
[  400.603070] x5 : 0000000000000000 x4 : 0000007f74000b10 
[  400.608401] x3 : 0000000000000000 x2 : 0000000000000001 
[  400.613736] x1 : 0000000000000000 x0 : 0000000000000000 
[  400.619065] 
[  400.620564] Library at 0x402efc: 0x400000 /usr/sbin/nvcamera-daemon
[  400.626827] Library at 0x402ef8: 0x400000 /usr/sbin/nvcamera-daemon
[  400.633094] vdso base = 0x7f7b635000

Setting pipeline to PAUSED ...
Socket read error. Camera Daemon stopped functioning.....
gst_nvcamera_open() failed ret=0
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3354): gst_base_src_start (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
Failed to start
Setting pipeline to NULL ...
Freeing pipeline ...

As below is my new dtsi

#define CAM0_RST_L	TEGRA_MAIN_GPIO(R, 5)
#define CAM0_PWDN	TEGRA_MAIN_GPIO(R, 0)
#define CAM1_RST_L	TEGRA_MAIN_GPIO(R, 1)
#define CAM1_PWDN	TEGRA_MAIN_GPIO(N, 2)

/ {
	tegra-camera-platform {
		/**
		* tpg_max_iso = <>;
		* Max iso bw for 6 streams of tpg
		* streams * nvcsi_freq * PG_bitrate / RG10 * BPP
		* 6 * 102Mhz * 32 bits/ 10 bits * 2 Bps
		* = 3916.8 MBps
		*/
		tpg_max_iso = <3916800>;
	};

	/* set camera gpio direction to output */
	gpio@2200000 {
		camera-control-output-low {
			gpio-hog;
			output-low;
			gpios = <CAM0_RST_L 0 CAM0_PWDN 0
				 CAM1_RST_L 0 CAM1_PWDN 0>;
			label = "cam0-rst", "cam0-pwdn",
				"cam1-rst", "cam1-pwdn";
		};
	};

	/* all cameras are disabled by default */
	host1x {
		vi@15700000 {
			num-channels = <2>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					status = "okay";
					reg = <0>;
					my_vi_in0: endpoint {
						status = "okay";
						csi-port = <4>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_out0>;
					};
				};
        			port@1 {
					status = "okay";
					reg = <1>;
					my_vi_in1: endpoint {
						status = "okay";
						csi-port = <2>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_out1>;
					};
				};
      			};
		};

		nvcsi@150c0000 {
			num-channels = <2>;
			#address-cells = <1>;
			#size-cells = <0>;
      			channel@0 {
				status = "okay";
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						status = "okay";
						reg = <0>;
						my_csi_in0: endpoint@0 {
							status = "okay";
							csi-port = <4>;
							bus-width = <2>;
							remote-endpoint = <&my_imx290_out0>;
						};
					};
					port@1 {
						status = "okay";
						reg = <1>;
						my_csi_out0: endpoint@1 {
							status = "okay";
							remote-endpoint = <&my_vi_in0>;
						};
					};
				};
			};
      			channel@1 {
				status = "okay";
				reg = <1>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						status = "okay";
						reg = <0>;
						my_csi_in1: endpoint@0 {
							status = "okay";
							csi-port = <2>;
							bus-width = <2>;
							remote-endpoint = <&my_imx290_out1>;
						};
					};
					port@1 {
						status = "okay";
						reg = <1>;
						my_csi_out1: endpoint@1 {
							status = "okay";
							remote-endpoint = <&my_vi_in1>;
						};
					};
				};
			};
    		};
	};

	i2c@c240000 {
		imx290_e@1a {
			status = "okay";
      			compatible = "nvidia,imx290";

      			/* Define any required hw resources needed by driver */
      			/* ie. clocks, io pins, power sources */
      			clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>,
					 <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
			clock-names = "extperiph1", "pllp_grtba";
			mclk = "extperiph1";

			reset-gpios = <&tegra_main_gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;
			pwdn-gpios = <&tegra_main_gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;

      			reg = <0x1a>;
      			devnode = "video0";
      			/* Physical dimensions of sensor */
      			physical_w = "1.948";
      			physical_h = "1.109";

      			avdd-reg = "vana";
      			iovdd-reg = "vif";
      			sensor_model ="imx290";
      			/* Define any required hw resources needed by driver */
      			/* ie. clocks, io pins, power sources */

      			/* Defines number of frames to be dropped by driver internally after applying */
      			/* sensor crop settings. Some sensors send corrupt frames after applying */
      			/* crop co-ordinates */
      			post_crop_frame_drop = "0";

      			/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
      			/* use_decibel_gain = "true"; */

      			/* if true, delay gain setting by one frame to be in sync with exposure */
      			delayed_gain = "true";

      			mode0 {/*mode IMX290_MODE_1920X1080_CROP_60FPS*/
				mclk_khz = "24000";
				num_lanes = "2";
				tegra_sinterface = "serial_e";
				discontinuous_clk = "yes";
				dpcm_enable = "false";
				cil_settletime = "0";

				dynamic_pixel_bit_depth = "12";
				csi_pixel_bit_depth = "12";
				mode_type = "bayer";
				pixel_phase = "rggb";
				pixel_t = "bayer_rggb";

				active_w = "1948";
				active_h = "1096";
				readout_orientation = "0";
				line_length = "2200";
				inherent_gain = "1";
				mclk_multiplier = "25";
				pix_clk_hz = "148500000";

				min_gain_val = "1"; /* dB */
				max_gain_val = "30"; /* dB */
				min_hdr_ratio = "1";
				max_hdr_ratio = "64";
				min_framerate = "3";
				max_framerate = "60";
				min_exp_time = "14.8";
				max_exp_time = "16650";
				embedded_metadata_height = "1";
			};

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					my_imx290_out0: endpoint {
						csi-port = <4>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_in0>;
					};
				};
			};
		};
	};

	i2c@c250000 {
		imx290_c@1a {
			status = "okay";
      			compatible = "nvidia,imx290";

      			/* Define any required hw resources needed by driver */
      			/* ie. clocks, io pins, power sources */
      			clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>,
					 <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
			clock-names = "extperiph1", "pllp_grtba";
			mclk = "extperiph1";

      			reset-gpios = <&tegra_main_gpio CAM1_RST_L GPIO_ACTIVE_HIGH>;
			pwdn-gpios = <&tegra_main_gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;

		      	reg = <0x1a>;
		      	devnode = "video1";
		      	/* Physical dimensions of sensor */
		      	physical_w = "1.948";
		      	physical_h = "1.109";

		      	avdd-reg = "vana";
		      	iovdd-reg = "vif";
		      	sensor_model ="imx290";
		      	/* Define any required hw resources needed by driver */
		      	/* ie. clocks, io pins, power sources */

		      	/* Defines number of frames to be dropped by driver internally after applying */
		      	/* sensor crop settings. Some sensors send corrupt frames after applying */
		      	/* crop co-ordinates */
		      	post_crop_frame_drop = "0";

		      	/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
		      	/* use_decibel_gain = "true"; */

		      	/* if true, delay gain setting by one frame to be in sync with exposure */
		      	delayed_gain = "true";

		      	mode0 {/*mode IMX290_MODE_1920X1080_CROP_60FPS*/
				mclk_khz = "24000";
				num_lanes = "2";
				tegra_sinterface = "serial_c";
				discontinuous_clk = "yes";
				dpcm_enable = "false";
				cil_settletime = "0";

				dynamic_pixel_bit_depth = "12";
				csi_pixel_bit_depth = "12";
				mode_type = "bayer";
				pixel_phase = "rggb";
				pixel_t = "bayer_rggb";

				active_w = "1948";
				active_h = "1096";
				readout_orientation = "0";
				line_length = "2200";
				inherent_gain = "1";
				mclk_multiplier = "25";
				pix_clk_hz = "148500000";

				min_gain_val = "1"; /* dB */
				max_gain_val = "30"; /* dB */
				min_hdr_ratio = "1";
				max_hdr_ratio = "64";
				min_framerate = "3";
				max_framerate = "60";
				min_exp_time = "14.8";
				max_exp_time = "16650";
				embedded_metadata_height = "1";
			};

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					my_imx290_out1: endpoint {
						csi-port = <2>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_in1>;
					};
				};
			};
		};
	};

	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";

    		num_csi_lanes = <6>;
		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 {
			module0 {
				status = "okay";
				badge = "my_rear_imx290";
				position = "rear";
				orientation = "0";
				drivernode0 {
					status = "okay";
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx290 1-001a";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@c240000/imx290_e@1a";
				};
			};
      			module1 {
				status = "okay";
				badge = "my_front_imx290";
				position = "front";
				orientation = "0";
				drivernode0 {
					status = "okay";
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx290 2-001a";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@c250000/imx290_c@1a";
				};
			};
		};
	};
};

@hjbaek
Could you try make the CSI C-D at CSI channel 0 and VI port 0

@ShaneCCC

I moved CSI C-D to csi channel0 and vi port 0.
but the result is same.
If I remove CAM-B settings from device tree file, CAM-A works fine.

nvcamera-deamon crashs.

root@tegra-ubuntu:/home/nvidia# gst-launch-1.0 nvcamerasrc num-buffers=300 ! omxh264enc ! qtmux ! filesink location=test.mp4

Setting pipeline to PAUSED ...
[  566.914376] nvcamera-daemon[1847]: unhandled level 2 translation fault (11) at 0x00000000, esr 0x92000006
[  566.923985] pgd = ffffffc1b088f000
[  566.927398] [00000000] *pgd=0000000232df5003, *pud=0000000232df5003, *pmd=0000000000000000
[  566.935705] 
[  566.937207] CPU: 4 PID: 1847 Comm: nvcamera-daemon Not tainted 4.4.38 #8
[  566.943922] Hardware name: quill (DT)
[  566.947589] task: ffffffc1ecf0f080 ti: ffffffc1a57c0000 task.ti: ffffffc1a57c0000
[  566.955069] PC is at 0x402efc
[  566.958039] LR is at 0x402ef8
[  566.961000] pc : [<0000000000402efc>] lr : [<0000000000402ef8>] pstate: 60000000
[  566.968389] sp : 0000007f7f8482d0
[  566.971705] x29: 0000007f7f84c9d0 x28: 0000000000000000 
[  566.977035] x27: 0000000000000002 x26: 0000007f7f84c340 
[  566.982370] x25: 0000000000404000 x24: 0000000000000334 
[  566.987700] x23: 0000007f7f84a340 x22: 0000007f7f849340 
[  566.993030] x21: 0000007f7f84a264 x20: 0000007f7f848350 
[  566.998373] x19: 0000007f7f84a950 x18: 0000000000000014 
[  567.003704] x17: 0000007f810befb0 x16: 0000007f80e13540 
[  567.009034] x15: 0000007f81ab7000 x14: 7265766972446172 
[  567.014370] x13: 656d61432f697061 x12: 2f637273206d6f72 
[  567.019700] x11: 6620676e69746167 x10: 61706f7270282020 
[  567.025031] x9 : 3a726574656d6172 x8 : 0000000000000040 
[  567.030366] x7 : 0000007f786b3290 x6 : 0000000000000001 
[  567.035696] x5 : 0000000000000000 x4 : 0000007f78000b10 
[  567.041026] x3 : 0000000000000000 x2 : 0000000000000001 
[  567.046367] x1 : 0000000000000000 x0 : 0000000000000000 
[  567.051699] 
[  567.053187] Library at 0x402efc: 0x400000 /usr/sbin/nvcamera-daemon
[  567.059451] Library at 0x402ef8: 0x400000 /usr/sbin/nvcamera-daemon
[  567.065714] vdso base = 0x7f81ab6000
Socket read error. Camera Daemon stopped functioning.....
gst_nvcamera_open() failed ret=0
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3354): gst_base_src_start (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
Failed to start
Setting pipeline to NULL ...
Freeing pipeline ...
root@tegra-ubuntu:/home/nvidia# v4l2-ctl -d /dev/video1 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=video.raw

[  301.041541] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:8861, lanes:1000000
[  301.049344] tegra_mipi_cal 3990000.mipical: MIPI_CAL_CTRL                  0x04 0x2a000010
[  301.057754] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS            0x0c 0x00008861
[  301.066096] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS_2          0x10 0x00000000
[  301.074446] tegra_mipi_cal 3990000.mipical: CILA_MIPI_CAL_CONFIG           0x18 0x00000000
[  301.082751] tegra_mipi_cal 3990000.mipical: CILB_MIPI_CAL_CONFIG           0x1c 0x00000000
[  301.091096] tegra_mipi_cal 3990000.mipical: CILC_MIPI_CAL_CONFIG           0x20 0x00000000
[  301.099389] tegra_mipi_cal 3990000.mipical: CILD_MIPI_CAL_CONFIG           0x24 0x00000000
[  301.107714] tegra_mipi_cal 3990000.mipical: CILE_MIPI_CAL_CONFIG           0x28 0x00200000
[  301.116012] tegra_mipi_cal 3990000.mipical: CILF_MIPI_CAL_CONFIG           0x2c 0x00000000
[  301.124321] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG           0x3c 0x00000200
[  301.132624] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG           0x40 0x00000200
[  301.140922] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG           0x44 0x00000200
[  301.149211] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG           0x48 0x00000200
[  301.157503] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG0             0x5c 0x00000000
[  301.165781] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG1             0x60 0x00000000
[  301.174063] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG2             0x64 0x00010010
[  301.182344] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG_2         0x68 0x00000002
[  301.190623] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG_2         0x6c 0x00000002
[  301.198906] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG_2         0x74 0x00000002
[  301.207185] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG_2         0x78 0x00000002
<[  301.463558] tegra-vi4 15700000.vi: Status:  5 channel:00 frame:0006
[  301.469914] tegra-vi4 15700000.vi:          timestamp sof 311148055840 eof 311148213600 data 0x00000001
[  301.479398] tegra-vi4 15700000.vi:          capture_id 15 stream  4 vchan  0

root@tegra-ubuntu:/home/nvidia# cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 33/33   #P:4
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
     kworker/4:1-57    [004] ...1   300.566563: rtos_queue_peek_from_isr_failed: tstamp:9694285767 queue:0x0b4a3c58
     kworker/4:1-57    [004] ...1   300.566570: rtcpu_start: tstamp:9694287230
     kworker/4:1-57    [004] ...1   300.723554: rtos_queue_peek_from_isr_failed: tstamp:9699286646 queue:0x0b4a3c58
     kworker/4:1-57    [004] ...1   300.880535: rtos_queue_peek_from_isr_failed: tstamp:9704287179 queue:0x0b4a3c58
     kworker/4:1-57    [004] ...1   301.037512: rtos_queue_peek_from_isr_failed: tstamp:9709287657 queue:0x0b4a3c58
     kworker/4:1-57    [004] ...1   301.202506: rtos_queue_peek_from_isr_failed: tstamp:9714288165 queue:0x0b4a3c58
     kworker/4:1-57    [004] ...1   301.355509: rtos_queue_peek_from_isr_failed: tstamp:9719288670 queue:0x0b4a3c58
     kworker/4:1-57    [004] ...1   301.407829: rtcpu_vinotify_handle_msg: tstamp:9721286397 tag:ATOMP_FS channel:0x00 frame:2 vi_tstamp:1131351351 data:0x00000000
     kworker/4:1-57    [004] ...1   301.407833: rtcpu_vinotify_handle_msg: tstamp:9721291919 tag:CHANSEL_PXL_SOF channel:0x00 frame:2 vi_tstamp:1131356902 data:0x00000001
     kworker/4:1-57    [004] ...1   301.407836: rtcpu_vinotify_handle_msg: tstamp:9721296258 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:2 vi_tstamp:1131361240 data:0x08000000
     kworker/4:1-57    [004] ...1   301.460124: rtcpu_vinotify_handle_msg: tstamp:9721799925 tag:CHANSEL_PXL_EOF channel:0x00 frame:2 vi_tstamp:1131864722 data:0x04470002
     kworker/4:1-57    [004] ...1   301.460128: rtcpu_vinotify_handle_msg: tstamp:9721800056 tag:ATOMP_FE channel:0x00 frame:2 vi_tstamp:1131864773 data:0x00000000
     kworker/4:1-57    [004] ...1   301.460129: rtcpu_vinotify_handle_msg: tstamp:9721807692 tag:ATOMP_FS channel:0x00 frame:3 vi_tstamp:1131872664 data:0x00000000
     kworker/4:1-57    [004] ...1   301.460131: rtcpu_vinotify_handle_msg: tstamp:9721813226 tag:CHANSEL_PXL_SOF channel:0x00 frame:3 vi_tstamp:1131878215 data:0x00000001
     kworker/4:1-57    [004] ...1   301.460133: rtcpu_vinotify_handle_msg: tstamp:9721816997 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:3 vi_tstamp:1131881985 data:0x08000000
     kworker/4:1-57    [004] ...1   301.460134: rtcpu_vinotify_handle_msg: tstamp:9722321235 tag:CHANSEL_PXL_EOF channel:0x00 frame:3 vi_tstamp:1132386035 data:0x04470002
     kworker/4:1-57    [004] ...1   301.460135: rtcpu_vinotify_handle_msg: tstamp:9722321366 tag:ATOMP_FE channel:0x00 frame:3 vi_tstamp:1132386086 data:0x00000000
     kworker/4:1-57    [004] ...1   301.460137: rtcpu_vinotify_handle_msg: tstamp:9722329002 tag:ATOMP_FS channel:0x00 frame:4 vi_tstamp:1132393977 data:0x00000000
     kworker/4:1-57    [004] ...1   301.460139: rtcpu_vinotify_handle_msg: tstamp:9722334539 tag:CHANSEL_PXL_SOF channel:0x00 frame:4 vi_tstamp:1132399528 data:0x00000001
     kworker/4:1-57    [004] ...1   301.460140: rtcpu_vinotify_handle_msg: tstamp:9722338547 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:4 vi_tstamp:1132403531 data:0x08000000
     kworker/4:1-57    [004] ...1   301.460142: rtcpu_vinotify_handle_msg: tstamp:9722842536 tag:CHANSEL_PXL_EOF channel:0x00 frame:4 vi_tstamp:1132907348 data:0x04470002
     kworker/4:1-57    [004] ...1   301.460143: rtcpu_vinotify_handle_msg: tstamp:9722842668 tag:ATOMP_FE channel:0x00 frame:4 vi_tstamp:1132907399 data:0x00000000
     kworker/4:1-57    [004] ...1   301.460145: rtcpu_vinotify_handle_msg: tstamp:9722850318 tag:ATOMP_FS channel:0x00 frame:5 vi_tstamp:1132915289 data:0x00000000
     kworker/4:1-57    [004] ...1   301.460146: rtcpu_vinotify_handle_msg: tstamp:9722855854 tag:CHANSEL_PXL_SOF channel:0x00 frame:5 vi_tstamp:1132920840 data:0x00000001
     kworker/4:1-57    [004] ...1   301.512441: rtcpu_vinotify_handle_msg: tstamp:9723299143 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:5 vi_tstamp:1133364125 data:0x08000000
     kworker/4:1-57    [004] ...1   301.512447: rtcpu_vinotify_handle_msg: tstamp:9723363860 tag:CHANSEL_PXL_EOF channel:0x00 frame:5 vi_tstamp:1133428661 data:0x04470002
     kworker/4:1-57    [004] ...1   301.512450: rtcpu_vinotify_handle_msg: tstamp:9723363991 tag:ATOMP_FE channel:0x00 frame:5 vi_tstamp:1133428711 data:0x00000000
     kworker/4:1-57    [004] ...1   301.512452: rtcpu_vinotify_handle_msg: tstamp:9723371626 tag:ATOMP_FS channel:0x00 frame:6 vi_tstamp:1133436602 data:0x00000000
     kworker/4:1-57    [004] ...1   301.512454: rtcpu_vinotify_handle_msg: tstamp:9723377165 tag:CHANSEL_PXL_SOF channel:0x00 frame:6 vi_tstamp:1133442153 data:0x00000001
     kworker/4:1-57    [004] ...1   301.512457: rtcpu_vinotify_handle_msg: tstamp:9723383174 tag:CHANSEL_LOAD_FRAMED channel:0x10 frame:6 vi_tstamp:1133447083 data:0x08000000
     kworker/4:1-57    [004] ...1   301.512459: rtcpu_vinotify_handle_msg: tstamp:9723383298 tag:CHANSEL_FAULT_FE channel:0x10 frame:6 vi_tstamp:1133447083 data:0x00000001
     kworker/4:1-57    [004] ...1   301.512461: rtcpu_vinotify_handle_msg: tstamp:9723383515 tag:ATOMP_FE channel:0x00 frame:6 vi_tstamp:1133447087 data:0x00000000
     kworker/4:1-57    [004] ...1   301.512466: rtos_queue_peek_from_isr_failed: tstamp:9724104636 queue:0x0b4a3c58

Please check my device tree file.

#define CAM0_RST_L	TEGRA_MAIN_GPIO(R, 5)
#define CAM0_PWDN	TEGRA_MAIN_GPIO(R, 0)
#define CAM1_RST_L	TEGRA_MAIN_GPIO(R, 1)
#define CAM1_PWDN	TEGRA_MAIN_GPIO(N, 2)

/ {
	tegra-camera-platform {
		/**
		* tpg_max_iso = <>;
		* Max iso bw for 6 streams of tpg
		* streams * nvcsi_freq * PG_bitrate / RG10 * BPP
		* 6 * 102Mhz * 32 bits/ 10 bits * 2 Bps
		* = 3916.8 MBps
		*/
		tpg_max_iso = <3916800>;
	};

	/* set camera gpio direction to output */
	gpio@2200000 {
		camera-control-output-low {
			gpio-hog;
			output-low;
			gpios = <CAM0_RST_L 0 CAM0_PWDN 0
				 CAM1_RST_L 0 CAM1_PWDN 0>;
			label = "cam0-rst", "cam0-pwdn",
				"cam1-rst", "cam1-pwdn";
		};
	};

	/* all cameras are disabled by default */
	host1x {
		vi@15700000 {
			num-channels = <2>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					status = "okay";
					reg = <0>;
					my_vi_in0: endpoint {
						status = "okay";
						csi-port = <2>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_out0>;
					};
				};
        			port@1 {
					status = "okay";
					reg = <1>;
					my_vi_in1: endpoint {
						status = "okay";
						csi-port = <4>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_out1>;
					};
				};
      			};
		};

		nvcsi@150c0000 {
			num-channels = <2>;
			#address-cells = <1>;
			#size-cells = <0>;
      			channel@0 {
				status = "okay";
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						status = "okay";
						reg = <0>;
						my_csi_in0: endpoint@0 {
							status = "okay";
							csi-port = <2>;
							bus-width = <2>;
							remote-endpoint = <&my_imx290_out0>;
						};
					};
					port@1 {
						status = "okay";
						reg = <1>;
						my_csi_out0: endpoint@1 {
							status = "okay";
							remote-endpoint = <&my_vi_in0>;
						};
					};
				};
			};
      			channel@1 {
				status = "okay";
				reg = <1>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						status = "okay";
						reg = <0>;
						my_csi_in1: endpoint@0 {
							status = "okay";
							csi-port = <4>;
							bus-width = <2>;
							remote-endpoint = <&my_imx290_out1>;
						};
					};
					port@1 {
						status = "okay";
						reg = <1>;
						my_csi_out1: endpoint@1 {
							status = "okay";
							remote-endpoint = <&my_vi_in1>;
						};
					};
				};
			};
    		};
	};

	i2c@c240000 {
		imx290_e@1a {
			status = "okay";
      			compatible = "nvidia,imx290";

      			/* Define any required hw resources needed by driver */
      			/* ie. clocks, io pins, power sources */
      			clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>,
					 <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
			clock-names = "extperiph1", "pllp_grtba";
			mclk = "extperiph1";

			reset-gpios = <&tegra_main_gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;
			pwdn-gpios = <&tegra_main_gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;

      			reg = <0x1a>;
      			devnode = "video0";
      			/* Physical dimensions of sensor */
      			physical_w = "1.948";
      			physical_h = "1.109";

      			avdd-reg = "vana";
      			iovdd-reg = "vif";
      			sensor_model ="imx290";
      			/* Define any required hw resources needed by driver */
      			/* ie. clocks, io pins, power sources */

      			/* Defines number of frames to be dropped by driver internally after applying */
      			/* sensor crop settings. Some sensors send corrupt frames after applying */
      			/* crop co-ordinates */
      			post_crop_frame_drop = "0";

      			/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
      			/* use_decibel_gain = "true"; */

      			/* if true, delay gain setting by one frame to be in sync with exposure */
      			delayed_gain = "true";

      			mode0 {/*mode IMX290_MODE_1920X1080_CROP_60FPS*/
				mclk_khz = "24000";
				num_lanes = "2";
				tegra_sinterface = "serial_e";
				discontinuous_clk = "yes";
				dpcm_enable = "false";
				cil_settletime = "0";

				dynamic_pixel_bit_depth = "12";
				csi_pixel_bit_depth = "12";
				mode_type = "bayer";
				pixel_phase = "rggb";
				pixel_t = "bayer_rggb";

				active_w = "1948";
				active_h = "1096";
				readout_orientation = "0";
				line_length = "2200";
				inherent_gain = "1";
				mclk_multiplier = "25";
				pix_clk_hz = "148500000";

				min_gain_val = "1"; /* dB */
				max_gain_val = "30"; /* dB */
				min_hdr_ratio = "1";
				max_hdr_ratio = "64";
				min_framerate = "3";
				max_framerate = "60";
				min_exp_time = "14.8";
				max_exp_time = "16650";
				embedded_metadata_height = "1";
			};

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					my_imx290_out1: endpoint {
						csi-port = <4>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_in1>;
					};
				};
			};
		};
	};

	i2c@c250000 {
		imx290_c@1a {
			status = "okay";
      			compatible = "nvidia,imx290";

      			/* Define any required hw resources needed by driver */
      			/* ie. clocks, io pins, power sources */
      			clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>,
					 <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
			clock-names = "extperiph1", "pllp_grtba";
			mclk = "extperiph1";

      			reset-gpios = <&tegra_main_gpio CAM1_RST_L GPIO_ACTIVE_HIGH>;
			pwdn-gpios = <&tegra_main_gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;

		      	reg = <0x1a>;
		      	devnode = "video1";
		      	/* Physical dimensions of sensor */
		      	physical_w = "1.948";
		      	physical_h = "1.109";

		      	avdd-reg = "vana";
		      	iovdd-reg = "vif";
		      	sensor_model ="imx290";
		      	/* Define any required hw resources needed by driver */
		      	/* ie. clocks, io pins, power sources */

		      	/* Defines number of frames to be dropped by driver internally after applying */
		      	/* sensor crop settings. Some sensors send corrupt frames after applying */
		      	/* crop co-ordinates */
		      	post_crop_frame_drop = "0";

		      	/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
		      	/* use_decibel_gain = "true"; */

		      	/* if true, delay gain setting by one frame to be in sync with exposure */
		      	delayed_gain = "true";

		      	mode0 {/*mode IMX290_MODE_1920X1080_CROP_60FPS*/
				mclk_khz = "24000";
				num_lanes = "2";
				tegra_sinterface = "serial_c";
				discontinuous_clk = "yes";
				dpcm_enable = "false";
				cil_settletime = "0";

				dynamic_pixel_bit_depth = "12";
				csi_pixel_bit_depth = "12";
				mode_type = "bayer";
				pixel_phase = "rggb";
				pixel_t = "bayer_rggb";

				active_w = "1948";
				active_h = "1096";
				readout_orientation = "0";
				line_length = "2200";
				inherent_gain = "1";
				mclk_multiplier = "25";
				pix_clk_hz = "148500000";

				min_gain_val = "1"; /* dB */
				max_gain_val = "30"; /* dB */
				min_hdr_ratio = "1";
				max_hdr_ratio = "64";
				min_framerate = "3";
				max_framerate = "60";
				min_exp_time = "14.8";
				max_exp_time = "16650";
				embedded_metadata_height = "1";
			};

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					my_imx290_out0: endpoint {
						csi-port = <2>;
						bus-width = <2>;
						remote-endpoint = <&my_csi_in0>;
					};
				};
			};
		};
	};

	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";

    		num_csi_lanes = <6>;
		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 {
			module0 {
				status = "okay";
				badge = "my_rear_imx290";
				position = "rear";
				orientation = "0";
				drivernode0 {
					status = "okay";
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx290 1-001a";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@c240000/imx290_e@1a";
				};
			};
      			module1 {
				status = "okay";
				badge = "my_front_imx290";
				position = "front";
				orientation = "0";
				drivernode0 {
					status = "okay";
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx290 2-001a";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@c250000/imx290_c@1a";
				};
			};
		};
	};
};

@ShaneCCC

I replaced module1 devname and Everything works fine.
Thanks