I'm trying to figure out what goes wrong when streaming from a camera connected to the MIPI interface of the imx8mp.
I'm able to stream raw12 video data through the ISP, but for some reason after several "start/stop streaming", it stops working.
I have two issues.
1. MIPI data keeps flowing and I can see that the interrupts occur on the mipi interface. But there is no data passed to the ISP? If i set the format to 1080p then after ~1080 frames a frame will dequeue a .
If i run 640x480, a frame will dequeue after 480 frames:
video10: VIDIOC_DQBUF: 00:17:03.610752 index=0, type=vid-cap, request_fd=0, flags=0x00002001, field=none, sequence=0, memory=mmap, bytesused=614400, offset/userptr=0x0, length=614400
So it is somehow related to the image size.
(see log below)
[ 1031.733958] mxc-mipi-csi2.0: Frame Start: 19
[ 1031.738230] mxc-mipi-csi2.0: status: 01000000
[ 1031.754893] mxc-mipi-csi2.0: Frame End: 19
[ 1031.758989] mxc-mipi-csi2.0: status: 00100000
[ 1031.767295] mxc-mipi-csi2.0: Frame Start: 20
[ 1031.771567] mxc-mipi-csi2.0: status: 01000000
[ 1031.788247] mxc-mipi-csi2.0: Frame End: 20
...
[ 1021.729297] videodev: v4l2_poll: video10: poll: 00000000 000000fb
[ 1021.733472] mxc-mipi-csi2.0: Frame Start: 424
...
[ 1023.604813] mxc-mipi-csi2.0: Frame Start: 480
[ 1023.609171] mxc-mipi-csi2.0: status: 01000000
[ 1023.614254] video10: VIDIOC_DQBUF: 00:17:03.610752 index=0, type=vid-cap, request_fd=0, flags=0x00002001, field=none, sequence=0, memory=mmap, bytesused=614400, offset/userptr=0x0, length=614400
[ 1023.631617] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000
[ 1023.635497] mxc-mipi-csi2.0: Frame End: 480
2. No mipi interrupts! Everything looks like it should on the MIPI interface, but sometimes when I start a stream, the mipi intializes and starts as usual, but nothing happens afterwards, no MIPI interrupts. I've measured the power consumption on the camera, but it seems to be running as expected.
[ 1978.522978] mxc-mipi-csi2.0: mipi_csis_s_stream: 1, state: 0x0
[ 1978.528854] mxc-mipi-csi2.0: fmt: 0x2008, 640 x 480
[ 1978.551171] mxc-mipi-csi2.0: --- mipi_csis_s_stream ---
[ 1978.556427] mxc-mipi-csi2.0: CSIS_VERSION[0]: 0x03060301
[ 1978.562452] mxc-mipi-csi2.0: CSIS_CMN_CTRL[4]: 0x00004905
[ 1978.568475] mxc-mipi-csi2.0: CSIS_CLK_CTRL[8]: 0x000f0000
[ 1978.574496] mxc-mipi-csi2.0: CSIS_INTMSK[10]: 0x0fffff1f
[ 1978.580602] mxc-mipi-csi2.0: CSIS_INTSRC[14]: 0x00000000
[ 1978.586708] mxc-mipi-csi2.0: CSIS_DPHYSTATUS[20]: 0x000000f1
[ 1978.592814] mxc-mipi-csi2.0: CSIS_DPHYCTRL[24]: 0x0d800007
[ 1978.598919] mxc-mipi-csi2.0: CSIS_DPHYBCTRL_L[30]: 0x000001f4
[ 1978.605024] mxc-mipi-csi2.0: CSIS_DPHYBCTRL_H[34]: 0x00000000
[ 1978.611132] mxc-mipi-csi2.0: CSIS_DPHYSCTRL_L[38]: 0x00000000
[ 1978.617238] mxc-mipi-csi2.0: CSIS_DPHYSCTRL_H[3c]: 0x00000000
[ 1978.623343] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH0[40]: 0x000000ac
[ 1978.629450] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH1[50]: 0x000008fd
[ 1978.635557] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH2[60]: 0x000008fe
[ 1978.641662] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH3[70]: 0x000008ff
[ 1978.647769] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH0[44]: 0x01e00280
[ 1978.653878] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH1[54]: 0x80008000
[ 1978.659987] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH2[64]: 0x80008000
[ 1978.666098] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH3[74]: 0x80008000
[ 1978.672214] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH0[48]: 0x00000000
[ 1978.678328] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH1[58]: 0x00000000
[ 1978.684435] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH2[68]: 0x00000000
[ 1978.690542] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH3[78]: 0x00000000
[ 1978.696650] mxc-mipi-csi2.0: --- mipi_csis_s_stream ---
[ 1978.701888] mxc-mipi-csi2.0: GPR_GASKET_0_CTRL[60]: 0x00000000
[ 1978.707995] mxc-mipi-csi2.0: GPR_GASKET_0_HSIZE[64]: 0x00000000
[ 1978.714131] mxc-mipi-csi2.0: GPR_GASKET_0_VSIZE[68]: 0x00000000
[ 1978.720824] enter wdr3_hw_init
Any help is much appreciated.