From: Tim Surber <me@timsurber.de>
To: Shreeya Patel <shreeya.patel@collabora.com>
Cc: heiko <heiko@sntech.de>, mchehab <mchehab@kernel.org>,
robh <robh@kernel.org>, krzk+dt <krzk+dt@kernel.org>,
conor+dt <conor+dt@kernel.org>,
mturquette <mturquette@baylibre.com>, sboyd <sboyd@kernel.org>,
"p.zabel" <p.zabel@pengutronix.de>,
"jose.abreu" <jose.abreu@synopsys.com>,
"nelson.costa" <nelson.costa@synopsys.com>,
"shawn.wen" <shawn.wen@rock-chips.com>,
"nicolas.dufresne" <nicolas.dufresne@collabora.com>,
hverkuil <hverkuil@xs4all.nl>,
hverkuil-cisco <hverkuil-cisco@xs4all.nl>,
kernel <kernel@collabora.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-media <linux-media@vger.kernel.org>,
devicetree <devicetree@vger.kernel.org>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
linux-rockchip <linux-rockchip@lists.infradead.org>
Subject: Re: [PATCH v4 0/4] Add Synopsys DesignWare HDMI RX Controller
Date: Thu, 29 Aug 2024 00:13:40 +0200 [thread overview]
Message-ID: <74850340-b662-4a58-b5eb-a4e352c5002c@timsurber.de> (raw)
In-Reply-To: <19150697f90.11f343d091099757.4301715823219222254@collabora.com>
Hi Shreeya,
another hint:
Changing the EDID like you described fixed the 4k60fps BGR3 input.
But still for NV16/NV24 (I can't output NV12 for some reason) there is
the error which Nicolas described.
The output from v4l2-ctl for NV16/NV24 is:
Plane 0 :
Bytes per Line : 3840
Size Image : 8294400
According to Nicolas there should be an additional plane/more memory
reserved.
This leads to errors when trying to read the device using for example
gstreamer:
gst_memory_resize: assertion 'size + mem->offset + offset <=
mem->maxsize' failed
This seems to always happen using the NV16/NV24 formats regardless of
resolution/fps.
Best regards,
Tim
On 14.08.24 12:22, Shreeya Patel wrote:
> ---- On Sun, 04 Aug 2024 05:27:08 +0530 Tim Surber wrote ---
> > Hi Shreeya,
> >
>
> Hi Tim,
>
>
> > 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:
> > Dropping truncated buffer, this is likely a driver bug.
> > 0:00:03.489421906 3231 0xffffa0000b90 WARN bufferpool
> > gstbufferpool.c:1252:default_reset_buffer: 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.
> >
>
>
> Sorry for the delayed response, I've been trying to reproduce this on my side
> and to also fix it.
>
> It seems you are right, 4K@60 fps doesn't work with the latest version of HDMIRX.
> We found out that it could be because of the current EDID which shows some failures.
>
> Though I wasn't able to test the following on my side since my device doesn't support
> 4K, one of my colleague tried to replace the EDID and 4K@60 fps worked fine after that.
>
> If you'd like to try it yourself then following is the command to get the new EDID
>
> v4l2-ctl --show-edid type=hdmi-4k-600mhz
>
> You will have to replace the EDID in the driver with the EDID you get the from the above
> command in HEX format.
>
> Thanks for reporting this, I will soon send v5 with this change included in it.
>
>
> Thanks,
> Shreeya Patel
>
>
> > 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
> > >
> >
next prev parent reply other threads:[~2024-08-28 22:15 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 ` [PATCH v4 0/4] Add Synopsys DesignWare HDMI RX Controller Tim Surber
[not found] ` <929d2f50-6b0e-4d1e-a6d3-482d615bd06a@collabora.com>
2024-08-06 20:37 ` Tim Surber
[not found] ` <19150697f90.11f343d091099757.4301715823219222254@collabora.com>
2024-08-24 23:03 ` Tim Surber
2024-08-28 22:13 ` Tim Surber [this message]
[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=74850340-b662-4a58-b5eb-a4e352c5002c@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