Image sensor resolution error in driver ported to JetPack 4.3

I have ported a custom image sensor driver from JetPack 3.3 to JetPack 4.3 and i’m able to capture with v4l2-ctl in one of the two resolutions which the sensor supports, namely 2448x2048pix. However, HD-resolution (1920x1080pix) does not work and fails with the trace logs shown below. I have tried boosting the vi/csi clocks and disabling ECC but with no luck. Are there any other things i can try, as the sensor still works fine in both modes when using JetPack 3.3?

Tracelog when trying to capture in HD-resolution:

#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
     kworker/1:2-8399  [001] ....  1227.644187: rtos_queue_peek_from_isr_failed: tstamp:38639512200 queue:0x0b4b4500
     kworker/1:2-8399  [001] ....  1227.644203: rtcpu_start: tstamp:38639519920
     kworker/1:2-8399  [001] ....  1227.644212: rtos_queue_send_from_isr_failed: tstamp:38639542240 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.644219: rtos_queue_send_from_isr_failed: tstamp:38639542345 queue:0x0b4aad68
     kworker/1:2-8399  [001] ....  1227.644224: rtos_queue_send_from_isr_failed: tstamp:38639542449 queue:0x0b4ac998
     kworker/1:2-8399  [001] ....  1227.644231: rtos_queue_send_from_isr_failed: tstamp:38639542561 queue:0x0b4ae518
     kworker/1:2-8399  [001] ....  1227.644239: rtos_queue_send_from_isr_failed: tstamp:38639542663 queue:0x0b4af2d8
     kworker/1:2-8399  [001] ....  1227.644246: rtos_queue_send_from_isr_failed: tstamp:38639542764 queue:0x0b4b0098
     kworker/1:2-8399  [001] ....  1227.644254: rtos_queue_send_from_isr_failed: tstamp:38639542865 queue:0x0b4b0e58
     kworker/1:2-8399  [001] ....  1227.644381: rtos_queue_send_from_isr_failed: tstamp:38639542966 queue:0x0b4b1c18
     kworker/1:2-8399  [001] ....  1227.644395: rtos_queue_send_failed: tstamp:38639543409 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.644402: rtos_queue_send_from_isr_failed: tstamp:38639551164 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.644408: rtos_queue_send_from_isr_failed: tstamp:38639551285 queue:0x0b4aad68
     kworker/1:2-8399  [001] ....  1227.644414: rtos_queue_send_from_isr_failed: tstamp:38639551388 queue:0x0b4ac998
     kworker/1:2-8399  [001] ....  1227.644420: rtos_queue_send_from_isr_failed: tstamp:38639551490 queue:0x0b4ae518
     kworker/1:2-8399  [001] ....  1227.644426: rtos_queue_send_from_isr_failed: tstamp:38639551592 queue:0x0b4af2d8
     kworker/1:2-8399  [001] ....  1227.644433: rtos_queue_send_from_isr_failed: tstamp:38639551694 queue:0x0b4b0098
     kworker/1:2-8399  [001] ....  1227.644440: rtos_queue_send_from_isr_failed: tstamp:38639551795 queue:0x0b4b0e58
     kworker/1:2-8399  [001] ....  1227.644446: rtos_queue_send_from_isr_failed: tstamp:38639551896 queue:0x0b4b1c18
     kworker/1:2-8399  [001] ....  1227.644453: rtos_queue_send_failed: tstamp:38639552779 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.644462: rtcpu_vinotify_event: tstamp:38639616047 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:38639615672 data:0x00000001
     kworker/1:2-8399  [001] ....  1227.700209: rtcpu_vinotify_event: tstamp:38640754636 tag:CHANSEL_PXL_SOF channel:0x00 frame:0 vi_tstamp:38640753926 data:0x00000001
     kworker/1:2-8399  [001] ....  1227.700223: rtcpu_vinotify_event: tstamp:38640754793 tag:ATOMP_FS channel:0x00 frame:0 vi_tstamp:38640753932 data:0x00000000
     kworker/1:2-8399  [001] ....  1227.700231: rtcpu_vinotify_event: tstamp:38640754906 tag:CHANSEL_FAULT channel:0x00 frame:0 vi_tstamp:38640754234 data:0x00000200
     kworker/1:2-8399  [001] ....  1227.700240: rtcpu_vinotify_event: tstamp:38640755689 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:0 vi_tstamp:38640755040 data:0x08000000
     kworker/1:2-8399  [001] ....  1227.700247: rtcpu_vinotify_event: tstamp:38640755795 tag:CHANSEL_FAULT_FE channel:0x01 frame:0 vi_tstamp:38640755064 data:0x00000001
     kworker/1:2-8399  [001] ....  1227.700256: rtcpu_vinotify_event: tstamp:38640755931 tag:ATOMP_FE channel:0x00 frame:0 vi_tstamp:38640755067 data:0x00000000
     kworker/1:2-8399  [001] ....  1227.812231: rtos_queue_peek_from_isr_failed: tstamp:38644512530 queue:0x0b4b4500
     kworker/1:2-8399  [001] ....  1227.924217: rtos_queue_send_from_isr_failed: tstamp:38647639822 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924234: rtos_queue_send_from_isr_failed: tstamp:38647640000 queue:0x0b4aad68
     kworker/1:2-8399  [001] ....  1227.924241: rtos_queue_send_from_isr_failed: tstamp:38647640175 queue:0x0b4ac998
     kworker/1:2-8399  [001] ....  1227.924249: rtos_queue_send_from_isr_failed: tstamp:38647640350 queue:0x0b4ae518
     kworker/1:2-8399  [001] ....  1227.924256: rtos_queue_send_from_isr_failed: tstamp:38647640539 queue:0x0b4af2d8
     kworker/1:2-8399  [001] ....  1227.924262: rtos_queue_send_from_isr_failed: tstamp:38647640713 queue:0x0b4b0098
     kworker/1:2-8399  [001] ....  1227.924268: rtos_queue_send_from_isr_failed: tstamp:38647640887 queue:0x0b4b0e58
     kworker/1:2-8399  [001] ....  1227.924275: rtos_queue_send_from_isr_failed: tstamp:38647641059 queue:0x0b4b1c18
     kworker/1:2-8399  [001] ....  1227.924285: rtos_queue_send_failed: tstamp:38647641940 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924292: rtos_queue_send_from_isr_failed: tstamp:38647646023 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924299: rtos_queue_send_from_isr_failed: tstamp:38647646198 queue:0x0b4aad68
     kworker/1:2-8399  [001] ....  1227.924435: rtos_queue_send_from_isr_failed: tstamp:38647646373 queue:0x0b4ac998
     kworker/1:2-8399  [001] ....  1227.924442: rtos_queue_send_from_isr_failed: tstamp:38647646548 queue:0x0b4ae518
     kworker/1:2-8399  [001] ....  1227.924447: rtos_queue_send_from_isr_failed: tstamp:38647646720 queue:0x0b4af2d8
     kworker/1:2-8399  [001] ....  1227.924452: rtos_queue_send_from_isr_failed: tstamp:38647646897 queue:0x0b4b0098
     kworker/1:2-8399  [001] ....  1227.924457: rtos_queue_send_from_isr_failed: tstamp:38647647069 queue:0x0b4b0e58
     kworker/1:2-8399  [001] ....  1227.924462: rtos_queue_send_from_isr_failed: tstamp:38647647243 queue:0x0b4b1c18
     kworker/1:2-8399  [001] ....  1227.924468: rtos_queue_send_failed: tstamp:38647648007 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924473: rtos_queue_send_from_isr_failed: tstamp:38647654054 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924479: rtos_queue_send_from_isr_failed: tstamp:38647654228 queue:0x0b4aad68
     kworker/1:2-8399  [001] ....  1227.924484: rtos_queue_send_from_isr_failed: tstamp:38647654410 queue:0x0b4ac998
     kworker/1:2-8399  [001] ....  1227.924490: rtos_queue_send_from_isr_failed: tstamp:38647654586 queue:0x0b4ae518
     kworker/1:2-8399  [001] ....  1227.924495: rtos_queue_send_from_isr_failed: tstamp:38647654760 queue:0x0b4af2d8
     kworker/1:2-8399  [001] ....  1227.924500: rtos_queue_send_from_isr_failed: tstamp:38647654933 queue:0x0b4b0098
     kworker/1:2-8399  [001] ....  1227.924506: rtos_queue_send_from_isr_failed: tstamp:38647655107 queue:0x0b4b0e58
     kworker/1:2-8399  [001] ....  1227.924511: rtos_queue_send_from_isr_failed: tstamp:38647655281 queue:0x0b4b1c18
     kworker/1:2-8399  [001] ....  1227.924517: rtos_queue_send_failed: tstamp:38647655990 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924522: rtos_queue_send_from_isr_failed: tstamp:38647658742 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924528: rtos_queue_send_from_isr_failed: tstamp:38647658917 queue:0x0b4aad68
     kworker/1:2-8399  [001] ....  1227.924533: rtos_queue_send_from_isr_failed: tstamp:38647659091 queue:0x0b4ac998
     kworker/1:2-8399  [001] ....  1227.924538: rtos_queue_send_from_isr_failed: tstamp:38647659264 queue:0x0b4ae518
     kworker/1:2-8399  [001] ....  1227.924543: rtos_queue_send_from_isr_failed: tstamp:38647659438 queue:0x0b4af2d8
     kworker/1:2-8399  [001] ....  1227.924548: rtos_queue_send_from_isr_failed: tstamp:38647659612 queue:0x0b4b0098
     kworker/1:2-8399  [001] ....  1227.924554: rtos_queue_send_from_isr_failed: tstamp:38647659784 queue:0x0b4b0e58
     kworker/1:2-8399  [001] ....  1227.924559: rtos_queue_send_from_isr_failed: tstamp:38647659959 queue:0x0b4b1c18
     kworker/1:2-8399  [001] ....  1227.924565: rtos_queue_send_failed: tstamp:38647661875 queue:0x0b4a7258
     kworker/1:2-8399  [001] ....  1227.924573: rtcpu_vinotify_event: tstamp:38648254810 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:38648254358 data:0x00000001
     kworker/1:2-8399  [001] ....  1227.980171: rtcpu_vinotify_event: tstamp:38649505116 tag:CHANSEL_PXL_SOF channel:0x00 frame:0 vi_tstamp:38649504367 data:0x00000001
     kworker/1:2-8399  [001] ....  1227.980183: rtcpu_vinotify_event: tstamp:38649505363 tag:ATOMP_FS channel:0x00 frame:0 vi_tstamp:38649504372 data:0x00000000
     kworker/1:2-8399  [001] ....  1227.980191: rtcpu_vinotify_event: tstamp:38649505548 tag:CHANSEL_FAULT channel:0x00 frame:0 vi_tstamp:38649504674 data:0x00000200
     kworker/1:2-8399  [001] ....  1227.980198: rtcpu_vinotify_event: tstamp:38649506400 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:0 vi_tstamp:38649505716 data:0x08000000
     kworker/1:2-8399  [001] ....  1227.980205: rtcpu_vinotify_event: tstamp:38649506606 tag:CHANSEL_FAULT_FE channel:0x01 frame:0 vi_tstamp:38649505717 data:0x00000001
     kworker/1:2-8399  [001] ....  1227.980212: rtcpu_vinotify_event: tstamp:38649506815 tag:ATOMP_FE channel:0x00 frame:0 vi_tstamp:38649505720 data:0x00000000
     kworker/1:2-8399  [001] ....  1227.980224: rtos_queue_peek_from_isr_failed: tstamp:38649512558 queue:0x0b4b4500

I managed to solve the issue. The “use_sensor_mode_id” parameter in the .dtsi file was set to ‘true’. Setting it to ‘false’ allowed me to capture in both modes via V4L2.

From the documentation:
use_sensor_mode_id = “A Boolean, default value false. If true, the user mode driver bypasses the default mode selection logic and uses the TEGRA_CAMERA_CID_SENSOR_MODE_ID control to select a specific sensor mode. If false, it uses default mode selection logic, which selects a mode based on resolution, color format, and frame rate.”

1 Like