We are using the tri_streaming_imx185 driver with the third camera disabled.
diff --git a/kernel-dts/t18x-common-modules/tegra186-camera-li-mipi-adpt-a00.dtsi b/kernel-dts/t18x-common-modules/tegra186-camera-li-mipi-adpt-a00.dtsi
index 88dd50c..3814953 100644
--- a/kernel-dts/t18x-common-modules/tegra186-camera-li-mipi-adpt-a00.dtsi
+++ b/kernel-dts/t18x-common-modules/tegra186-camera-li-mipi-adpt-a00.dtsi
@@ -41,6 +41,7 @@
port@2 {
reg = <2>;
liimx185_vi_in2: endpoint {
+ status = "disabled";
csi-port = <0>;
bus-width = <4>;
remote-endpoint = <&liimx185_csi_out2>;
@@ -96,6 +97,7 @@
};
};
channel@2 {
+ status = "disabled";
reg = <2>;
ports {
#address-cells = <1>;
@@ -780,6 +782,7 @@
};
i2c@2 {
imx185_e@1a {
+ status = "disabled";
compatible = "nvidia,imx185";
reg = <0x1a>;
@@ -1185,6 +1188,7 @@
};
};
module0 {
+ status = "disabled";
badge = "imx185_bottom_liimx185";
position = "bottom";
orientation = "1";
I looked over the 6_streaming_imx185 driver and didn’t see anything special in the device tree. There were a few differences in the kernel patch (especially the mode tables). But according to dmesg imx185_s_stream isn’t being called, making me think it’s a device tree setting somewhere.
Here is the dmesg log with DEBUG enabled in the driver when attempting the Argus sync. Notice the stream is never started, meaning the mode tables have not been sent yet.
[ 159.830426] imx185 30-001a: imx185_power_on: power on
[ 159.837541] imx185 30-001a: imx185_power_off: power off
[ 159.843823] imx185 31-001a: imx185_power_on: power on
[ 159.849109] imx185 31-001a: imx185_power_off: power off
[ 159.855928] imx185 30-001a: imx185_power_on: power on
[ 159.861417] imx185 30-001a: imx185_power_off: power off
[ 159.867564] imx185 31-001a: imx185_power_on: power on
[ 159.873049] imx185 31-001a: imx185_power_off: power off
[ 159.899754] imx185 31-001a: imx185_power_on: power on
[ 159.905007] imx185 31-001a: imx185_power_off: power off
[ 159.911023] imx185 30-001a: imx185_power_on: power on
[ 159.916290] imx185 30-001a: imx185_power_off: power off
[ 159.922314] imx185 30-001a: imx185_power_on: power on
[ 159.927770] imx185 30-001a: imx185_power_off: power off
[ 159.933709] imx185 30-001a: imx185_power_on: power on
[ 159.939033] imx185 30-001a: imx185_power_off: power off
[ 159.953750] imx185 31-001a: imx185_power_on: power on
[ 159.959003] imx185 31-001a: imx185_power_off: power off
[ 159.965177] imx185 31-001a: imx185_power_on: power on
[ 159.970532] imx185 31-001a: imx185_power_off: power off
[ 159.976537] imx185 31-001a: imx185_power_on: power on
[ 159.981847] imx185 31-001a: imx185_power_off: power off
Here’s the dmesg log from that v4l2-ctl command above using video0 (set to master). IMX185_10bit.raw has 12441600 bytes and xxd shows it isn’t all zeroes, so I believe that was successful.
[ 464.952670] imx185 30-001a: imx185_power_on: power on
[ 464.983006] imx185 30-001a: imx185_s_stream++ enable 1
[ 465.506335] imx185 30-001a: imx185_s_stream++ enable 0
[ 465.513896] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[ 465.533998] imx185 30-001a: imx185_power_off: power off
Running it on video1 (set to slave) still produces IMX185_10bit.raw with 12441600, but every byte is 0x00. Here’s the dmesg showing the timeouts.
[ 640.590766] imx185 31-001a: imx185_power_on: power on
[ 640.622891] imx185 31-001a: imx185_s_stream++ enable 1
[ 641.919230] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 642.923307] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 643.927375] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 644.931419] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 645.935482] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 646.939552] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 647.943607] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!
[ 647.949843] imx185 31-001a: imx185_s_stream++ enable 0
[ 647.958127] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[ 647.991429] imx185 31-001a: imx185_power_off: power off
As for my comments in #9 I am using a gst-launch pipeline to stream the video to VLC media player. Tell VLC to “Open Network Stream” and use ‘rtp://@:PORT’
# Define INDEX, HOST, PORT above
FPS=30
STREAM_WIDTH=1920
STREAM_HEIGHT=1080
gst-launch-1.0 -v \
nvcamerasrc auto-exposure=2 do-timestamp=true sensor_id=$INDEX fpsRange="$FPS $FPS" intent=3 \
! "video/x-raw(memory:NVMM), width=(int)$STREAM_WIDTH, height=(int)$STREAM_HEIGHT, format=(string)I420, framerate=(fraction)$FPS/1" \
! omxh264enc \
! "video/x-h264, stream-format=(string)byte-stream" \
! h264parse \
! mpegtsmux \
! rtpmp2tpay \
! udpsink host=$HOST port=$PORT sync=false async=false