Hello all.
- I have custom board with ISL79987 MIPI-CSI chip and Xavier AGXi with L4T 35.4.1.
- ISL79987 connected phisically to Xavier AGXi through x2 lanes CSI.
- I’ve ported driver for ISL79987 from kernel 5.18 and adopted it for kernel 5.10 with some changes, but it still does not use tegra_camera_platform approach.
- I’ve created my own dtb and sucessfully got /dev/video0 in the system. Device tree right now uses x1 lane configuration for CSI.
- Normally, I can’t capture video. I have next log with it:
[ 219.196688] Regmap_read 87h
[ 219.197194] ISL79987 1 channel
[ 219.200495] tegra-camrtc-capture-vi tegra-capture-vi: subdev isl7998x 2-0044 bound
[ 219.204781] Found ISL799x
[ 219.248536] ISL79987 probe has been started
[ 235.096783] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 235.097051] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 235.129849] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 398, flags: 0, err_data 32
[ 235.169793] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 399, flags: 0, err_data 512
[ 235.209421] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 400, flags: 0, err_data 512
[ 235.249724] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 401, flags: 0, err_data 512
[ 244.323311] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 244.323689] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 290.264369] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 290.264772] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 290.289877] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072
[ 290.290621] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 2, flags: 0, err_data 512
[ 290.331193] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 3, flags: 0, err_data 512
[ 290.370424] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 4, flags: 0, err_data 512
[ 292.602688] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 292.603116] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 346.768191] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 346.768390] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 346.810216] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072
[ 346.818333] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 2, flags: 0, err_data 512
[ 346.857945] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 3, flags: 0, err_data 512
[ 346.894077] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 4, flags: 0, err_data 512
[ 348.614882] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 348.615132] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
- I can start capture video after enable debug messages as it described this Jetson/l4t/Camera BringUp - eLinux.org. But for start capturing enough boost clock only for VI and CSI:
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
After boost of clock for VI and CSI video start capturing:
$ v4l2-ctl --set-fmt-video=width=720,height=576,pixelformat=UYVY --stream-mmap --stream-count=100 -d /dev/video0
<<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<
But sometime it could be not stable:
$ v4l2-ctl --set-fmt-video=width=720,height=576,pixelformat=UYVY --stream-mmap --stream-count=100 -d /dev/video0
<<<<< 0.70 fps
<<<< 2.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<< 7.75 fps
<<<<<<<<<<<<<<<<<<<<<<<<< 11.20 fps
<<<<<<<<<<<<<<<<<<<<<<<<< 13.50 fps
<<<<<<<<<<<<<<<<
But even I have capturing I see next messages in log:
[ 441.074188] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 441.074563] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 494.779434] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 494.779777] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
[ 498.836990] misc tegra_camera_ctrl: tegra_camera_isomgr_request: failed to reserve 0 KBps
[ 498.837265] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 0 KBps with isomgr
I have a couple a question:
- What could be a rootcause for this behavior?
- Should be driver ported for tegra_camera_platform?
Thank you.
tegra194-csi-isl79987.zip (2.0 KB)