tx2 camera hardware downscale issue

Hello
I am developing a kernel driver for the ov491 isp product.
One issue arises when developing ov491.
ov491 isp supports downscale and puts its functionality into the kernel.
Hardware downscale using i2c command and streaming. But it does not work.
I do not know what to do. In my opinion, after i2c command, I thought it would work if I set-fmt and set width and height and byteperline.

default image size is 1824x941 .
1 line is emb line.

it’s my v4l2-ctl command line.
[normal]

v4l2-ctl --set-fmt-video=width=1824,height=941,pixelformat=yuyv,bytesperline=3648 --stream-mmap --stream-count=100 -d /dev/video0 --stream-to=ov491.raw

[downscale]

v4l2-ctl --set-fmt-video=width=912,height=472,pixelformat=yuyv,bytesperline=1824 --stream-mmap --stream-count=100 -d /dev/video0 --stream-to=ov491.raw

and dmesg

[154017.441253] tegra-vi4 15700000.vi: emb data count :0x1C5 gain long: 0x24C shot : 0x3C5 exposure long :0x27 shot: 0x12F

[154017.473927] tegra-vi4 15700000.vi: Status: 2 channel:00 frame:3672

[154017.480340] tegra-vi4 15700000.vi: timestamp sof 154028901350624 eof 154028934008256 data 0x000000a0

[154017.490527] tegra-vi4 15700000.vi: capture_id 441 stream 0 vchan 0

[154018.448224] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout! err = -11

[154018.448236] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11

[154018.448269] tegra-vi4 15700000.vi: emb data count :0x0 gain long: 0x0 shot : 0x0 exposure long :0x0 shot: 0x0

[154019.468242] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!

and debug

kworker/4:0-13793 [004] ...1 155221.774276: rtos_queue_peek_from_isr_failed: tstamp:4851037023176 queue:0x0b4a3c58
 kworker/4:0-13793 [004] ...1 155221.774280: rtcpu_start: tstamp:4851037024087
 kworker/4:0-13793 [004] ...1 155221.774282: rtcpu_vinotify_handle_msg: tstamp:4851037056428 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:2018978802 data:0x00000001
 kworker/4:0-13793 [004] ...1 155221.822286: rtcpu_vinotify_handle_msg: tstamp:4851038799469 tag:CSIMUX_FRAME channel:0x00 frame:13938 vi_tstamp:2020721847 data:0x000000a0
 kworker/4:0-13793 [004] ...1 155221.822287: rtcpu_vinotify_handle_msg: tstamp:4851039840700 tag:CSIMUX_FRAME channel:0x00 frame:13938 vi_tstamp:2021763088 data:0x000000a0
 kworker/4:0-13793 [004] ...1 155221.822288: rtcpu_vinotify_handle_msg: tstamp:4851039861521 tag:CHANSEL_PXL_SOF channel:0x00 frame:13938 vi_tstamp:2021783778 data:0x00000001
 kworker/4:0-13793 [004] ...1 155221.822289: rtcpu_vinotify_handle_msg: tstamp:4851039861667 tag:ATOMP_FS channel:0x00 frame:13938 vi_tstamp:2021783792 data:0x00000000
 kworker/4:0-13793 [004] ...1 155221.874292: rtcpu_vinotify_handle_msg: tstamp:4851040201079 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:13938 vi_tstamp:2022123464 data:0x08000000
 kworker/4:0-13793 [004] ...1 155221.874294: rtcpu_vinotify_handle_msg: tstamp:4851040882267 tag:CSIMUX_FRAME channel:0x00 frame:13938 vi_tstamp:2022804329 data:0x000000a0
 kworker/4:0-13793 [004] ...1 155221.874295: rtcpu_vinotify_handle_msg: tstamp:4851040882478 tag:CHANSEL_SHORT_FRAME channel:0x01 frame:13938 vi_tstamp:2022804329 data:0x00000001
 kworker/4:0-13793 [004] ...1 155221.874296: rtcpu_vinotify_handle_msg: tstamp:4851040882638 tag:ATOMP_FE channel:0x00 frame:13938 vi_tstamp:2022804332 data:0x00000000
 kworker/4:0-13793 [004] ...1 155221.926322: rtos_queue_peek_from_isr_failed: tstamp:4851042024054 queue:0x0b4a3c58
 kworker/4:0-13793 [004] ...1 155222.082386: rtos_queue_peek_from_isr_failed: tstamp:4851047024689 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155222.238332: rtos_queue_peek_from_isr_failed: tstamp:4851052025357 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155222.394341: rtos_queue_peek_from_isr_failed: tstamp:4851057025860 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155222.550331: rtos_queue_peek_from_isr_failed: tstamp:4851062026369 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155222.706336: rtos_queue_peek_from_isr_failed: tstamp:4851067026874 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155222.862416: rtos_queue_peek_from_isr_failed: tstamp:4851072027833 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155223.018339: rtos_queue_peek_from_isr_failed: tstamp:4851077027886 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155223.174586: rtos_queue_peek_from_isr_failed: tstamp:4851082028409 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155223.330364: rtos_queue_peek_from_isr_failed: tstamp:4851087029355 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155223.486343: rtos_queue_peek_from_isr_failed: tstamp:4851092029409 queue:0x0b4a3c58
 kworker/4:1-13958 [004] ...1 155223.694340: rtos_queue_peek_from_isr_failed: tstamp:4851097029916 queue:0x0b4a3c58
 kworker/4:0-13793 [004] ...1 155223.853478: rtos_queue_peek_from_isr_failed: tstamp:4851102030423 queue:0x0b4a3c58
 kworker/4:0-13793 [004] ...1 155223.853496: rtos_queue_peek_from_isr_failed: tstamp:4851103420815 queue:0x0b4a3c58

hello withmarine,

you’re not using the correct commands to generate a down scale result.
you need to specify the sensor resolution to the commands to inform the v4l2 application, to let application know which sensor mode need to be called.
my suggest is, you may extend the supported commands to add donwscale controls,
please add it into below functions.
thanks

int tegra_channel_s_ctrl(struct v4l2_ctrl *ctrl){...}