[PATCH v4 0/4] Add Synopsys DesignWare HDMI RX Controller

Tim Surber me at timsurber.de
Tue Aug 6 13:37:39 PDT 2024


Here are the results of some more debugging.
I see that in the first example the pixel format is set to RGB888 and in 
the second to NV12, I was not able to successfully change this on my 
source, nevertheless the HDMI RX should work I think.

###source set to 4k30fps####
---------------------------
v4l2-ctl --verbose -d /dev/video1 
--set-fmt-video=width=3840,height=2160,pixelformat='NV12' 
--stream-mmap=4 --stream-skip=3 --stream-count=100 --stream-poll
---------------------------
VIDIOC_QUERYCAP: ok
VIDIOC_G_FMT: ok
The pixelformat 'NV12' is invalid
New timings found
         VIDIOC_REQBUFS returned 0 (Success)
         VIDIOC_CREATE_BUFS returned 0 (Success)
         VIDIOC_QUERYBUF returned 0 (Success)
         VIDIOC_QUERYBUF returned 0 (Success)
         VIDIOC_QUERYBUF returned 0 (Success)
         VIDIOC_QUERYBUF returned 0 (Success)
         VIDIOC_G_FMT returned 0 (Success)
         VIDIOC_QBUF returned 0 (Success)
         VIDIOC_QBUF returned 0 (Success)
         VIDIOC_QBUF returned 0 (Success)
         VIDIOC_QBUF returned 0 (Success)
         VIDIOC_STREAMON returned 0 (Success)
cap dqbuf: 0 seq:      0 bytesused: 8294400 ts: 536.006261 field: Any 
(ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      1 bytesused: 8294400 ts: 536.039574 delta: 33.313 
ms field: Any (ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq:      2 bytesused: 8294400 ts: 536.072906 delta: 33.332 
ms field: Any (ts-monotonic, ts-src-eof)
cap dqbuf: 3 seq:      3 bytesused: 8294400 ts: 536.106239 delta: 33.333 
ms field: Any (ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq:      4 bytesused: 8294400 ts: 536.139571 delta: 33.332 
ms fps: 30.01 field: Any (ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq:      5 bytesused: 8294400 ts: 536.172903 delta: 33.332 
ms fps: 30.00 field: Any (ts-monotonic, ts-src-eof)
[...]

---------------------------
dmesg
---------------------------
[  529.266804] fdee0000.hdmi_receiver: hb
[  530.280073] fdee0000.hdmi_receiver: hb
[  531.293412] fdee0000.hdmi_receiver: hb
[  532.306716] fdee0000.hdmi_receiver: hb
[  533.319906] fdee0000.hdmi_receiver: hb
[  534.333263] fdee0000.hdmi_receiver: hb
[  535.346616] fdee0000.hdmi_receiver: hb
[  535.739795] fdee0000.hdmi_receiver: C-Plane 0 size: 24883200, Total 
imagesize: 24883200
[  535.747733] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[  535.747750] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: RGB888
[  535.747760] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[  535.747780] fdee0000.hdmi_receiver: get timings from dma
[  535.747787] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:30, pixclk:297016000
[  535.747799] fdee0000.hdmi_receiver: hfp:172, hs:92, hbp:296, vfp:8, 
vs:10, vbp:72
[  535.747809] fdee0000.hdmi_receiver: tmds_clk:297016000
[  535.747816] fdee0000.hdmi_receiver: interlace:0, fmt:0, vic:127, 
color:24, mode:hdmi
[  535.747825] fdee0000.hdmi_receiver: deframer_st:0x11
[  535.747833] fdee0000.hdmi_receiver: query_dv_timings: 3840x2160p30.00 
(4400x2250)
[  535.747854] fdee0000.hdmi_receiver: s_dv_timings: 3840x2160p30.00 
(4400x2250)
[  535.747875] fdee0000.hdmi_receiver: hdmirx_s_dv_timings: no change
[  535.747924] fdee0000.hdmi_receiver: vid-cap-mplane: count 4, size 8294400
[  535.752754] fdee0000.hdmi_receiver: C-Plane 0 size: 24883200, Total 
imagesize: 24883200
[  535.752884] fdee0000.hdmi_receiver: C-Plane 0 size: 24883200, Total 
imagesize: 24883200
[  535.752904] fdee0000.hdmi_receiver: hdmirx_start_streaming: 
start_stream cur_buf y_addr:0xe0ea5000, uv_addr:0xe168e000
[  535.752920] fdee0000.hdmi_receiver: hdmirx_start_streaming: enable dma
[  535.780112] fdee0000.hdmi_receiver: dma_irq st1:0x100, st13:1085
[  535.780128] fdee0000.hdmi_receiver: line_flag_int_handler: last have 
no dma_idle_irq
[  535.796093] fdee0000.hdmi_receiver: dma_irq st1:0x80, st13:2160
[  535.813435] fdee0000.hdmi_receiver: dma_irq st1:0x100, st13:1085
[  535.829423] fdee0000.hdmi_receiver: dma_irq st1:0x80, st13:2160
[...]
---------------------------

###source set to 4k60fps####
---------------------------
v4l2-ctl --verbose -d /dev/video1 
--set-fmt-video=width=3840,height=2160,pixelformat='NV12' 
--stream-mmap=4 --stream-skip=3 --stream-count=100 --stream-poll
---------------------------
VIDIOC_QUERYCAP: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture Multiplanar:
     Width/Height      : 3840/2160
     Pixel Format      : 'NV12' (Y/UV 4:2:0)
     Field             : None
     Number of planes  : 1
     Flags             :
     Colorspace        : sRGB
     Transfer Function : Default
     YCbCr/HSV Encoding: Default
     Quantization      : Default
     Plane 0           :
        Bytes per Line : 3840
        Size Image     : 8294400
[stuck here, have to end with ctrl c]


---------------------------
dmesg
---------------------------
[ 1520.198123] fdee0000.hdmi_receiver: hb
[ 1521.211383] fdee0000.hdmi_receiver: hb
[ 1522.224680] fdee0000.hdmi_receiver: hb
[ 1523.237936] fdee0000.hdmi_receiver: hb
[ 1524.251313] fdee0000.hdmi_receiver: hb
[ 1525.264606] fdee0000.hdmi_receiver: hb
[ 1526.277937] fdee0000.hdmi_receiver: hb
[ 1526.427540] fdee0000.hdmi_receiver: C-Plane 0 size: 8294400, Total 
imagesize: 8294400
[ 1526.427587] fdee0000.hdmi_receiver: C-Plane 0 size: 8294400, Total 
imagesize: 8294400
[ 1526.427598] fdee0000.hdmi_receiver: hdmirx_set_fmt: req(3840, 2160), 
out(3840, 2160), fmt:0x3231564e
[ 1526.435569] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1526.435588] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1526.435597] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1526.435618] fdee0000.hdmi_receiver: get timings from dma
[ 1526.435626] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1526.435637] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1526.435648] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1526.435656] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1526.435665] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1527.291212] fdee0000.hdmi_receiver: hb
[ 1527.443533] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1527.443550] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1527.443560] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1527.443579] fdee0000.hdmi_receiver: get timings from dma
[ 1527.443586] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1527.443597] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1527.443608] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1527.443615] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1527.443625] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1528.304515] fdee0000.hdmi_receiver: hb
[ 1528.451543] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1528.451560] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1528.451569] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1528.451588] fdee0000.hdmi_receiver: get timings from dma
[ 1528.451595] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1528.451606] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1528.451617] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1528.451624] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1528.451634] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1529.317814] fdee0000.hdmi_receiver: hb
[ 1529.459549] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1529.459566] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1529.459575] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1529.459593] fdee0000.hdmi_receiver: get timings from dma
[ 1529.459601] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1529.459612] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1529.459623] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1529.459630] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1529.459640] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1530.331085] fdee0000.hdmi_receiver: hb
[ 1530.467555] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1530.467571] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1530.467580] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1530.467599] fdee0000.hdmi_receiver: get timings from dma
[ 1530.467606] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1530.467618] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1530.467628] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1530.467635] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1530.467664] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1531.344437] fdee0000.hdmi_receiver: hb
[ 1531.475649] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1531.475665] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1531.475674] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1531.475693] fdee0000.hdmi_receiver: get timings from dma
[ 1531.475700] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1531.475711] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1531.475722] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1531.475729] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1531.475739] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1532.357695] fdee0000.hdmi_receiver: hb
[ 1532.483716] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1532.483733] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1532.483742] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1532.483761] fdee0000.hdmi_receiver: get timings from dma
[ 1532.483768] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1532.483780] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1532.483790] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1532.483797] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1532.483807] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1533.370994] fdee0000.hdmi_receiver: hb
[ 1533.491726] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1533.491743] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1533.491752] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1533.491770] fdee0000.hdmi_receiver: get timings from dma
[ 1533.491778] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1533.491789] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1533.491800] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1533.491807] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1533.491816] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1534.384324] fdee0000.hdmi_receiver: hb
[ 1534.499888] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1534.499904] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1534.499913] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1534.499932] fdee0000.hdmi_receiver: get timings from dma
[ 1534.499939] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1534.499950] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1534.499960] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1534.499968] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1534.499977] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1535.397596] fdee0000.hdmi_receiver: hb
[ 1535.507961] fdee0000.hdmi_receiver: tx_5v_power_present: 1
[ 1535.507977] fdee0000.hdmi_receiver: hdmirx_get_pix_fmt: pix_fmt: YUV420
[ 1535.507986] fdee0000.hdmi_receiver: hdmirx_get_colordepth: 
color_depth: 24, reg_val:4
[ 1535.508005] fdee0000.hdmi_receiver: get timings from dma
[ 1535.508012] fdee0000.hdmi_receiver: act:3840x2160, total:4400x2250, 
fps:60, pixclk:297008000
[ 1535.508023] fdee0000.hdmi_receiver: hfp:4294965460, hs:48, hbp:148, 
vfp:8, vs:10, vbp:72
[ 1535.508034] fdee0000.hdmi_receiver: tmds_clk:297008000
[ 1535.508041] fdee0000.hdmi_receiver: interlace:0, fmt:3, vic:127, 
color:24, mode:hdmi
[ 1535.508051] fdee0000.hdmi_receiver: deframer_st:0x11
[ 1536.410933] fdee0000.hdmi_receiver: hb
[ 1537.424223] fdee0000.hdmi_receiver: hb
[ 1538.437523] fdee0000.hdmi_receiver: hb
[ 1539.450848] fdee0000.hdmi_receiver: hb

Best regards
Tim

On 06.08.24 13:58, Dmitry Osipenko wrote:
> On 8/4/24 02:57, Tim Surber wrote:
>> Hi Shreeya,
>>
>> I tested your patch and noticed problems when using 3840x2160 resolution
>> at  60fps.
>>
>> For my testing I connected an HDMI source and set it to 4k60fps. I
>> verified that this source and the cables work on a screen at this
>> resolution.
>>
>> Using
>> 'v4l2-ctl --verbose -d /dev/video1
>> --set-fmt-video=width=3840,height=2160,pixelformat='NV12'
>> --stream-mmap=4 --stream-skip=3 --stream-count=100 --stream-poll'
>> I get the video format output, but not the periodic output which shows
>> the fps.
>>
>> Using
>> 'GST_DEBUG=4 gst-launch-1.0 -v v4l2src device=/dev/video1 !
>> fpsdisplaysink text-overlay=false video-sink="fakevideosink"'
>> I get the following error message:
>>
>> (gst-launch-1.0:3231): GStreamer-CRITICAL **: 01:34:39.137:
>> gst_memory_resize: assertion 'size + mem->offset + offset <=
>> mem->maxsize' failed
>> 0:00:03.489382529  3231 0xffffa0000b90 WARN  v4l2bufferpool
>> gstv4l2bufferpool.c:2209:gst_v4l2_buffer_pool_process:<v4l2src0:pool0:src> Dropping truncated buffer, this is likely a driver bug.
>> 0:00:03.489421906  3231 0xffffa0000b90 WARN  bufferpool
>> gstbufferpool.c:1252:default_reset_buffer:<v4l2src0:pool0:src> Buffer
>> 0xffff98008e80 without the memory tag has maxsize (8294400) that is
>> smaller than the configured buffer pool size (12441600). The buffer will
>> be not be reused. This is most likely a bug in this GstBufferPool subclass
>>
>>
>> Everything works with 4k30fps or 1080p 60fps. The hardware should
>> support 4k60fps.
> Please do `echo 3 > /sys/module/synopsys_hdmirx/parameters/debug` and
> show the kernel log of capturing 4k at 60 with v4l2-ctl.
>



More information about the Linux-rockchip mailing list