TX1 R28.2 camera issue

Hi everyone,

I use TX1 development board the BSP version is R28.2 the camera board is E3323(has two ov23850). When I capture two camera the kernel output error message “misc tegra_camera_ctrl: vi_v4l2_update_isobw: requested iso bw is larger than max”. And then I modify tegra210-jetson-cv-camera-modules.dtsi (hardware\nvidia\platform\t210\jetson\kernel-dts\jetson-platforms) file as blow:
tcp: tegra-camera-platform {
compatible = “nvidia, tegra-camera-platform”;
#if 0
num_csi_lanes = <2>;
max_lane_speed = <1500000>;
min_bits_per_pixel = <10>;
vi_peak_byte_per_pixel = <2>;
vi_bw_margin_pct = <25>;
max_pixel_rate = <408000>;
isp_peak_byte_per_pixel = <2>;
isp_bw_margin_pct = <25>;
#endif

build and burn tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb file to TX1 module, capture two camera the kernel output error message “tegra-i2c 7000c000.i2c: no acknowledge from address 0x36” or “tegra-vii2c 546c0000.i2c: no acknowledge from address 0x10”. What’s wrong with the kernel? How to fix it ? Thanks.

That could be your sensor HW or power sequence have problem to communicate with i2c interface.

no acknowledge from address 0x36

Hi ShaneCCC,

When I capture any one there is no error message output. When I capture two the error message output, I do not think HW or power sequence have problem to communicate with i2c interface. The error message output only when I capture two camera at same time.

How do you know if these sensor didn’t impact each others.

Hi ShaneCCC,

I use TX2 development board test they work well. And before I modify tegra210-jetson-cv-camera-modules.dtsi, there is no i2c on acknowledge error, and kernel output “misc tegra_camera_ctrl: vi_v4l2_update_isobw: requested iso bw is larger than max” error.

If they work well why do you modify it. That message should be harmless.

Before I modify it, I use v4l2-ctl capture two camera at same time, one of the camera don’t response for a while. The test script as below:

count=1
while true; do
    echo $count
    count=$((count + 1))
    ./v4l2-ctl -d /dev/videoN --set-fmt-video=width=5632,height=3168,pixelformat=RG10 --set-ctrl bypass_mode=0  --stream-mmap --stream-count=200
    sleep 2
done

Where /dev/videoN is /dev/video0 or /dev/video1.

The test script and v4l2-ctl place two folders like this video0_test folder place script(int this file the /dev/videoN is video0) and v4l2-ctl, and video1_test folder also place script(int this file the /dev/videoN is video1) and v4l2-ctl. Run the two script in both terminals and running for a while one of the camera don’t response and the kennel output “misc tegra_camera_ctrl: vi_v4l2_update_isobw: requested iso bw is larger than max” message, so I modify it.

Try to boost the vi/nvcsi clock to try. And does any timeout message from dmesg?

$ cd /sys/kernel/debug/bpmp/debug/clk
$ cat vi/rate
$ echo 1 > vi/state
$ echo 1 > vi/mrq_rate_locked
$ cat vi/max_rate > vi/rate

Replace vi with "nvcsi" to maximize clocks

Hi ShaneCCC,

I use TX1 and the filesystem don’t have /sys/kernel/debug/bpmp/debug/clk folder, and also no nvcsi folder in /sys/kernel/debug/

Try below for TX1

$ cd /sys/kernel/debug/clk
$ cat cbus/clk_rate
$ echo 1 > cbus/clk_state
$ cat cbus/clk_possible_rate
# Read manually the maximum value from above command and feed in the below command:
$ echo #### > cbus/clk_update_rate
$ cat cbus/clk_rate

Hi ShaneCCC,

Before I run the script the value as below:

cat cbus/clk_rate

217600000

cat cbus/clk_state

0

and after run one script the value as below:

cat cbus/clk_rate

793600000

cat cbus/clk_possible_rates

217600 307200 371200 435200 499200 550400 614400 678400 742400 793600 (kHz)

cat cbus/clk_state

1

So I think when capture one camera the cbus/clk_rate is maximum rate, no need modify manually.