public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Tim Surber <me@timsurber.de>
To: Shreeya Patel <shreeya.patel@collabora.com>,
	heiko@sntech.de, mchehab@kernel.org, robh@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mturquette@baylibre.com,
	sboyd@kernel.org, p.zabel@pengutronix.de,
	jose.abreu@synopsys.com, nelson.costa@synopsys.com,
	shawn.wen@rock-chips.com, nicolas.dufresne@collabora.com,
	hverkuil@xs4all.nl, hverkuil-cisco@xs4all.nl
Cc: kernel@collabora.com, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v4 0/4] Add Synopsys DesignWare HDMI RX Controller
Date: Sun, 4 Aug 2024 01:57:08 +0200	[thread overview]
Message-ID: <6f5c4ebb-84ab-4b65-9817-ac5f6158911f@timsurber.de> (raw)
In-Reply-To: <20240719124032.26852-1-shreeya.patel@collabora.com>

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.

Best regards,
Tim

On 19.07.24 14:40, Shreeya Patel wrote:
> This series implements support for the Synopsys DesignWare
> HDMI RX Controller, being compliant with standard HDMI 1.4b
> and HDMI 2.0.
>
> Features that are currently supported by the HDMI RX driver
> have been tested on rock5b board using a HDMI to micro-HDMI cable.
> It is recommended to use a good quality cable as there were
> multiple issues seen during testing the driver.
>
> Please note the below information :-
> * While testing the driver on rock5b we noticed that the binary BL31
> from Rockchip contains some unknown code to get the HDMI-RX PHY
> access working without any errors.
> With TF-A BL31, the HDMI-RX PHY also works fine but there were no
> interrupts seen for rk_hdmirx-hdmi leading to some errors when
> loading the driver [0]. It doesn't affect the functionality of the
> driver though.
> * We have tested the working of OBS studio with HDMIRX driver and
> there were no issues seen.
> * We also tested and verified the support for interlaced video.
>
> [0] https://gitlab.collabora.com/hardware-enablement/rockchip-3588/trusted-firmware-a/-/issues/1
>
> To test the HDMI RX Controller driver, following example commands can be used :-
>
> root@debian-rockchip-rock5b-rk3588:~# v4l2-ctl --verbose -d /dev/video0 \
> --set-fmt-video=width=1920,height=1080,pixelformat='BGR3' --stream-mmap=4 \
> --stream-skip=3 --stream-count=100 --stream-to=/home/hdmiin4k.raw --stream-poll
>
> root@debian-rockchip-rock5b-rk3588:~# ffmpeg -f rawvideo -vcodec rawvideo \
> -s 1920x1080 -r 60 -pix_fmt bgr24 -i /home/hdmiin4k.raw output.mkv
>
> CEC compliance test results :-
>
> * https://gitlab.collabora.com/-/snippets/381
> * https://gitlab.collabora.com/-/snippets/380
>
> Following is the v4l2-compliance test result :-
>
> root@debian-rockchip-rock5b-rk3588:~# v4l2-compliance -d /dev/video0
> v4l2-compliance 1.27.0-5220, 64 bits, 64-bit time_t
> v4l2-compliance SHA: 8387e3673837 2024-07-01 11:09:32
>
> Compliance test for snps_hdmirx device /dev/video0:
>
> Driver Info:
> 	Driver name      : snps_hdmirx
> 	Card type        : snps_hdmirx
> 	Bus info         : platform:fdee0000.hdmi-receiver
> 	Driver version   : 6.10.0
> 	Capabilities     : 0x84201000
> 		Video Capture Multiplanar
> 		Streaming
> 		Extended Pix Format
> 		Device Capabilities
> 	Device Caps      : 0x04201000
> 		Video Capture Multiplanar
> 		Streaming
> 		Extended Pix Format
>
> Required ioctls:
> 	test VIDIOC_QUERYCAP: OK
> 	test invalid ioctls: OK
>
> Allow for multiple opens:
> 	test second /dev/video0 open: OK
> 	test VIDIOC_QUERYCAP: OK
> 	test VIDIOC_G/S_PRIORITY: OK
> 	test for unlimited opens: OK
>
> Debug ioctls:
> 	test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
> 	test VIDIOC_LOG_STATUS: OK
>
> Input ioctls:
> 	test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
> 	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> 	test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
> 	test VIDIOC_ENUMAUDIO: OK (Not Supported)
> 	test VIDIOC_G/S/ENUMINPUT: OK
> 	test VIDIOC_G/S_AUDIO: OK (Not Supported)
> 	Inputs: 1 Audio Inputs: 0 Tuners: 0
>
> Output ioctls:
> 	test VIDIOC_G/S_MODULATOR: OK (Not Supported)
> 	test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
> 	test VIDIOC_ENUMAUDOUT: OK (Not Supported)
> 	test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
> 	test VIDIOC_G/S_AUDOUT: OK (Not Supported)
> 	Outputs: 0 Audio Outputs: 0 Modulators: 0
>
> Input/Output configuration ioctls:
> 	test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
> 	test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK
> 	test VIDIOC_DV_TIMINGS_CAP: OK
> 	test VIDIOC_G/S_EDID: OK
>
> Control ioctls (Input 0):
> 	test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> 	test VIDIOC_QUERYCTRL: OK
> 	test VIDIOC_G/S_CTRL: OK
> 	test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> 	test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
> 	test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> 	Standard Controls: 3 Private Controls: 0
>
> Format ioctls (Input 0):
> 	test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
> 	test VIDIOC_G/S_PARM: OK
> 	test VIDIOC_G_FBUF: OK (Not Supported)
> 	test VIDIOC_G_FMT: OK
> 	test VIDIOC_TRY_FMT: OK
> 	test VIDIOC_S_FMT: OK
> 	test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> 	test Cropping: OK (Not Supported)
> 	test Composing: OK (Not Supported)
> 	test Scaling: OK (Not Supported)
>
> Codec ioctls (Input 0):
> 	test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
> 	test VIDIOC_G_ENC_INDEX: OK (Not Supported)
> 	test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>
> Buffer ioctls (Input 0):
> 	test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> 	test CREATE_BUFS maximum buffers: OK
> 	test VIDIOC_REMOVE_BUFS: OK
> 	test VIDIOC_EXPBUF: OK
> 	test Requests: OK (Not Supported)
>
> Total for snps_hdmirx device /dev/video0: 47, Succeeded: 47, Failed: 0, Warnings: 0
>
> Changes in v4 :-
>    - Remove DTS changes included in the device tree patch
>    - Remove the hdmi rx pin info as it's already present
>      in the rk3588-base-pinctrl.dtsi
>    - Create a separate config option for selecting the EDID
>      and enable it by default
>    - Improve the comment related to DV timings and move it
>      to the side of hdmirx_get_detected_timings
>    - Add 100ms delay before pulling the HPD high
>    - Do not return the detected timings from VIDIOC_G_DV_TIMINGS
>    - Drop the bus info from hdmirx_querycap
>    - If *num_planes != 0 then return 0 in hdmirx_queue_setup
>    - Set queue->min_queued_buffers to 1
>    - Drop q->allow_cache_hints = 0; as it's always 0 by default
>    - Add a comment for q->dma_attrs = DMA_ATTR_FORCE_CONTIGUOUS;
>    - Drop .read = vb2_fop_read as it's not supported by driver
>    - Remove redundant edid_init_data_600M
>    - Make HPD low when driver is loaded
>    - Add support for reading AVI Infoframe
>    - Remove msg_len checks from hdmirx_cec_transmit
>    - Add info about the CEC compliance test in the cover letter
>    - Add arbitration lost status
>    - Validate the physical address inside the EDID
>
> Changes in v3 :-
>    - Use v4l2-common helpers in the HDMIRX driver
>    - Rename cma node and phandle names
>    - Elaborate the comment to explain 160MiB calculation
>    - Move &hdmi_receiver_cma to the rock5b dts file
>    - Add information about interlaced video testing in the
>      cover-letter
>
> Changes in v2 :-
>    - Fix checkpatch --strict warnings
>    - Move the dt-binding include file changes in a separate patch
>    - Add a description for the hardware in the dt-bindings file
>    - Rename resets, vo1 grf and HPD properties
>    - Add a proper description for grf and vo1-grf phandles in the
>      bindings
>    - Rename the HDMI RX node name to hdmi-receiver
>    - Include gpio header file in binding example to fix the
>      dt_binding_check failure
>    - Move hdmirx_cma node to the rk3588.dtsi file
>    - Add an entry to MAINTAINERS file for the HDMIRX driver
>
> Shreeya Patel (4):
>    MAINTAINERS: Add entry for Synopsys DesignWare HDMI RX Driver
>    dt-bindings: media: Document bindings for HDMI RX Controller
>    arm64: dts: rockchip: Add device tree support for HDMI RX Controller
>    media: platform: synopsys: Add support for hdmi input driver
>
>   .../bindings/media/snps,dw-hdmi-rx.yaml       |  132 +
>   MAINTAINERS                                   |    8 +
>   .../dts/rockchip/rk3588-base-pinctrl.dtsi     |   14 +
>   .../arm64/boot/dts/rockchip/rk3588-extra.dtsi |   56 +
>   drivers/media/platform/Kconfig                |    1 +
>   drivers/media/platform/Makefile               |    1 +
>   drivers/media/platform/synopsys/Kconfig       |    3 +
>   drivers/media/platform/synopsys/Makefile      |    2 +
>   .../media/platform/synopsys/hdmirx/Kconfig    |   27 +
>   .../media/platform/synopsys/hdmirx/Makefile   |    4 +
>   .../platform/synopsys/hdmirx/snps_hdmirx.c    | 2763 +++++++++++++++++
>   .../platform/synopsys/hdmirx/snps_hdmirx.h    |  394 +++
>   .../synopsys/hdmirx/snps_hdmirx_cec.c         |  285 ++
>   .../synopsys/hdmirx/snps_hdmirx_cec.h         |   44 +
>   14 files changed, 3734 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/media/snps,dw-hdmi-rx.yaml
>   create mode 100644 drivers/media/platform/synopsys/Kconfig
>   create mode 100644 drivers/media/platform/synopsys/Makefile
>   create mode 100644 drivers/media/platform/synopsys/hdmirx/Kconfig
>   create mode 100644 drivers/media/platform/synopsys/hdmirx/Makefile
>   create mode 100644 drivers/media/platform/synopsys/hdmirx/snps_hdmirx.c
>   create mode 100644 drivers/media/platform/synopsys/hdmirx/snps_hdmirx.h
>   create mode 100644 drivers/media/platform/synopsys/hdmirx/snps_hdmirx_cec.c
>   create mode 100644 drivers/media/platform/synopsys/hdmirx/snps_hdmirx_cec.h
>


  parent reply	other threads:[~2024-08-03 23:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-19 12:40 [PATCH v4 0/4] Add Synopsys DesignWare HDMI RX Controller Shreeya Patel
2024-07-19 12:40 ` [PATCH v4 1/4] MAINTAINERS: Add entry for Synopsys DesignWare HDMI RX Driver Shreeya Patel
2024-07-19 12:47   ` Christopher Obbard
2024-07-19 12:40 ` [PATCH v4 2/4] dt-bindings: media: Document bindings for HDMI RX Controller Shreeya Patel
2024-07-19 22:10   ` Rob Herring (Arm)
2024-07-25  9:46     ` Shreeya Patel
2024-07-20 10:44   ` Johan Jonker
2024-07-22 13:53     ` Shreeya Patel
2024-07-23 11:16       ` Johan Jonker
2024-07-23 17:28         ` Sebastian Reichel
2024-07-24 13:20           ` Johan Jonker
2024-07-25  6:35             ` Krzysztof Kozlowski
2024-07-25  6:38               ` Krzysztof Kozlowski
2024-07-25  7:58             ` AngeloGioacchino Del Regno
2024-07-25 14:10             ` Sebastian Reichel
2024-08-25  7:03   ` Krzysztof Kozlowski
2024-08-26  8:19   ` Michael Riesch
2024-07-19 12:40 ` [PATCH v4 3/4] arm64: dts: rockchip: Add device tree support " Shreeya Patel
     [not found] ` <20240719124032.26852-5-shreeya.patel@collabora.com>
2024-07-20 11:33   ` [PATCH v4 4/4] media: platform: synopsys: Add support for hdmi input driver Johan Jonker
2024-07-22 14:19     ` Shreeya Patel
2024-07-20 23:43   ` George Stark
2024-07-21  8:51   ` Hans Verkuil
2024-07-25  9:56     ` Shreeya Patel
2024-07-21 15:06   ` Markus Elfring
     [not found]   ` <c5b9be4d-16ee-45f7-b980-d2e0e4b3ef23@xs4all.nl>
2024-09-23 22:24     ` Dmitry Osipenko
2024-09-23 22:36     ` Dmitry Osipenko
     [not found] ` <20240722193946.1246372-1-hoff.benjamin.k@gmail.com>
2024-07-22 20:26   ` Shreeya Patel
2024-08-03 23:57 ` Tim Surber [this message]
     [not found]   ` <929d2f50-6b0e-4d1e-a6d3-482d615bd06a@collabora.com>
2024-08-06 20:37     ` [PATCH v4 0/4] Add Synopsys DesignWare HDMI RX Controller Tim Surber
     [not found]   ` <19150697f90.11f343d091099757.4301715823219222254@collabora.com>
2024-08-24 23:03     ` Tim Surber
2024-08-28 22:13     ` Tim Surber
     [not found]       ` <1919d97402f.b403f96c443474.1860819764033812181@collabora.com>
2024-09-06 20:02         ` Nicolas Dufresne

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6f5c4ebb-84ab-4b65-9817-ac5f6158911f@timsurber.de \
    --to=me@timsurber.de \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=hverkuil@xs4all.nl \
    --cc=jose.abreu@synopsys.com \
    --cc=kernel@collabora.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mchehab@kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=nelson.costa@synopsys.com \
    --cc=nicolas.dufresne@collabora.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=shawn.wen@rock-chips.com \
    --cc=shreeya.patel@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox