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.