Camera: ICC failed to reserve 232031 KBps

When recording images with a camera on a Jetson Orin NX we see the following errors in the Kernel log:

[  423.889281] bwmgr req failed for 8
[  423.889502] misc tegra_camera_ctrl: tegra_camera_isomgr_request: ICC failed to reserve 232031 KBps
[  423.889766] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 232031 KBps with isomgr

Those errors do not appear when running the same software on a Jetson Orin AGX.

Whith dynamic debug enabled for tegra_camera_platform.c we see the following messages:

[ 6673.040517] bwmgr API not supported
[ 6673.040527] misc tegra_camera_ctrl: tegra_camera_update_isobw:Set iso bw 232031 kbyteps at 0 KHz
[ 6673.040644] misc tegra_camera_ctrl: tegra_camera_isomgr_request++ bw=232031, lt=0
[ 6673.040793] bwmgr req failed for 8
[ 6673.040889] misc tegra_camera_ctrl: tegra_camera_isomgr_request: ICC failed to reserve 232031 KBps
[ 6673.041140] misc tegra_camera_ctrl: tegra_camera_update_isobw: failed to reserve 232031 KBps with isomgr

Can you explain what those log messages mean?

hello jonathan.schnitzler,

it looks like a failure to set bandwidth, and it’s returning ENOMEM error.
is it multi-cam use-case? may I also know what’s the data-rate of your camera?

Hello JerryChang,
we have two cameras connected, each with 4 lanes. When we get this error, only one camera was active.
In that case we configured the camera with a data rate of 2376 Mb/s/lane.

hello jonathan.schnitzler,

are you using Orin NX DevKit?
there’s known issue that only CAM1 slot able to support 4-lane camera.

Hello JerryChang,

are you using Orin NX DevKit?
there’s known issue that only CAM1 slot able to support 4-lane camera.

No we use a custom board that supports 4 lanes for both cameras.

may I also know which Jetpack release version you’re now working with. thanks

Of course. We use JetPack release 5.1.3.

hello jonathan.schnitzler,

AGX Orin and Orin NX has same ISP throughput.
could you please give it a try with below commands to boost all the VI/CSI/ISP clocks.
for instance,

sudo su
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/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/isp/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/isp/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate

BTW,
is this ICC failed message effect your real camera use-case?

Hello JerryChang,

after running the commands I still see the same issue.

is this ICC failed message effect your real camera use-case?

Maybe. As we don’t really know what this message means we can not judge about it currently.
Could you explain a bit what the message means and what implications this error has?

I’ve replied it in the beginning, comment #3.

Could you elaborate a bit what “it looks like a failure to set bandwidth, and it’s returning ENOMEM error” means?
Which bandwidth can not be set where?
What implications does this have? Will something not work anymore due to that?

hello jonathan.schnitzler,

let’s follow below formula to calculate your CSI data-rate.
for instance,
here’s an example to check CSI date rate, 4K(3840x2160),90-fps,10-bit.
CSI data-rate = 3840 * 2160 * 10 * 90 * 1.15 ~= 8.584 Gbps

you may check the Orin NX’s ISP clock, which is… 10111.2 Mhz
ISP throughput = 1011.2 Mhz * 2 (2 Pixels/clock) * 0.85 (translates 15% off) = 1720MPixels/Sec ~= 1.72 Gpps

please also note that,
here’re Gbps (Giga Bits Per Sec) and Gpps (Giga Pixel Per Sec).
you have to taking CSI data-rate 8.584 Gbps to divide with Raw10 into 858.4 MPixel/Sec, which is within ISP throughput.