Other Parts Discussed in Thread: TVP5158,
Hello,
I have AM5728 connected to TVP5158 on my board. I'm using PSDK 5.3. There are 2 cameras connected to TVP5158 and I want to capture both simultaneously.
I'm following the discussion from here: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/640197/linux-am5728-vip-driver-problem
But things are not working for me...probably SDK5.3 issue?
Modifications made to TVP5158 driver -
#define TVP_CH_MUX_NUMBER (1<<4) // 0=1 channel, 1=2 channels, 2=4 channels Changed from 4 channels to 2 channels for my use-case. Device tree also has 2 channels listed and only 2 enumerate - /dev/video1 and /dev/video2
Patch from the previous thread has been applied to the vip driver. No other modifications made in the vip driver.
A single video capture works fine. The problem is that trying to capture both simultaneously causes a kernel dump due to vpdma_list_fifo timeout.
I'm running yavta as follows one after the other -
yavta -c100 -p -F/home/test1.yuv --skip 2 -t 1/30 -f YUYV -s 720x288 /dev/video1 yavta -c100 -p -F/home/test2.yuv --skip 2 -t 1/30 -f YUYV -s 720x288 /dev/video2
Attached is the log with vip and video4linux debug set to 3.
[ 43.112931] tvp5158 2-0058: Signal Present [ 43.113410] tvp5158 2-0058: PAL video detected [ 43.118890] tvp5158 2-0058: Signal Present [ 43.119366] tvp5158 2-0058: PAL video detected [ 48.826374] tvp5158 2-0058: Signal Present [ 48.826859] tvp5158 2-0058: PAL video detected [ 84.113723] vin3a-0: vip_open [ 84.114588] tvp5158 2-0058: Signal Present [ 84.115070] tvp5158 2-0058: PAL video detected [ 84.119543] vin3a: vip_init_port: g_mbus_fmt subdev mbus_code: 2006 fourcc:UYVY size: 720x288 [ 84.119549] vin3a: vip_init_port: mbus_field: Interlaced [ 84.119562] vin3a: calc_format_size: fourcc:UYVY size: 720x288 bpl:1440 img_size:414720 [ 84.119570] vin3a-0: init_stream fourcc:UYVY size: 720x288 bpl:1440 img_size:414720 [ 84.119575] vin3a-0: init_stream vpdma data type: 0x27 [ 84.119583] vin3a-0: vip_init_stream: stream instance 0xc0bb2d78ee271000 [ 84.119738] video2: VIDIOC_QUERYCAP: driver=vip, card=vip, bus=platform:vip2:vin3a:stream0, version=0x00040e4f, capabilities=0x85200001, device_caps=0x05200001 [ 84.119938] vin3a-0: s_fmt input fourcc:YUYV size: 720x288 bpl:0 img_size:0 [ 84.120036] vin3a-0: try_fmt fourcc:YUYV size: 720x288 [ 84.120045] vin3a-0: try_fmt loop:0 fourcc:YUYV size: 720x288 [ 84.120052] vin3a-0: try_fmt loop:0 found new larger: 720x288 [ 84.120058] vin3a-0: try_fmt loop:0 found at least larger: 720x288 [ 84.120063] vin3a-0: try_fmt loop:0 found new best: 720x288 [ 84.120069] vin3a-0: try_fmt loop:0 found direct match: 720x288 [ 84.120076] vin3a: calc_format_size: fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 84.120082] vin3a-0: s_fmt try_fmt fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 84.120090] vin3a-0: s_fmt fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 84.120096] vin3a-0: s_fmt pix_to_mbus mbus_code: 2006 size: 720x288 [ 84.121403] tvp5158 2-0058: Signal Present [ 84.121887] tvp5158 2-0058: PAL video detected [ 84.126481] vin3a-0: s_fmt subdev fmt mbus_code: 2006 size: 720x288 [ 84.126487] vin3a-0: s_fmt vpdma data type: 0x07 [ 84.126493] video2: VIDIOC_S_FMT: type=vid-cap, width=720, height=288, pixelformat=YUYV, field=none, bytesperline=1440, sizeimage=414720, colorspace=1, flags=0x0, ycbcr_enc=0, quantization=0, xfer_func=0 [ 84.126558] vin3a-0: g_fmt fourcc:YUYV code: 2006 size: 720x288 bpl:1440 img_size:414720 [ 84.126564] vin3a-0: g_fmt vpdma data type: 0x07 [ 84.126772] video2: VIDIOC_G_FMT: type=vid-cap, width=720, height=288, pixelformat=YUYV, field=none, bytesperline=1440, sizeimage=414720, colorspace=1, flags=0x0, ycbcr_enc=0, quantization=0, xfer_func=0 [ 84.126827] video2: VIDIOC_G_PARM: type=vid-cap, capability=0x1000, capturemode=0x0, timeperframe=1/30, extendedmode=0, readbuffers=4 [ 84.127163] video2: VIDIOC_S_PARM: type=vid-cap, capability=0x1000, capturemode=0x0, timeperframe=1/30, extendedmode=0, readbuffers=4 [ 84.127192] video2: VIDIOC_G_PARM: type=vid-cap, capability=0x1000, capturemode=0x0, timeperframe=1/30, extendedmode=0, readbuffers=4 [ 84.127707] vin3a-0: get 8 buffer(s) of size 414720 each. [ 84.131382] video2: VIDIOC_REQBUFS: count=8, type=vid-cap, memory=mmap [ 84.131976] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=0, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x0, length=414720 [ 84.132012] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.132709] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=1, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x66000, length=414720 [ 84.132740] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.133386] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=2, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0xcc000, length=414720 [ 84.133453] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.134038] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=3, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x132000, length=414720 [ 84.134126] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.134909] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=4, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x198000, length=414720 [ 84.134940] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.135640] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=5, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x1fe000, length=414720 [ 84.135670] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.136476] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=6, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x264000, length=414720 [ 84.136506] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 84.137225] video2: VIDIOC_QUERYBUF: 00:00:00.00000000 index=7, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x2ca000, length=414720 [ 84.137255] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.673665] vin3a-0: vip_open [ 86.673683] vin3a: calc_format_size: fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 86.673690] vin3a-0: init_stream fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 86.673697] vin3a-0: init_stream vpdma data type: 0x07 [ 86.673706] vin3a-0: vip_init_stream: stream instance 0xc0bb2d78ee275000 [ 86.673855] video1: VIDIOC_QUERYCAP: driver=vip, card=vip, bus=platform:vip2:vin3a:stream0, version=0x00040e4f, capabilities=0x85200001, device_caps=0x05200001 [ 86.673905] vin3a-0: s_fmt input fourcc:YUYV size: 720x288 bpl:0 img_size:0 [ 86.673911] vin3a-0: try_fmt fourcc:YUYV size: 720x288 [ 86.673923] vin3a-0: try_fmt loop:0 fourcc:YUYV size: 720x288 [ 86.673930] vin3a-0: try_fmt loop:0 found new larger: 720x288 [ 86.673937] vin3a-0: try_fmt loop:0 found at least larger: 720x288 [ 86.673942] vin3a-0: try_fmt loop:0 found new best: 720x288 [ 86.673948] vin3a-0: try_fmt loop:0 found direct match: 720x288 [ 86.673956] vin3a: calc_format_size: fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 86.673963] vin3a-0: s_fmt try_fmt fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 86.673971] vin3a-0: s_fmt fourcc:YUYV size: 720x288 bpl:1440 img_size:414720 [ 86.673978] vin3a-0: s_fmt pix_to_mbus mbus_code: 2006 size: 720x288 [ 86.674843] tvp5158 2-0058: Signal Present [ 86.675325] tvp5158 2-0058: PAL video detected [ 86.679793] vin3a-0: s_fmt subdev fmt mbus_code: 2006 size: 720x288 [ 86.679799] vin3a-0: s_fmt vpdma data type: 0x07 [ 86.679804] video1: VIDIOC_S_FMT: type=vid-cap, width=720, height=288, pixelformat=YUYV, field=none, bytesperline=1440, sizeimage=414720, colorspace=1, flags=0x0, ycbcr_enc=0, quantization=0, xfer_func=0 [ 86.679866] vin3a-0: g_fmt fourcc:YUYV code: 2006 size: 720x288 bpl:1440 img_size:414720 [ 86.679871] vin3a-0: g_fmt vpdma data type: 0x07 [ 86.679876] video1: VIDIOC_G_FMT: type=vid-cap, width=720, height=288, pixelformat=YUYV, field=none, bytesperline=1440, sizeimage=414720, colorspace=1, flags=0x0, ycbcr_enc=0, quantization=0, xfer_func=0 [ 86.679924] video1: VIDIOC_G_PARM: type=vid-cap, capability=0x1000, capturemode=0x0, timeperframe=1/30, extendedmode=0, readbuffers=4 [ 86.679975] video1: VIDIOC_S_PARM: type=vid-cap, capability=0x1000, capturemode=0x0, timeperframe=1/30, extendedmode=0, readbuffers=4 [ 86.680003] video1: VIDIOC_G_PARM: type=vid-cap, capability=0x1000, capturemode=0x0, timeperframe=1/30, extendedmode=0, readbuffers=4 [ 86.680045] vin3a-0: get 8 buffer(s) of size 414720 each. [ 86.683945] video1: VIDIOC_REQBUFS: count=8, type=vid-cap, memory=mmap [ 86.684480] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=0, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x0, length=414720 [ 86.684513] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.685179] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=1, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x66000, length=414720 [ 86.685248] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.685904] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=2, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0xcc000, length=414720 [ 86.685970] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.686645] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=3, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x132000, length=414720 [ 86.686674] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.687348] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=4, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x198000, length=414720 [ 86.687411] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.688185] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=5, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x1fe000, length=414720 [ 86.688218] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.688994] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=6, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x264000, length=414720 [ 86.689024] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 86.689767] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=7, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x2ca000, length=414720 [ 86.689878] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 134.679359] NET: Registered protocol family 15 [ 134.759619] Initializing XFRM netlink socket [ 148.175308] vin3: vip_set_slice_path: [ 148.175320] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 80008000 [ 148.175326] vin3: vip_set_slice_path: [ 148.175333] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 40008000 [ 148.175614] vin3a: vip_setup_parser: sync_type = 3 [ 148.256940] vin3a-0: vip_load_vpdma_list_fifo: start_dma vb2 buf idx:0 [ 148.258071] vin3a-0: vip_load_vpdma_list_fifo: start_dma vb2 buf idx:1 [ 148.259205] video1: VIDIOC_STREAMON: type=vid-cap [ 149.159309] vin3: vip_set_slice_path: [ 149.159323] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 80008000 [ 149.159329] vin3: vip_set_slice_path: [ 149.159336] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 40008000 [ 149.159716] vin3a: vip_setup_parser: sync_type = 3 [ 149.160629] vin3a-0: vip_load_vpdma_list_fifo: start_dma vb2 buf idx:0 [ 149.718634] vin3a-0: Timed out loading VPDMA list fifo [ 149.723844] ------------[ cut here ]------------ [ 149.728493] WARNING: CPU: 0 PID: 969 at drivers/media/v4l2-core/videobuf2-core.c:1347 vb2_start_streaming+0xdc/0x158 [ 149.739199] Modules linked in: sha512_generic sha512_arm sha256_generic sha1_generic sha1_arm_neon sha1_arm md5 cbc aes_arm_bs crypto_simd cryptd xfrm_user xfrm4_tunnel ipcomp xfrm_ipcomp esp4 ah4 af_key xfrm_algo pru_rproc pruss_intc xhci_plat_hcd xhci_hcd pruss rpmsg_proto rpmsg_rpc dwc3 udc_core bc_example(O) snd_soc_simple_card snd_soc_simple_card_utils snd_soc_omap_hdmi_audio pvrsrvkm(O) omap_aes_driver omap_wdt pruss_soc_bus omap_sham phy_omap_usb2 ahci_platform libahci_platform libahci libata ti_vip scsi_mod ti_vpe ti_sc tvp5158 ti_csc v4l2_fwnode ti_vpdma dwc3_omap omap_des adv7180 tca8418_keypad c_can_platform des_generic c_can ar1021_i2c snd_soc_tlv320aic3x crypto_engine can_dev omap_crypto at24 omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel uio_module_drv(O) uio ftdi_sio [ 149.810922] usbserial usbcore usb_common gdbserverproxy(O) cryptodev(O) cmemk(O) [ 149.818700] CPU: 0 PID: 969 Comm: yavta Tainted: G O 4.14.79-ge669d52447 #42 [ 149.826915] Hardware name: Generic DRA74X (Flattened Device Tree) [ 149.833033] Backtrace: [ 149.835503] [<c020b4dc>] (dump_backtrace) from [<c020b7c0>] (show_stack+0x18/0x1c) [ 149.843107] r7:00000009 r6:600f0013 r5:00000000 r4:c1053e50 [ 149.848799] [<c020b7a8>] (show_stack) from [<c0935d48>] (dump_stack+0x90/0xa4) [ 149.856058] [<c0935cb8>] (dump_stack) from [<c022b9cc>] (__warn+0xec/0x104) [ 149.863051] r7:00000009 r6:c0c10f84 r5:00000000 r4:00000000 [ 149.868736] [<c022b8e0>] (__warn) from [<c022ba9c>] (warn_slowpath_null+0x28/0x30) [ 149.876340] r9:00000003 r8:00000012 r7:c071bc60 r6:ee271ae8 r5:ee27188c r4:fffffff0 [ 149.884120] [<c022ba74>] (warn_slowpath_null) from [<c0730218>] (vb2_start_streaming+0xdc/0x158) [ 149.892946] [<c073013c>] (vb2_start_streaming) from [<c0732074>] (vb2_core_streamon+0x130/0x178) [ 149.901769] r7:c071bc60 r6:eece6000 r5:00000000 r4:ee27188c [ 149.907454] [<c0731f44>] (vb2_core_streamon) from [<c07348b8>] (vb2_streamon+0x38/0x58) [ 149.915492] r5:d3a60300 r4:00000001 [ 149.919084] [<c0734880>] (vb2_streamon) from [<c073491c>] (vb2_ioctl_streamon+0x44/0x48) [ 149.927214] [<c07348d8>] (vb2_ioctl_streamon) from [<c071bc84>] (v4l_streamon+0x24/0x28) [ 149.935338] r5:40045612 r4:c07348d8 [ 149.938932] [<c071bc60>] (v4l_streamon) from [<c071e610>] (__video_do_ioctl+0x30c/0x314) [ 149.947056] r5:40045612 r4:00000001 [ 149.950649] [<c071e304>] (__video_do_ioctl) from [<c071dec4>] (video_usercopy+0x78/0x49c) [ 149.958862] r10:00000000 r9:00000000 r8:d2d3be28 r7:00000000 r6:00000004 r5:00000001 [ 149.966724] r4:40045612 [ 149.969270] [<c071de4c>] (video_usercopy) from [<c071e300>] (video_ioctl2+0x18/0x1c) [ 149.977048] r10:edabf550 r9:d2d3a000 r8:ee069b74 r7:bec1c604 r6:40045612 r5:d3a60300 [ 149.984909] r4:eece6000 [ 149.987456] [<c071e2e8>] (video_ioctl2) from [<c071a548>] (v4l2_ioctl+0x84/0xe0) [ 149.994890] [<c071a4c4>] (v4l2_ioctl) from [<c034ed3c>] (do_vfs_ioctl+0xa8/0x790) [ 150.002407] r9:d2d3a000 r8:00000003 r7:40045612 r6:00000003 r5:d3a60300 r4:bec1c604 [ 150.010189] [<c034ec94>] (do_vfs_ioctl) from [<c034f460>] (SyS_ioctl+0x3c/0x60) [ 150.017530] r10:00000036 r9:d2d3a000 r8:bec1c604 r7:40045612 r6:00000003 r5:d3a60300 [ 150.025391] r4:d3a60300 [ 150.027942] [<c034f424>] (SyS_ioctl) from [<c0207c40>] (ret_fast_syscall+0x0/0x4c) [ 150.035544] r9:d2d3a000 r8:c0207e44 r7:00000036 r6:00000001 r5:00000000 r4:00000008 [ 150.043570] ---[ end trace ddb7106f79f0aabe ]--- [ 150.048379] video2: VIDIOC_STREAMON: error -16: type=vid-cap [ 150.049757] video2: VIDIOC_REQBUFS: count=0, type=vid-cap, memory=mmap [ 150.049957] vin3a-0: vip_release [ 150.049971] vin3a-0: vip_release_stream: stream instance 0x00000008ee271000
Can one of the VIP experts please take a look at this and provide a fix?