public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Detlev Casanova <detlev.casanova@collabora.com>
To: linux-kernel@vger.kernel.org
Cc: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Heiko Stuebner <heiko@sntech.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Nicolas Dufresne <nicolas.dufresne@collabora.com>,
	Andrzej Pietrasiewicz <andrzej.p@collabora.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Sebastian Reichel <sebastian.reichel@collabora.com>,
	Niklas Cassel <cassel@kernel.org>,
	Alexey Charkov <alchark@gmail.com>,
	Dragan Simic <dsimic@manjaro.org>,
	Jianfeng Liu <liujianfeng1994@gmail.com>,
	Detlev Casanova <detlev.casanova@collabora.com>,
	Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Kieran Bingham <kieran.bingham@ideasonboard.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Umang Jain <umang.jain@ideasonboard.com>,
	Naushir Patuck <naush@raspberrypi.com>,
	Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>,
	Dmitry Perchanov <dmitry.perchanov@intel.com>,
	Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>,
	linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-staging@lists.linux.dev, kernel@collabora.com
Subject: [PATCH v4 0/6] media: rockchip: Add rkvdec2 driver
Date: Tue, 25 Mar 2025 17:22:16 -0400	[thread overview]
Message-ID: <20250325213303.826925-1-detlev.casanova@collabora.com> (raw)

Add a rkvdec2 driver for newer video decoder found on rk3588 based SoC.

It is also found on other hardware like the RK356x, but not tested yet,
so it will be added later.

It only supports h264 format only for now, hevc will come later.
Yuv420 and yuv422 are both supported. 8 and 10 bits format are also
supported.
The NV15 and NV20 pixel formats are supported in v4l2 with the first
patch of this series. It has been picked up from [1].

The driver supports using the IOMMU through the rockchip IOMMU driver.
Because the IOMMU HW will be resetted in case of a decoding error, the
IOMMU mappings are rewritten on the HW by switching to an empty IOMMU
domain, then switching back to the default one.
This is one of the ways that has been recommended in [2].

[1]: https://lore.kernel.org/linux-media/20250225-rkvdec_h264_high10_and_422_support-v7-2-7992a68a4910@collabora.com/
[2]: https://lore.kernel.org/all/9bd56bd6-ce7d-495f-9bb3-ce7f07975f62@arm.com/

Changes since v3:
- Add IOMMU support
- Add 4:2:2 and 10 bits support
- Move cabac to v4l2 header
- Imported improvements from [1]
- Improve timeout value computation
- Improve clocks handling
- Always write scanlist buffer address in register
- Rebased on latest master

Changes since v2:
- doc: Disable resets and sram for other platforms, add maxItems for
  clocks
- Fix h264 spec equation number in comment
- Remove superfluous status field in dtsi
- Add TODO item for IOMMU

Changes since v1:
- Add support for RCB in SRAM
- Move bindings to rockchip,vdec.yaml
- Add resets bindings
- Add second core and enable them from dtsi file
- Only expose one video device to userspace (but don't support multicore yet)
- Share CABAC table with rkvdec
- Fix iowrite32 call and add preliminary support for arm
- Remove unused code
- Improve registers naming and code style
- Remove DMA_ATTR_ALLOC_SINGLE_PAGES flag


Detlev Casanova (5):
  media: v4l2-ctrls-core: Set frame_mbs_only_flag by default in h264 SPS
  media: rockchip: Move H264 CABAC table to header file
  media: rockchip: Introduce the rkvdec2 driver
  media: dt-bindings: rockchip: Document RK3588 Video Decoder bindings
  arm64: dts: rockchip: Add rkvdec2 Video Decoder on rk3588(s)

Jonas Karlman (1):
  media: v4l2: Add NV15 and NV20 pixel formats

 .../bindings/media/rockchip,vdec.yaml         |   73 +-
 .../media/v4l/pixfmt-yuv-planar.rst           |  128 ++
 arch/arm64/boot/dts/rockchip/rk3588-base.dtsi |   74 +
 drivers/media/platform/rockchip/Kconfig       |    1 +
 drivers/media/platform/rockchip/Makefile      |    1 +
 .../media/platform/rockchip/rkvdec2/Kconfig   |   15 +
 .../media/platform/rockchip/rkvdec2/Makefile  |    3 +
 .../platform/rockchip/rkvdec2/rkvdec2-h264.c  |  778 +++++++++
 .../platform/rockchip/rkvdec2/rkvdec2-regs.h  |  347 ++++
 .../media/platform/rockchip/rkvdec2/rkvdec2.c | 1424 +++++++++++++++++
 .../media/platform/rockchip/rkvdec2/rkvdec2.h |  150 ++
 drivers/media/v4l2-core/v4l2-common.c         |    2 +
 drivers/media/v4l2-core/v4l2-ctrls-core.c     |   13 +
 drivers/media/v4l2-core/v4l2-ioctl.c          |    2 +
 drivers/staging/media/rkvdec/rkvdec-h264.c    |  500 +-----
 include/media/v4l2-cabac/rkvdec-cabac.h       |  509 ++++++
 include/uapi/linux/videodev2.h                |    2 +
 17 files changed, 3522 insertions(+), 500 deletions(-)
 create mode 100644 drivers/media/platform/rockchip/rkvdec2/Kconfig
 create mode 100644 drivers/media/platform/rockchip/rkvdec2/Makefile
 create mode 100644 drivers/media/platform/rockchip/rkvdec2/rkvdec2-h264.c
 create mode 100644 drivers/media/platform/rockchip/rkvdec2/rkvdec2-regs.h
 create mode 100644 drivers/media/platform/rockchip/rkvdec2/rkvdec2.c
 create mode 100644 drivers/media/platform/rockchip/rkvdec2/rkvdec2.h
 create mode 100644 include/media/v4l2-cabac/rkvdec-cabac.h

-- 
2.49.0



             reply	other threads:[~2025-03-25 21:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-25 21:22 Detlev Casanova [this message]
2025-03-25 21:22 ` [PATCH v4 1/6] media: v4l2: Add NV15 and NV20 pixel formats Detlev Casanova
2025-03-28 23:09   ` Diederik de Haas
2025-04-08 21:08     ` Nicolas Dufresne
2025-03-25 21:22 ` [PATCH v4 2/6] media: v4l2-ctrls-core: Set frame_mbs_only_flag by default in h264 SPS Detlev Casanova
2025-03-25 21:22 ` [PATCH v4 3/6] media: rockchip: Move H264 CABAC table to header file Detlev Casanova
2025-03-25 21:22 ` [PATCH v4 4/6] media: rockchip: Introduce the rkvdec2 driver Detlev Casanova
2025-03-25 21:22 ` [PATCH v4 5/6] media: dt-bindings: rockchip: Document RK3588 Video Decoder bindings Detlev Casanova
2025-03-27  8:04   ` Krzysztof Kozlowski
2025-03-25 21:22 ` [PATCH v4 6/6] arm64: dts: rockchip: Add rkvdec2 Video Decoder on rk3588(s) Detlev Casanova
2025-04-08 13:16   ` Heiko Stübner
2025-04-08 18:34   ` Jonas Karlman

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=20250325213303.826925-1-detlev.casanova@collabora.com \
    --to=detlev.casanova@collabora.com \
    --cc=alchark@gmail.com \
    --cc=andrzej.p@collabora.com \
    --cc=cassel@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.perchanov@intel.com \
    --cc=dsimic@manjaro.org \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko@sntech.de \
    --cc=hverkuil@xs4all.nl \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jeanmichel.hautbois@ideasonboard.com \
    --cc=jonas@kwiboo.se \
    --cc=kernel@collabora.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=krzk+dt@kernel.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --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=linux-staging@lists.linux.dev \
    --cc=liujianfeng1994@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=naush@raspberrypi.com \
    --cc=nicolas.dufresne@collabora.com \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sebastian.reichel@collabora.com \
    --cc=tomi.valkeinen@ideasonboard.com \
    --cc=umang.jain@ideasonboard.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