I’m trying to get a custom MIPI camera solution going using an OV2740, but I can’t get anything out of the ISP. My image sensor is configured for 1920x1080@10bit RAW, at 60 fps, 2 lanes, 400 MHz (800 Mbps) transfer rate. I’ve tested with 4 lanes at 200 MHz (400 Mbps) with the same problem. I’ve verified the correct number of lanes are outputting at the correct clock rate using an oscilloscope, so I know the PX30’s MIPI PHY should be receiving data, but it seems completely dead.
I tried using gstreamer:
gst-launch-1.0 rkisp device=/dev/video0 io-mode=4 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=60/1 ! kmssink
This produces this output:
[XCORE]:XCAM ERROR rkisp_device.cpp:74: atomisp device (/dev/video0) try subdev format failed
[XCORE]:XCAM ERROR v4l2_device.cpp:618: device(/dev/video0) get dma buf(0) failed
Caught SIGSEGV
exec gdb failed: No such file or directory
I tried testing it with v4l2src instead of rkisp:
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! video/x-raw,format=NV12,width=1920,height=1080 ! kmssink
As well as the qcamera demo and this v4l2-ctl command:
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080
,pixelformat=NV12 --stream-mmap=3 --stream-to=/root/raw.out --stream-count=1000
--stream-poll
In any case, I get this output, after enabling (and added) some logging messages:
[ 364.391006] rkisp1: waiting on params stream on event timeout
[ 364.391597] rkisp1 ff4a0000.rkisp1: can not get first iq setting in stream on
[b][ 364.392419] rkisp1: MIPI error: err2: 0x00010000[/b]
[ 364.394693] rockchip-mipi-dphy-rx ff2f0000.mipi-dphy-rx0: data rate hsfreq range set to 899 mbps
[ 364.395541] rockchip-mipi-dphy-rx ff2f0000.mipi-dphy-rx0: enabled 2 lanes for reception
[ 364.396334] ov2740 2-0030: __ov2740_start_stream() called
[ 364.396898] ov2740 2-0030: ov2740_set_ctrl() V4L2_CID_VBLANK called
[ 364.397504] ov2740 2-0030: ov2740_set_ctrl() V4L2_CID_VBLANK=8
[ 364.399508] ov2740 2-0030: ov2740_set_ctrl() V4L2_CID_EXPOSURE=1080
[ 364.401722] ov2740 2-0030: ov2740_set_ctrl() V4L2_CID_ANALOGUE_GAIN=16
[ 364.402412] ov2740 2-0030: ov2740_set_ctrl() V4L2_CID_TEST_PATTERN called
[ 364.403109] ov2740 2-0030: Disabling test pattern
[b]select timeout[/b]
[b][ 367.410019] rkisp1: waiting on event return error 0[/b]
[ 367.411561] rockchip-mipi-dphy-rx ff2f0000.mipi-dphy-rx0: disabled reception
[ 367.412254] ov2740 2-0030: __ov2740_stop_stream() called
[ 367.430933] ov2740 2-0030: ov2740_s_power() called
It doesn’t matter if I use /dev/video0 or /dev/video1 (main path or self path). I get the same errors.
What should I be looking at to fix this? I looked at Part1 and Part2 of the TRM, but there doesn’t appear to be any information about the MIPI D-PHY in it, so I don’t know what error code 0x00010000 represents.
I’m using an HTS of 1928 and a VTS of 1088, though the original sample code I received had perplexing HTS/VTS values of 1080 and 1125, respectively. It seems like if it were a timing parameter issue, the ISP would report that, and/or give me a garbled image.