cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sherazalishah
Participant
Participant
215 Views
Registered: ‎08-24-2020

Display Port Pass through failing in gstreamer for the first time after booting

Hi, 

I am trying to pass through from Display Port RX to Display Port TX via gstreamer application, When i try to run the Application for the first time it fails, but after disconnecting  and connecting the DP RX cable, I can run the gstreamer application without any issue

Procedure

  1. Turn on the board
  2. Set the VPSS format 
    • media-ctl -d /dev/media5 -v -V '"a1000000.v_dp_rxss1":0 [fmt:RBG888_1X24/3840x2160 field:none]'
    • media-ctl -d /dev/media5 -v -V '"a0300000.v_proc_ss":1 [fmt:UYVY8_1X16/3840x2160 field:none]'
  3. Check whether DP RX is getting resolution via media-ctl command

 

# media-ctl -d /dev/media5 -p
Media controller API version 4.19.0

Media device information
-----[   52.992873] ##1 frequency 593000000 pixel_width 4 lanecount 4 linkrate=20
-------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  4.19.0

Device topology
- entity 1: vcap_dp output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
    pad0: Sink
        <- "a0300000.v_proc_ss":1 [ENABLED]

- entity 5: a0300000.v_proc_ss (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev5
    pad0: Sink
        [fmt:RBG888_1X24/3840x2160 field:none]
        <- "a1000000.v_dp_rxss1":0 [ENABLED]
    pad1: Source
        [fmt:UYVY8_1X16/3840x2160 field:none]
        -> "vcap_dp output 0":0 [ENABLED]

- entity 8: a1000000.v_dp_rxss1 (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev6
    pad0: Source
        [fmt:RBG888_1X24/3840x2160 field:none]
        [dv.caps:BT.656/1120 min:800x600@25000000 max:7680x4320@297000000 stds:CEA-861,DMT,CVT,GTF caps:interlaced,progressive,reduced-blanking,custom]
        [dv.detect:BT.656/1120 3840x2160p60 (4400x2250) stds:CEA-861 flags:CE-video]
        -> "a0300000.v_proc_ss":0 [ENABLED]

root@PRGLT:~#

 

  • As you can see DP RX is set to 3840x2160p60
  • So I try to stream /dev/video0 to DP TX via below command, but i get the below error

 

root@PRGLT:~# gst-launch-1.0 -v v4l2src device=/dev/video0 io-mode=0 ! "video/x-raw,width=3840,height=2160,framerate=60/1" ! kmssink bus-id="amba_pl@0:dptx_disp_0" sync=false async=false
Setting pipeline to PAUSED ...
[   69.591919] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[   69.604644] pll lock status 0
[   69.604644]
[   69.641926] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[   69.651630] pll lock status 0
[   69.651630]
[   69.688997] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[   69.698625] pll lock status 0
[   69.698625]
[   69.735976] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[   69.745670] pll lock status 0
[   69.745670]
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 0
/GstPipeline:pipeline0/GstKMSSink:kmssink[   69.796745] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
0: display-height = 0
Setting pipeline to PLAYING ...
/GstPipe[   69.811758] pll lock status 0
[   69.811758]
line:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020
/GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020
/GstPipeline:pipeline0/GstCapsFilter:[   69.852024] xilinx-vphy-DP XLNX_DP_TX_USER_PIXEL_WIDTH,(0X1B8) 4
capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)3840, he[   69.995568] ### DMA dma->fmtinfo->code 200f fmt.format.code 200f
ight=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, i[   70.002916] xilinx-video amba_pl@0:vcap_dp: s_stream on failed on subdev
nterlace-mode=(string)progressive, colorimetry=(string)bt2020
[   70.026673] xilinx-video amba_pl@0:vcap_dp: ret = -22 for entity a1000000.v_dp_rxss1
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory.
Additional debug info:
../../../git/sys/v4l2/gstv4l2src.c(728): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.307870050
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@PRGLT:~#

 

  • Then when i try to check the DP RX resolution, I goes to No Link

 

root@PRGLT:~# media-ctl -p -d /dev/media5
Media controller API version 4.19.0

Media device information
-----[   83.365815] Stream is not up
-------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  4.19.0

Device topology
- entity 1: vcap_dp output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
    pad0: Sink
        <- "a0300000.v_proc_ss":1 [ENABLED]

- entity 5: a0300000.v_proc_ss (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev5
    pad0: Sink
        [fmt:RBG888_1X24/3840x2160 field:none]
        <- "a1000000.v_dp_rxss1":0 [ENABLED]
    pad1: Source
        [fmt:UYVY8_1X16/3840x2160 field:none]
        -> "vcap_dp output 0":0 [ENABLED]

- entity 8: a1000000.v_dp_rxss1 (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev6
    pad0: Source
        [fmt:RBG888_1X24/3840x2160 field:none]
        [dv.caps:BT.656/1120 min:800x600@25000000 max:7680x4320@297000000 stds:CEA-861,DMT,CVT,GTF caps:interlaced,progressive,reduced-blanking,custom]
        [dv.query:no-link]
        -> "a0300000.v_proc_ss":0 [ENABLED]

root@PRGLT:~# 

 

  • After I disconnect and Reconnect the DP RX cable, It works without any issue 

 

root@PRGLT:~# [  115.176336] pll lock status 0
[  115.176336]
[  115.288361] ##1 frequency 593000000 pixel_width 4 lanecount 4 linkrate=20

root@PRGLT:~#
root@PRGLT:~# media-ctl -p -d /dev/media5
Media controller API version 4.19.0

Media device information
-----[  118.950421] ##1 frequency 593000000 pixel_width 4 lanecount 4 linkrate=20
-------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  4.19.0

Device topology
- entity 1: vcap_dp output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
    pad0: Sink
        <- "a0300000.v_proc_ss":1 [ENABLED]

- entity 5: a0300000.v_proc_ss (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev5
    pad0: Sink
        [fmt:RBG888_1X24/3840x2160 field:none]
        <- "a1000000.v_dp_rxss1":0 [ENABLED]
    pad1: Source
        [fmt:UYVY8_1X16/3840x2160 field:none]
        -> "vcap_dp output 0":0 [ENABLED]

- entity 8: a1000000.v_dp_rxss1 (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev6
    pad0: Source
        [fmt:RBG888_1X24/3840x2160 field:none]
        [dv.caps:BT.656/1120 min:800x600@25000000 max:7680x4320@297000000 stds:CEA-861,DMT,CVT,GTF caps:interlaced,progressive,reduced-blanking,custom]
        [dv.detect:BT.656/1120 3840x2160p60 (4400x2250) stds:CEA-861 flags:CE-video]
        -> "a0300000.v_proc_ss":0 [ENABLED]

root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~#
root@PRGLT:~# gst-launch-1.0 -v v4l2src device=/dev/video0 io-mode=0 ! "video/x-raw,width=3840,height=2160,framerate=60/1" ! kmssink bus-id="amba_pl@0:dptx_disp_0" sync=false async=false &
[1] 2474
root@PRGLT:~# Setting pipeline to PAUSED ...
[  130.847216] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[  130.859362] pll lock status 0
[  130.859362]
[  130.896773] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[  130.906487] pll lock status 0
[  130.906487]
[  130.943838] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[  130.953531] pll lock status 0
[  130.953531]
[  130.990888] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
[  131.000576] pll lock status 0
[  131.000576]
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 0
/GstPipeline:pipeline0/GstKMSSink:kmssink0[  131.050027] xlnx-dp-tx a0100000.v_dp_txss1: xlnx_dp_connector_detect called
: display-height = 0
Setting pipeline to PLAYING ...
New clock[  131.065347] pll lock status 0
[  131.065347]
: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020
/GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020
/GstPipeline:pipeline0/GstCapsFilter[  131.105598] xilinx-vphy-DP XLNX_DP_TX_USER_PIXEL_WIDTH,(0X1B8) 4
:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)60/1, format=(string)YUY2, interlace-mode=(string)progressive, colorimetry=(string)bt2020

root@PRGLT:~#
​

 

 

  •  I have attached the complete log (DP_RX_DP_TX_PASSTHROUGH.txt )

Display Port Driver for RX and TX is https://github.com/Xilinx/dp-modules/archive/rel-v2020.1.zip

Let me know, If anyone has idea, why it is failing after first time

0 Kudos
0 Replies