Hi,
We have developed OV10635 camera driver for TX2, the driver works ok on L4T 32.1 (JetPack 4.2)
Now we have ported the driver to L4T 32.2.1 (JetPack 4.2.2), carefully following the recommendations in the documentation. The driver probes ok, mounts the device to /dev/video0 but does not stream:
We tested with:
a) v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1
b) DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x raw,format=UYVY,width=1280,height=800’ ! xvimagesink
VIDIOC_DQBUF: failed: Input/output error
- Trying to debug with dmesg we got the following output:
nvidia@nvidia-desktop:~$ dmesg
[ 149.446033] ov10635 2-0031: Power on
[ 149.453511] ov10635 2-0031: Power off
[ 149.460931] ov10635 2-0031: Power on
[ 149.468134] ov10635 2-0031: Setting format
[ 149.468151] ov10635 2-0031: Setting format
[ 149.476027] ov10635 2-0031: Setting stream to 1
[ 149.679097] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 149.685509] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 149.899283] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 149.905739] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 150.119276] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 150.125755] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 150.339276] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 150.345745] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 150.559275] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 150.565753] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 150.779328] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 150.785800] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 150.796686] ov10635 2-0031: Setting stream to 0
[ 150.826088] ov10635 2-0031: Power off
- Trying to debug with kernel trace, the streaming seems to start with the following errors, which means it does not receive buffers:
nvidia@nvidia-desktop:~$ sudo cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 555/555 #P:4
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
kworker/5:2-4762 [005] .... 59.242119: rtos_queue_peek_from_isr_failed: tstamp:2222730175 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 59.354099: rtos_queue_peek_from_isr_failed: tstamp:2227730183 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 59.522136: rtos_queue_peek_from_isr_failed: tstamp:2232730190 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 59.690097: rtos_queue_peek_from_isr_failed: tstamp:2237730196 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 59.858094: rtos_queue_peek_from_isr_failed: tstamp:2242730202 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.026101: rtos_queue_peek_from_isr_failed: tstamp:2247730197 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.194092: rtos_queue_peek_from_isr_failed: tstamp:2252730216 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.362103: rtos_queue_peek_from_isr_failed: tstamp:2257730212 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.474133: rtos_queue_peek_from_isr_failed: tstamp:2262730231 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.642124: rtos_queue_peek_from_isr_failed: tstamp:2267730228 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.810098: rtos_queue_peek_from_isr_failed: tstamp:2272730243 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 60.978098: rtos_queue_peek_from_isr_failed: tstamp:2277730250 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 61.146131: rtos_queue_peek_from_isr_failed: tstamp:2282730247 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 61.314094: rtos_queue_peek_from_isr_failed: tstamp:2287730253 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 61.482182: rtos_queue_peek_from_isr_failed: tstamp:2292730259 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 61.594107: rtos_queue_peek_from_isr_failed: tstamp:2297730267 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 61.762093: rtos_queue_peek_from_isr_failed: tstamp:2302730284 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 61.930131: rtos_queue_peek_from_isr_failed: tstamp:2307730279 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 62.098109: rtos_queue_peek_from_isr_failed: tstamp:2312730323 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 62.266116: rtos_queue_peek_from_isr_failed: tstamp:2317730294 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 62.434098: rtos_queue_peek_from_isr_failed: tstamp:2322730308 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 62.602111: rtos_queue_peek_from_isr_failed: tstamp:2327730306 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 62.714118: rtos_queue_peek_from_isr_failed: tstamp:2332730324 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 62.882097: rtos_queue_peek_from_isr_failed: tstamp:2337730331 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 63.050098: rtos_queue_peek_from_isr_failed: tstamp:2342730328 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 63.218102: rtos_queue_peek_from_isr_failed: tstamp:2347730334 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 63.386095: rtos_queue_peek_from_isr_failed: tstamp:2352730340 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 63.554096: rtos_queue_peek_from_isr_failed: tstamp:2357730346 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 63.722094: rtos_queue_peek_from_isr_failed: tstamp:2362730366 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 63.834102: rtos_queue_peek_from_isr_failed: tstamp:2367730360 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 64.002097: rtos_queue_peek_from_isr_failed: tstamp:2372730369 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 64.114110: rtos_queue_peek_from_isr_failed: tstamp:2375417619 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 68.762133: rtos_queue_peek_from_isr_failed: tstamp:2520262081 queue:0x0b4b4500
kworker/5:2-4762 [005] .... 68.762138: rtcpu_start: tstamp:2520263181
kworker/5:2-4762 [005] .... 68.762140: rtos_queue_send_from_isr_failed: tstamp:2520271508 queue:0x0b4a7258
kworker/5:2-4762 [005] .... 68.762141: rtos_queue_send_from_isr_failed: tstamp:2520271614 queue:0x0b4aad68
kworker/5:2-4762 [005] .... 68.762141: rtos_queue_send_from_isr_failed: tstamp:2520271722 queue:0x0b4ac998
kworker/5:2-4762 [005] .... 68.762142: rtos_queue_send_from_isr_failed: tstamp:2520271828 queue:0x0b4ae518
kworker/5:2-4762 [005] .... 68.762142: rtos_queue_send_from_isr_failed: tstamp:2520271933 queue:0x0b4af2d8
kworker/5:2-4762 [005] .... 68.762143: rtos_queue_send_from_isr_failed: tstamp:2520272038 queue:0x0b4b0098
kworker/5:2-4762 [005] .... 68.762144: rtos_queue_send_from_isr_failed: tstamp:2520272143 queue:0x0b4b0e58
kworker/5:2-4762 [005] .... 68.762144: rtos_queue_send_from_isr_failed: tstamp:2520272248 queue:0x0b4b1c18
kworker/5:2-4762 [005] .... 68.762146: rtos_queue_send_failed: tstamp:2520272713 queue:0x0b4a7258
kworker/5:2-4762 [005] .... 68.762146: rtos_queue_send_from_isr_failed: tstamp:2520277763 queue:0x0b4a7258
kworker/5:2-4762 [005] .... 68.762147: rtos_queue_send_from_isr_failed: tstamp:2520277869 queue:0x0b4aad68
kworker/5:2-4762 [005] .... 68.762148: rtos_queue_send_from_isr_failed: tstamp:2520277975 queue:0x0b4ac998
kworker/5:2-4762 [005] .... 68.762148: rtos_queue_send_from_isr_failed: tstamp:2520278081 queue:0x0b4ae518
kworker/5:2-4762 [005] .... 68.762149: rtos_queue_send_from_isr_failed: tstamp:2520278186 queue:0x0b4af2d8
kworker/5:2-4762 [005] .... 68.762150: rtos_queue_send_from_isr_failed: tstamp:2520278291 queue:0x0b4b0098
kworker/5:2-4762 [005] .... 68.762150: rtos_queue_send_from_isr_failed: tstamp:2520278405 queue:0x0b4b0e58
kworker/5:2-4762 [005] .... 68.762151: rtos_queue_send_from_isr_failed: tstamp:2520278511 queue:0x0b4b1c18
Did something change on the last release that we must notice?
Our device tree for the camera has the following configuration for the mode, are we missing something important?:
mode0 {
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
vc_id = "0";
discontinuous_clk = "yes";
dpcm_enable = "false";
cil_settletime = "0";
phy_mode = "DPHY";
active_w = "1280";
active_h = "800";
pixel_t = "uyvy";
readout_orientation = "0";
line_length = "2560";
inherent_gain = "1";
mclk_multiplier = "25";
pix_clk_hz = "170000000";
serdes_pix_clk_hz = "833333333";
min_gain_val = "1.0";
max_gain_val = "16.0";
min_hdr_ratio = "1";
max_hdr_ratio = "64";
min_framerate = "1.462526";
max_framerate = "30";
min_exp_time = "13";
max_exp_time = "683709";
embedded_metadata_height = "0";
};