Hello,
We have been working on the bring up of an AR0820 version 1.0 device driver in JetPack 4.4, with support for two cameras. We are currently able to dequeue buffers with both AR0820 through V4L2 directly (v4l2-ctl commands), however running a gst-launch command using the nvarguscamerasrc element seems to be just stuck or frozen, enabling the debugging log (found below) we are getting the following errors:
nvidia@nvidia-desktop:~$ sudo su
root@nvidia-desktop:/home/nvidia# export enableCamPclLogs=5
root@nvidia-desktop:/home/nvidia# export enableCamScfLogs=5
root@nvidia-desktop:/home/nvidia# sudo killall nvargus-daemon
root@nvidia-desktop:/home/nvidia# sudo nvargus-daemon
=== NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections...=== gst-launch-1.0[7108]: Connection established (7F948C81D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
=== gst-launch-1.0[7108]: CameraProvider initialized (0x7f90bdb590)LSC: LSC surface is not based on full res!
(NvCapture) Error BadParameter: Invalid NULL parameter (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_t19x.c, function NvCaptureConfigEmbeddedSurfaceSetup(), line 942)
(NvCapture) Error BadParameter: (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_t19x.c, function NvCaptureConfigSetOutputFormatT19x(), line 492)
(NvCapture) Error BadParameter: (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureRequestSetAttribute(), line 1821)
SCF: Error BadParameter: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function startCaptureInternal(), line 680)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureRecord.cpp, function doCSItoMemCapture(), line 517)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureRecord.cpp, function issueCapture(), line 454)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1293)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1124)
SCF: Error Timeout: (propagating from src/api/Buffer.cpp, function waitForUnlock(), line 637)
SCF: Error Timeout: (propagating from src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 358)
SCF: Error BadParameter: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
SCF: Error BadParameter: Worker thread CaptureScheduler frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
SCF: Error Timeout: (propagating from src/services/capture/CaptureServiceEvent.cpp, function wait(), line 59)
Error: Camera HwEvents wait, this may indicate a hardware timeout occured,abort current/incoming cc
In the past these kind of errors would have been fixed by checking the definition in the “tegra-camera-platform” node in the device tree typically. However we are not sure what else could be missing or badly defined. Could you provide some insight on this aspect?. Below is the current definitions we have in the device tree (decompiled from the file system):
tegra-camera-platform {
isp_bw_margin_pct = <0x19>;
compatible = "nvidia, tegra-camera-platform";
max_pixel_rate = <0xb71b0>;
num_csi_lanes = <0x8>;
vi_peak_byte_per_pixel = <0x2>;
max_lane_speed = <0x16e360>;
phandle = <0x18e>;
vi_bw_margin_pct = <0x19>;
linux,phandle = <0x18e>;
min_bits_per_pixel = <0xa>;
isp_peak_byte_per_pixel = <0x5>;
modules {
module0 {
badge = "d3_front_ar0820";
status = "okay";
phandle = <0xdc>;
position = "front";
linux,phandle = <0xdc>;
orientation = [31 00];
drivernode0 {
devname = "ar0820 40-0010";
pcl_id = "v4l2_sensor";
status = "okay";
proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@77/i2c@0/max9296@48/link@0/max9295@40/link@0/ar0820@10";
phandle = <0x18f>;
linux,phandle = <0x18f>;
};
};
module1 {
badge = "d3_rear_ar0820";
status = "okay";
phandle = <0xe2>;
position = "rear";
linux,phandle = <0xe2>;
orientation = [31 00];
drivernode0 {
devname = "ar0820 42-0010";
pcl_id = "v4l2_sensor";
status = "okay";
proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@77/i2c@1/max9296@48/link@0/max9295@40/link@0/ar0820@10";
phandle = <0x190>;
linux,phandle = <0x190>;
};
};
};
};
We have commited so far with the hypothesis that this issue is at device tree level but feel free to point any other information or tips about what could be causing this issue.
Regards,