Porting TX1 camera driver to kernel 4.4.15 - PXL_SOF syncpt timeout

Hi ShaneCCC,

I changed to 6 positions, it didn’t change anything regarding the error. I will post the output again:

root@tx2-sixcam:/home/nvidia# nvcamera-daemon 
NvPclSetHotplugCallback: ++++++++++++++++++++++
---- Imager: Calibration blob file handling supported in this build ----
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: g2_topright_P5V27F
NvPclHwPrintModuleDefinition -- Position: 5
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: g2 2-0011
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: 
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: g2_rear_P5V27E
NvPclHwPrintModuleDefinition -- Position: 4
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: g2 2-0010
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: 
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: g2_right_P5V27D
NvPclHwPrintModuleDefinition -- Position: 3
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: g2 6-0011
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: 
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: g2_top_P5V27B
NvPclHwPrintModuleDefinition -- Position: 1
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: g2 0-0011
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: 
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: g2_front_P5V27A
NvPclHwPrintModuleDefinition -- Position: 0
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: g2 0-0010
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: 
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: NvPclModule list[0]: g2_topright_P5V27F position5
NvPclModuleListInitialize: NvPclModule list[1]: g2_rear_P5V27E position4
NvPclModuleListInitialize: NvPclModule list[2]: g2_right_P5V27D position3
NvPclModuleListInitialize: NvPclModule list[3]: g2_top_P5V27B position1
NvPclModuleListInitialize: NvPclModule list[4]: g2_front_P5V27A position0
NvPclHwScanExternalCameras -- adding video5 to discover list
NvPclHwScanExternalCameras -- adding video4 to discover list
NvPclHwScanExternalCameras -- adding video3 to discover list
NvPclHwScanExternalCameras -- adding video2 to discover list
NvPclHwScanExternalCameras -- adding video1 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwScanExternalCameras -- adding video5 to discover list
NvPclHwScanExternalCameras -- adding video4 to discover list
NvPclHwScanExternalCameras -- adding video3 to discover list
NvPclHwScanExternalCameras -- adding video2 to discover list
NvPclHwScanExternalCameras -- adding video1 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
initialize: /dev/video0
initialize: /dev/video1
initialize: /dev/video2
initialize: /dev/video3
initialize: /dev/video4
initialize: /dev/video5
NvPclHwScanExternalCameras -- adding video5 to discover list
NvPclHwScanExternalCameras -- adding video4 to discover list
NvPclHwScanExternalCameras -- adding video3 to discover list
NvPclHwScanExternalCameras -- adding video2 to discover list
NvPclHwScanExternalCameras -- adding video1 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
initialize: /dev/video0
initialize: /dev/video1
initialize: /dev/video2
initialize: /dev/video3
initialize: /dev/video4
initialize: /dev/video5
getHotplugMonitor: Getting hotplug monitor instance
 initializeHotplug++
 hotPlugfunc ++ 
 addWatch: Watch added wd='1'
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 5 match at index[0]
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f98c4eac0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f98c4eb50
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f98c4ebe0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f98c4ec70
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f98c4ed00
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f98c4ed90
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: cannot stat file [/Calib/camera_override.isp]
LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: cannot stat file [/data/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: cannot stat file [/opt/nvidia/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: cannot stat file [/var/nvidia/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: cannot stat file [/data/nvcam/camera_overrides.isp]
LoadOverridesFile: looking for override file [/data/nvcam/settings/g2_topright_P5V27F.isp] 6/16
CheckOverridesPermissions: cannot stat file [/data/nvcam/settings/g2_topright_P5V27F.isp]
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/g2_topright_P5V27F.isp] 7/16
CheckOverridesPermissions: cannot stat file [/opt/nvidia/nvcam/settings/g2_topright_P5V27F.isp]
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/g2_topright_P5V27F.isp] 8/16
CheckOverridesPermissions: cannot stat file [/var/nvidia/nvcam/settings/g2_topright_P5V27F.isp]
LoadOverridesFile: looking for override file [(null)] 9/16
LoadOverridesFile: looking for override file [(null)] 10/16
LoadOverridesFile: looking for override file [(null)] 11/16
LoadOverridesFile: looking for override file [(null)] 12/16
LoadOverridesFile: looking for override file [(null)] 13/16
LoadOverridesFile: looking for override file [(null)] 14/16
LoadOverridesFile: looking for override file [(null)] 15/16
LoadOverridesFile: looking for override file [(null)] 16/16
LoadOverridesFile: No override file found.
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/nvcam/settings/g2_topright_P5V27F.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/g2_topright_P5V27F.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/g2_topright_P5V27F.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_lens)
NvPclCreateDriver: Found a Driver name match (v4l2_lens)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
initialize: g2 2-0011
(NvOdmDevice) Error ModuleNotPresent: V4L2Device not available (in dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function findDevice(), line 224)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function initialize(), line 54)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 91)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclDriver_V4L2_Focuser_Stub_Close: Invalid NULL input pPclDriver
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f98c4ec70
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f98c4ed00
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f98c4ed90
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f98c4eac0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f98c4eb50
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f98c4ebe0
NvPclStateControllerOpen: Failed ImagerGUID 5. (error 0xA000E)
NvPclStateControllerClose: Module g2_topright_P5V27F closed
NvPclOpen: PCL Open Failed. Error: 0xf
NvPclClose: ++++++++++++++++++++++
NvPclClose: ----------------------
NvPclOpen: ----------------------
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 559)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 730)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 272)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 435)
Segmentation fault (core dumped)

Another idea: We’re not using a mclk, since the sensor hast it’s own clock. Therefore we haven’t defined a clock, could this be the problem?

Hi schwartz
nvcamera-daemon crash should relative to below error. That could be the sensor not implement well. Have you pass v4l2-compliance?

(NvOdmDevice) Error ModuleNotPresent: V4L2Device not available (in dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function findDevice(), line 224)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function initialize(), line 54)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 91)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclDriver_V4L2_Focuser_Stub_Close: Invalid NULL input pPclDriver

Hi ShaneCCC,

it might very well be that the sensor is not implemented well (although the same driver worked with the TX1 kernel). I would like to know what exactly the PclDriver is looking for.
v4l2-compliance runs without errors, I have attached it’s output.

nvidia@tx2-sixcam:~$ v4l2-compliance 
Driver Info:
	Driver name   : tegra-video
	Card type     : vi-output, galileo2 1-0010
	Bus info      : platform:15700000.vi:0
	Driver version: 4.4.15
	Capabilities  : 0x84200001
		Video Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps   : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format

Compliance test for device /dev/video0 (not using libv4l2):

Required ioctls:
	test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
	test second video open: OK
	test VIDIOC_QUERYCAP: OK
	test VIDIOC_G/S_PRIORITY: OK

Debug ioctls:
	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
	test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
	test VIDIOC_ENUMAUDIO: OK (Not Supported)
	test VIDIOC_G/S/ENUMINPUT: OK
	test VIDIOC_G/S_AUDIO: OK (Not Supported)
	Inputs: 1 Audio Inputs: 0 Tuners: 0

Output ioctls:
	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
	Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
	test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
	test VIDIOC_G/S_EDID: OK (Not Supported)

Test input 0:

	Control ioctls:
		test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
		test VIDIOC_QUERYCTRL: OK
		test VIDIOC_G/S_CTRL: OK
		test VIDIOC_G/S/TRY_EXT_CTRLS: OK
		test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
		test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
		Standard Controls: 1 Private Controls: 13

	Format ioctls:
		test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
		test VIDIOC_G/S_PARM: OK (Not Supported)
		test VIDIOC_G_FBUF: OK (Not Supported)
		test VIDIOC_G_FMT: OK
		test VIDIOC_TRY_FMT: OK
		test VIDIOC_S_FMT: OK
		test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
		test Cropping: OK (Not Supported)
		test Composing: OK (Not Supported)
		test Scaling: OK (Not Supported)

	Codec ioctls:
		test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
		test VIDIOC_G_ENC_INDEX: OK (Not Supported)
		test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

	Buffer ioctls:
		test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
		test VIDIOC_EXPBUF: OK

Test input 0:


Total: 42, Succeeded: 42, Failed: 0, Warnings: 0

Best regards!

Secondly, I changed our sensor mode to include the embedded metadata into the actual resolution, so when using 1080p, exactly 1080 lines are transferred. The same error persisted.

So while it may be a problem to AdamTo (and maybe ourselves at a later point), it’s not the point why nvcamera-daemon is crashing or we’re getting the Unhandled context fault/PXL_SOF syncpt timeout errors.

Best regards!

Hi,
I’m also porting a driver from TX1 to TX2 and am having the same “Unhandled context fault/PXL_SOF syncpt timeout errors”. I based my device tree mostly on …camera-e3326-a00.dtsi and removed the definitions for other cameras, after enabling more debug on the kernel I was able to check that the configuration was getting successfully to the nvcsi driver, however I get the PXL_SOF error:

/yavta /dev/video0 -c10 -n1 -s1920x1080 -fSBGGR10 -Fov.raw

[  333.164483] nvcsi 150c0000.nvcsi: csi port:0
[  333.164753] nvcsi 150c0000.nvcsi: csi4_start_streaming ports index=0, lanes=2
[  333.164764] nvcsi 150c0000.nvcsi: csi4_stream_init
[  333.164780] nvcsi 150c0000.nvcsi: csi4_stream_config
[  333.164795] nvcsi 150c0000.nvcsi: csi4_stream_config (0) read VC0_DPCM_CTRL = 00000000
[  333.164804] nvcsi 150c0000.nvcsi: csi4_phy_config
[  333.164815] nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000000
[  333.175569] arm-smmu 12000000.iommu: Unhandled context fault: iova=0x00000000, fsynr=0x11, cb=18, sid=4(0x4 - VI), pgd=0, pud=0, pmd=0, pte=0
[  334.168216] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  334.185491] arm-smmu 12000000.iommu: Unhandled context fault: iova=0x00000000, fsynr=0x11, cb=18, sid=4(0x4 - VI), pgd=0, pud=0, pmd=0, pte=0
[  335.172157] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  335.195387] arm-smmu 12000000.iommu: Unhandled context fault: iova=0x00000000, fsynr=0x11, cb=18, sid=4(0x4 - VI), pgd=0, pud=0, pmd=0, pte=0
[  336.176159] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  336.205305] arm-smmu 12000000.iommu: Unhandled context fault: iova=0x00000000, fsynr=0x11, cb=18, sid=4(0x4 - VI), pgd=0, pud=0, pmd=0, pte=0
[  337.192146] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[  337.213141] imx219 1-0010: imx219_s_stream
[  337.218426] nvcsi 150c0000.nvcsi: csi4_stop_streaming ports index=0, lanes=2
[  337.218433] nvcsi 150c0000.nvcsi: csi4_phy_config
[  337.218442] nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000002
[  337.218449] nvcsi 150c0000.nvcsi: csi4_stream_check_status
[  337.218459] nvcsi 150c0000.nvcsi: csi4_cil_check_status 269

I am able to start a pipeline with nvcamerasrc, however I get only green screen. Here’s my output:

vailable Sensor modes : 
3280 x 2464 FR=21.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1640 x 1232 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
820 x 616 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...

NvCameraSrc: Trying To Set Default Camera Resolution. Selected 640x480 FrameRate = 30.000000 ...

Setting pipeline to PLAYING ...
New clock: GstSystemClock
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeMode: Target mode Id(4): Resolution 820x616
setActiveBufferMemory: 2
INPUT: Width 820 Height 616 pixelformat RG10
writeFrameRate:	INPUT frameLength:1643, frameRate:30.000000
writeGain:	INPUT gainCtrl:100 analogGain:1.000000
writeExposure:	INPUT coarseTime:1639, expTime:0.033243
updateOutputSettings:	OUTPUT frameLength:1643, frameRate:30.008488
updateOutputSettings:	OUTPUT analogGain:1.000000
updateOutputSettings:	OUTPUT coarseTime:1639, expTime:0.033243
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeFrameRate:	INPUT frameLength:1643, frameRate:30.000000
writeGain:	INPUT gainCtrl:100 analogGain:1.000100
writeExposure:	INPUT coarseTime:1639, expTime:0.033243
updateOutputSettings:	OUTPUT frameLength:1643, frameRate:30.008488
updateOutputSettings:	OUTPUT analogGain:1.000000
updateOutputSettings:	OUTPUT coarseTime:1639, expTime:0.033243
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeFrameRate:	INPUT frameLength:1643, frameRate:30.000000
writeGain:	INPUT gainCtrl:100 analogGain:1.000100
writeExposure:	INPUT coarseTime:1639, expTime:0.033243
updateOutputSettings:	OUTPUT frameLength:1643, frameRate:30.008488
updateOutputSettings:	OUTPUT analogGain:1.000000
updateOutputSettings:	OUTPUT coarseTime:1639, expTime:0.033243
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeFrameRate:	INPUT frameLength:1643, frameRate:30.000000
writeGain:	INPUT gainCtrl:100 analogGain:1.000100
writeExposure:	INPUT coarseTime:1639, expTime:0.033243
updateOutputSettings:	OUTPUT frameLength:1643, frameRate:30.008488
updateOutputSettings:	OUTPUT analogGain:1.000000
updateOutputSettings:	OUTPUT coarseTime:1639, expTime:0.033243
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
SCF: Error Timeout:  (propagating from src/services/autocontrol/NvCameraIspDriver.cpp, function programIsp(), line 1199)
SCF: Error Timeout:  (propagating from src/services/autocontrol/NvCameraIspDriver.cpp, function programIsp(), line 1241)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceCore.cpp, function programIsp(), line 321)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceCore.cpp, function doCSItoISPCapture(), line 446)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceCore.cpp, function issueCapture(), line 344)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1190)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1042)
SCF: Error InvalidState: Force-unlocking a buffer w/o fences
 (in src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 344)
SCF: Error Timeout:  (propagating from src/common/Utils.cpp, function workerThread(), line 113)
SCF: Error Timeout: Worker thread CaptureScheduler frameStart failed (in src/common/Utils.cpp, function workerThread(), line 130)
SCF: Error InvalidState: Force-unlocking a buffer w/o fences
 (in src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 344)
Error: waitCsiFrameStart timeout guid 0
VI Stream Id = 2 Virtual Channel = 0
************VI Debug Registers**********
VI_CSIMUX_STAT_FRAME_8	 = 0x00000000
VI_CSIMUX_FRAME_STATUS_0	 = 0x00000000
VI_CFG_INTERRUPT_STATUS_0	 = 0x00000000
VI_ISPBUFA_ERROR_0	 = 0x00000000
VI_FMLITE_ERROR_0	 = 0x00000000
VI_NOTIFY_ERROR_0	 = 0x00000000
*****************************************
CSI Stream Id = 2 Brick Id = 1
************CSI Debug Registers**********
NVCSI_PHY_0_CILA_INTR_STATUS_CILA_0	 = 0x00000000
NVCSI_PHY_0_CILB_INTR_STATUS_CILB_0	 = 0x00000000
NVCSI_STREAM_0_INTR_STATUS_0	 = 0x00000000
NVCSI_STREAM_0_INTR_STATUS_0	 = 0x00000000
NVCSI_STREAM_0_ERR_INTR_STATUS_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC0_0	 = 0x9f80bf00
NVCSI_STREAM_0_ERROR_STATUS2VI_VC1_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC2_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC3_0	 = 0x00000000
*****************************************
Error: waitCsiFrameStart Something went wrong with waiting on frame start
SCF: Error Timeout: ISP port 0 timed out! (in src/services/capture/CaptureServiceDeviceIsp.cpp, function waitIspFrameEnd(), line 663)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceDeviceIsp.cpp, function waitIspFrameEnd(), line 704)
SCF: Error Timeout:  (propagating from src/common/Utils.cpp, function workerThread(), line 113)
SCF: Error Timeout: Worker thread IspHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 130)
SCF: Error InvalidState: Capture Scheduler not running (in src/services/capture/CaptureServiceDevice.cpp, function addNewItemToSchedule(), line 864)
SCF: Error InvalidState:  (propagating from src/services/capture/CaptureService.cpp, function addRequest(), line 688)
SCF: Error InvalidState:  (propagating from src/components/stages/SensorISPCaptureStage.cpp, function doHandleRequest(), line 130)

My media controller device topology seems to point that the devices are properly defined:

root@tegra-ubuntu:/home/nvidia/yavta# media-ctl -d /dev/media0 -p
Media controller API version 0.1.0

Media device information
------------------------
driver          tegra-vi4
model           NVIDIA Tegra Video Input Device
serial          
bus info        
hw revision     0x3
driver version  0.0.0

Device topology
- entity 1: vi-output, imx219 1-0010 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
	pad0: Sink
		<- "150c0000.nvcsi-0":1 [ENABLED]

- entity 2: 150c0000.nvcsi-0 (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
	pad0: Sink
		<- "imx219 1-0010":0 [ENABLED]
	pad1: Source
		-> "vi-output, imx219 1-0010":0 [ENABLED]

- entity 3: imx219 1-0010 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
	pad0: Source
		[fmt:SRGGB10/820x616 field:none]
		-> "150c0000.nvcsi-0":0 [ENABLED]

Let me know if you find more information about this issue. Regards!

Hi,

ShaneCCC:
The PXL_SOF syncpt timeout still exists, but we made a little progress.
Despite the errors, we are transfering some image data. The weird part is, that the images start with a block of zeros and after that, actual image information follows. The smaller the resolution, the bigger is the blank before the data. The attached hdmi screen is still flashing white a few times while capturing.
1080p gives only a small bit of image data, 4k is roughly half an image and 8k only has a small black bar above the image. The pixelclock stays the same in all 3 modes.

I’ve seen trailing zeros in pictures, e.g. when buffers overrun and the rest of the images would be just filled with zeros, but how could an image with leading zeros come into existence?

I’ll attach the output of v4l2-ctl capturing a picture, maybe it’s useful.

nvidia@tx2-sixcam:~$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=7680,height=4320,pixelformat=RG8 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-skip=0 --stream-to=4320.raw --verbose
VIDIOC_QUERYCAP: ok
VIDIOC_S_EXT_CTRLS: ok
VIDIOC_G_FMT: ok
VIDIOC_ENUM_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture:
	Width/Height      : 7680/4320
	Pixel Format      : 'RGGB'
	Field             : None
	Bytes per Line    : 7680
	Size Image        : 33177600
	Colorspace        : sRGB
	Transfer Function : Default
	YCbCr Encoding    : Default
	Quantization      : Default
	Flags             : 
VIDIOC_REQBUFS: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_STREAMON: ok
	Index    : 0
	Type     : Video Capture
	Flags    : mapped, done
	Field    : None
	Sequence : 0
	Length   : 33177600
	Bytesused: 33177600
	Timestamp: 18446743798832423804.18446744073442916759s (Monotonic, End-of-Frame)

VIDIOC_STREAMOFF: ok

Best regards!

Hello All,

Could you share whether you got any solution. I see similar issues.

[47.087299] tegra-vi4 15700000.vi: master error
[47.091886] tegra-vi4 15700000.vi: master error

[47.396529] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:108861, lanes:300000

[ 57.759624] host1x 13e10000.host1x: cdma_handle_timeout: timeout: 21 (15600000.isp_nvcamera-daemon_0) clientid 1, HW thresh 0, done 2

It looks to me mipi clock issue. Any hints to move forward?

Thanks,
Hakim

Hi hj-ca!

I shared my experiences in the following post:

https://devtalk.nvidia.com/default/topic/1010558/jetson-tx2/v4l2-drivers-for-tegra-x2-v4l2-and-nvcamerasrc/

Hi Schwartz - any progress after this? I am exactly stuck here (hdmi screen flashing white,
1080p gives only a small bit of image data, 4k is roughly half an image)

Regards,
Rejeesh

hello guys,

there’s a known issue with VI-mode, we’re investigating the root cause.

could you please enable embedded_metadata_height of DT,
please confirm your sensor driver with gstreamer pipeline, thanks

for example:

nvgstcapture-1.0

or

gst-launch-1.0 nvcamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvoverlaysink -ev

Hi Jerry,

Thank you for the response.

I tried the patches, but did not see any difference in behaviour.
I assume that “0001-ARM64-DT-imx185-Add-gain-delay-support.patch” & “0007-drivers-media-i2c-update-imx185-driver.patch” are related to IMX185 only and has nothing to do with other sensors (anyway I applied them).
Is it so? Or is there something to adapt from these patches to other dtbs and drivers?

Please note that I tested using V4L2 app, not gstreamer pipeline.

One observation:
For 3280x2464 resolution, we expect VIDIOC_QUERYBUF to allocate 329624622 = 16242688 bytes (3296 considering the 64-bit alignment). This was the case with TX1.
However, in TX2, 16400384 bytes are allocated, which is 154KB more than what is expected. Is this OK? BTW, there is no such issue in resolutions like 1640x1232.

I am attaching the output image I am getting for 3280x2464 & 1640x1232.

Also, just to recap, below is the dmesg error I am getting:

arm-smmu 12000000.iommu: Unhandled context fault: iova=0x00000000, fsynr=0x210011, cb=18, sid=4(0x4 - VI), pgd=0, pud=0, pmd=0, pte=0
tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11

Regards,
Rejeesh


hello Rejeesh_QueST,

there’s VI-mode issue on r27.1, which means the v4l2 access might failed.
please update your sensor device tree to enable embedded_metadata_height and then test your sensor driver with vi-bypass path.
thanks

Hi JerryChang,

Ok, I shall test with gstreamer.

Just to know, what is vi-bypass path?

Regards,
Rejeesh

hello Rejeesh_QueST,

vi-bypass mode, NV library program VI/CSI and uses V4L2 only for sensor control via user space.
which means launching camera with nvgstcapture-1.0 application or going through gstreamer pipeline.
thanks

Hi Jerry,

I tried the using the vi-bypass path but I get the following error from nvcamerasrc logging:

SCF: Error Timeout:  (propagating from src/api/Session.cpp, function capture(), line 750)
SCF: Error Timeout: ISP port 0 timed out! (in src/services/capture/CaptureServiceDeviceIsp.cpp, function waitIspFrameEnd(), line 663)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceDeviceIsp.cpp, function waitIspFrameEnd(), line 704)
SCF: Error Timeout:  (propagating from src/common/Utils.cpp, function workerThread(), line 113)
SCF: Error Timeout: Worker thread IspHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 130)
Error: waitCsiFrameStart timeout guid 2
VI Stream Id = 4 Virtual Channel = 0
************VI Debug Registers**********
VI_CSIMUX_STAT_FRAME_16	 = 0x00000000
VI_CSIMUX_FRAME_STATUS_0	 = 0x00000000
VI_CFG_INTERRUPT_STATUS_0	 = 0x00000000
VI_ISPBUFA_ERROR_0	 = 0x00000000
VI_FMLITE_ERROR_0	 = 0x00000000
VI_NOTIFY_ERROR_0	 = 0x00000000
*****************************************
CSI Stream Id = 4 Brick Id = 2
************CSI Debug Registers**********
NVCSI_PHY_0_CILA_INTR_STATUS_CILA_0	 = 0x00000000
NVCSI_PHY_0_CILB_INTR_STATUS_CILB_0	 = 0x00000000
NVCSI_STREAM_0_INTR_STATUS_0	 = 0x00000000
NVCSI_STREAM_0_INTR_STATUS_0	 = 0x00000000
NVCSI_STREAM_0_ERR_INTR_STATUS_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC0_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC1_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC2_0	 = 0x00000000
NVCSI_STREAM_0_ERROR_STATUS2VI_VC3_0	 = 0x00000000
*****************************************
<b>Error: waitCsiFrameStart Something went wrong with waiting on frame start</b>

There seems to be related to the frame start still (just as when using the v4l2-cntl path). I have been able to capture using a sensor with 2 lanes, however I’m unable to capture with a sensor that uses 4 lanes. Is there any working dtb example that uses 4 lanes? does the known issue perhaps is related to the number of lanes used?

hello josejich,

i saw you had some update from this topic, [url]https://devtalk.nvidia.com/default/topic/1010558/[/url]
may i have your confirmation to help us narrow down the issue?

what’s the status of below?
v4l2-ctl on TX1/ TX2
gst-launch on TX1/ TX2
4-lane configuration on TX1/ TX2

Hi Jerry,

Thanks for your reply! I have been able to capture with the sensor imx219 on both the TX1 and the TX2. That sensor is currently configured to use 2 CSI lanes (I have 6 cameras attached), and there are some resolutions that still give me the timeout issue (PXL_SOF syncpt timeout!) for that particular sensor, this using any v4l2 capturing tool ( yavta or v4l2-ctrl), one example is the resolution 1920x1080. With nvcamerasrc that resolution works properly.

Now, I am currently porting the driver for the IMX377 that is an only 4-lane sensor, here is a snipped of the one mode on the device tree:

imx377_c@1a {
    compatible = "nvidia,imx377";
    devnode = "video1";
    reg = <0x1a>;

    physical_w = "4.152";
    physical_h = "3.064";
    avdd-reg = "vana";
    iovdd-reg = "vif";
    sensor_model ="imx377";
    post_crop_frame_drop = "0";

    use_decibel_gain = "no";
    use_sensor_mode_id = "true";

    mode0 {
     mclk_khz = "24000";
     num_lanes = "4";
     tegra_sinterface = "serial_c";
     discontinuous_clk = "yes";
     dpcm_enable = "false";
     cil_settletime = "0";

mode_type = "bayer";
     pixel_phase = "rggb";
     pixel_t = "bayer_rggb";

     active_w = "4104";
     active_h = "3062";
     readout_orientation = "0";
     line_length = "6000";
     inherent_gain = "1";
     mclk_multiplier = "25";
     pix_clk_hz = "576000000";

     min_gain_val = "1.0";
     max_gain_val = "22";
     min_hdr_ratio = "1";
     max_hdr_ratio = "64";
     min_framerate = "4.2264";
     max_framerate = "30";
     min_exp_time = "15";
     max_exp_time = "236610";
     embedded_metadata_height = "1";
    };

    ports {
     #address-cells = <1>;
     #size-cells = <0>;
     port@0 {
      reg = <0>;
      liimx377_out1: endpoint {
       csi-port = <2>;
       bus-width = <4>;
       remote-endpoint = <&liimx377_csi_in1>;
      };
     }
  }

With this sensor I consistenly get the message “PXL_SOF syncpt timeout! err = -11” when trying to capture with v4l2-ctl and get a red frame when trying to capture with nvcamerasrc . So to be more specific about your questions:

  • v4l2-ctl on TX1 for the imx377: The folowing command works properly

    ./yavta /dev/video1 -c10 -n1 -s4104x3062 -fSRGGB10 -Fov.raw

  • v4l2-ctl on TX2 for the imx377: The following command fails with the timeout

    ./yavta /dev/video1 -c10 -n1 -s4104x3062 -fSRGGB10 -Fov.raw

    [ 2196.314416] nvcsi 150c0000.nvcsi: csi4_stream_init
    [ 2196.314425] nvcsi 150c0000.nvcsi: csi4_stream_config
    [ 2196.314433] nvcsi 150c0000.nvcsi: csi4_stream_config (2) read VC0_DPCM_CTRL = 00000000
    [ 2196.314436] nvcsi 150c0000.nvcsi: csi4_phy_config
    [ 2196.314441] nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000000
    [ 2197.319241] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
    [ 2198.323227] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
    [ 2199.327258] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
    [ 2200.423271] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
    
  • gst-launch on TX1 for the imx377: The following pipeline captures properly
    gst-launch-1.0 nvcamerasrc fpsRange="30.0 30.0" sensor-id=1 ! 'video/x-raw(memory:NVMM), width=(int)4104, height=(int)3062, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv flip-method=2 ! 'video/x-raw(memory:NVMM), format=(string)I420' ! nvoverlaysink -e
    
  • gst-launch on TX2 for the imx377: The pipeline above fails with the following log from nvcamerasrc:
    SCF: Error Timeout:  (propagating from src/api/Session.cpp, function capture(), line 750)
    SCF: Error Timeout: ISP port 0 timed out! (in src/services/capture/CaptureServiceDeviceIsp.cpp, function waitIspFrameEnd(), line 663)
    SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceDeviceIsp.cpp, function waitIspFrameEnd(), line 704)
    SCF: Error Timeout:  (propagating from src/common/Utils.cpp, function workerThread(), line 113)
    SCF: Error Timeout: Worker thread IspHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 130)
    Error: waitCsiFrameStart timeout guid 2
    VI Stream Id = 4 Virtual Channel = 0
    ************VI Debug Registers**********
    VI_CSIMUX_STAT_FRAME_16	 = 0x00000000
    VI_CSIMUX_FRAME_STATUS_0	 = 0x00000000
    VI_CFG_INTERRUPT_STATUS_0	 = 0x00000000
    VI_ISPBUFA_ERROR_0	 = 0x00000000
    VI_FMLITE_ERROR_0	 = 0x00000000
    VI_NOTIFY_ERROR_0	 = 0x00000000
    *****************************************
    CSI Stream Id = 4 Brick Id = 2
    ************CSI Debug Registers**********
    NVCSI_PHY_0_CILA_INTR_STATUS_CILA_0	 = 0x00000000
    NVCSI_PHY_0_CILB_INTR_STATUS_CILB_0	 = 0x00000000
    NVCSI_STREAM_0_INTR_STATUS_0	 = 0x00000000
    NVCSI_STREAM_0_INTR_STATUS_0	 = 0x00000000
    NVCSI_STREAM_0_ERR_INTR_STATUS_0	 = 0x00000000
    NVCSI_STREAM_0_ERROR_STATUS2VI_VC0_0	 = 0x00000000
    NVCSI_STREAM_0_ERROR_STATUS2VI_VC1_0	 = 0x00000000
    NVCSI_STREAM_0_ERROR_STATUS2VI_VC2_0	 = 0x00000000
    NVCSI_STREAM_0_ERROR_STATUS2VI_VC3_0	 = 0x00000000
    *****************************************
    Error: waitCsiFrameStart Something went wrong with waiting on frame start
    
  • 4-lanes on TX1 for the imx377: That is the setting used for the TX1 and is able to capture.
  • 4-lanes on TX2 for the imx377: Currently only have been able to capture with 2-lanes on the TX2 and the sensor imx219. Imx377 uses 4 lanes so I'm unable to check if it works with 2 lanes since the sensor doesn't has that setting, 4 lanes is not working.

I started to look for posible differences on the mipi calibration settings, I have the following results for the TX1:

TX1
MIPI_CAL_CTRL                   0x2a000000
CIL_MIPI_CAL_STATUS             0x00c168a0
CIL_MIPI_CAL_STATUS_2           0x00000000
CILA_MIPI_CAL_CONFIG            0x00000000
CILB_MIPI_CAL_CONFIG            0x00000000
CILC_MIPI_CAL_CONFIG            0x00200000
CILD_MIPI_CAL_CONFIG            0x00200000
CILE_MIPI_CAL_CONFIG            0x00000000
CILF_MIPI_CAL_CONFIG            0x00000000
DSIA_MIPI_CAL_CONFIG            0x00000000
DSIB_MIPI_CAL_CONFIG            0x00000000
DSIC_MIPI_CAL_CONFIG            0x00000000
DSID_MIPI_CAL_CONFIG            0x00000000
MIPI_BIAS_PAD_CFG0              0x00000000
MIPI_BIAS_PAD_CFG1              0x00000000
MIPI_BIAS_PAD_CFG2              0x00000000
DSIA_MIPI_CAL_CONFIG_2          0x00000000
DSIB_MIPI_CAL_CONFIG_2          0x00000000
DSIC_MIPI_CAL_CONFIG_2          0x00000000
DSID_MIPI_CAL_CONFIG_2          0x00000000

And for the TX2:

MIPI_CAL_CTRL = 0x2a000010
MIPI_CAL_AUTOCAL_CTRL0 = 0xffffffff
CIL_MIPI_CAL_STATUS = 0x00c18760
CIL_MIPI_CAL_STATUS_2 = 0x00000000
CILA_MIPI_CAL_CONFIG = 0x00000000
CILB_MIPI_CAL_CONFIG = 0x00000000
CILC_MIPI_CAL_CONFIG = 0x00200000
CILD_MIPI_CAL_CONFIG = 0x00200000
CILE_MIPI_CAL_CONFIG = 0x00000000
CILF_MIPI_CAL_CONFIG = 0x00000000
DSIA_MIPI_CAL_CONFIG = 0x00000000
DSIB_MIPI_CAL_CONFIG = 0x00000000
DSIC_MIPI_CAL_CONFIG = 0x00000000
DSID_MIPI_CAL_CONFIG = 0x00000000
MIPI_BIAS_PAD_CFG0 = 0x00000000
MIPI_BIAS_PAD_CFG1 = 0x00000000
MIPI_BIAS_PAD_CFG2 = 0x00000000
DSIA_MIPI_CAL_CONFIG_2 = 0x00000000
DSIB_MIPI_CAL_CONFIG_2 = 0x00000000
DSIC_MIPI_CAL_CONFIG_2 = 0x00000000
DSID_MIPI_CAL_CONFIG_2 = 0x00000000

The register MIPI_CAL_CTRL has an extra flag related to autocalibration; MIPI_CAL_AUTOCAL_EN according to the TX1 datasheet, any idea why the change on that setting for the TX2?

Any pointers on how to resolve this issue will be gladly appreciated.

Thanks again,
JJ

hi all,

attach the patches that fix the VI-mode issue for r27.1.
please notice that if your sensor has embedded metadata, you should enable it from the DT.
also, please ensure the v4l2-ctl pixel format settings was correct with your sensor mode.
or you could simply using the default settings to dump the camera raw files as below. thanks

v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1 --stream-to=test.raw

r27.1_v4l2-ctl_patches.tar.gz (10.2 KB)

I got around my problem by setting the clock. It’s worth verifying that your clock source is mapped correctly to the TX2.

Hi all,

JerryChang: I applied the patches, unfortunately the same error is still present. Black border in the upper part of the image, white flashing of the screen while taking the pictures.

aie93: Could you elaborate what you did exactly please?

Best regards!