Hi NV,
1,Using V4L2 API
2,1/30 probability, unable to get camera video stream
Stress test case:
step1: Open camera video stream
step2: Soft restart the system
step1 - step2
trace.log (47.1 MB)
28times_dmesg_dualOLC009_greenerror.log (77.2 KB)
. . .
R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023
Please help analyze or provide some debugging methods, thank you!
The error tell the PD CRC error. I would suspect could be the sensor output signal problem.
Thanks
Hi ShaneCCC,
I’ll test it after applying the patch, thank you!
Hi ShaneCCC,
Applied the patch you provided,
[0001-vi5-continue-captures-even-after-corr-errors.patch|attachment]
BUT ,the following problem has occurred many times:
reboot-kernelpanic.txt (426.3 KB)
Hi ShaneCCC,
Latest log file:
trace_0522.log (29.6 MB)
dmesg_0522.log (89.0 KB)
Hi future.wang,
Could you provide more information about your setup? What sensor are you using, what is your device tree configuration, format and resolution?
In the trace you shared there are several CHANSEL_NOMATCH errors. You can refer to this post for more information on how to interpret them, but they usually indicate a mismatch between the incoming and the expected resolution or format.
Hi carolina,
==Loop operation :
1,Using V4L2 API Open camera video stream(ioctl(camera_ctx.fd, VIDIOC_DQBUF, &bufferinfo),
and displayed via OpenCV API
2,reboot system
==GMSL camera module LC009D1-AT(MAX9295 + ISX031),YUV422-8bit,1920x1080.
miivii_max96724@6 {
1219 + compatible = "miivii,max96724";
1220 + /* I2C device address */
1221 + reg = <0x6>;
1222 +
1223 + /* V4L2 device node location */
1224 + devnode = "video2";
1225 +
1226 + sensor_model = "max96724";
1227 +
1228 + use_sensor_mode_id = "false";
1229 + mode0 {
1230 + mclk_khz = "24000";
1231 + num_lanes = "4";
1232 + tegra_sinterface = "serial_a";
1233 + phy_mode = "DPHY";
1234 + discontinuous_clk = "no";
1235 + dpcm_enable = "false";
1236 + cil_settletime = "0";
1237 + lane_polarity = "6";
1238 +
1239 + active_w = "1920";
1240 + active_h = "1080";
1241 + mode_type = "yuv";
1242 + pixel_phase = "uyvy";
1243 + csi_pixel_bit_depth = "16";
1244 + line_length = "4000";
1245 + inherent_gain = "1";
1246 + pix_clk_hz = "200000000";
1247 + serdes_pix_clk_hz = "350000000";
1248 +
1249 + gain_factor = "16";
1250 + framerate_factor = "1000000";
1251 + exposure_factor = "1000000";
1252 + min_gain_val = "16"; /* 1.00x */
1253 + max_gain_val = "356"; /* 22x */
1254 + step_gain_val = "1";
1255 + default_gain = "16"; /* 1.00x */
1256 + min_hdr_ratio = "1";
1257 + max_hdr_ratio = "1";
1258 + min_framerate = "2000000"; /* 2.0 fps */
1259 + max_framerate = "30000000"; /* 30.0 fps */
1260 + step_framerate = "1";
1261 + default_framerate = "30000000"; /* 30.0 fps */
1262 + min_exp_time = "13"; /* us */
1263 + max_exp_time = "683709"; /* us */
1264 + step_exp_time = "1";
1265 + default_exp_time = "2495"; /* us */
1266 +
1267 + embedded_metadata_height = "0";
1268 + };
”they usually indicate a mismatch between the incoming and the expected resolution or format.“
==If the resolution or format does not match, it should be impossible to obtain the video stream.
But now the probability of recurrence is 1/30,and i executed the following configuration:
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