lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250325213303.826925-1-detlev.casanova@collabora.com>
Date: Tue, 25 Mar 2025 17:22:16 -0400
From: Detlev Casanova <detlev.casanova@...labora.com>
To: linux-kernel@...r.kernel.org
Cc: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>,
	Mauro Carvalho Chehab <mchehab@...nel.org>,
	Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>,
	Heiko Stuebner <heiko@...ech.de>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Hans Verkuil <hverkuil@...all.nl>,
	Nicolas Dufresne <nicolas.dufresne@...labora.com>,
	Andrzej Pietrasiewicz <andrzej.p@...labora.com>,
	Jonas Karlman <jonas@...boo.se>,
	Sebastian Reichel <sebastian.reichel@...labora.com>,
	Niklas Cassel <cassel@...nel.org>,
	Alexey Charkov <alchark@...il.com>,
	Dragan Simic <dsimic@...jaro.org>,
	Jianfeng Liu <liujianfeng1994@...il.com>,
	Detlev Casanova <detlev.casanova@...labora.com>,
	Jacopo Mondi <jacopo.mondi@...asonboard.com>,
	Sakari Ailus <sakari.ailus@...ux.intel.com>,
	Kieran Bingham <kieran.bingham@...asonboard.com>,
	Laurent Pinchart <laurent.pinchart@...asonboard.com>,
	Umang Jain <umang.jain@...asonboard.com>,
	Naushir Patuck <naush@...pberrypi.com>,
	Jean-Michel Hautbois <jeanmichel.hautbois@...asonboard.com>,
	Dmitry Perchanov <dmitry.perchanov@...el.com>,
	Tomi Valkeinen <tomi.valkeinen@...asonboard.com>,
	linux-media@...r.kernel.org,
	linux-rockchip@...ts.infradead.org,
	devicetree@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org,
	linux-staging@...ts.linux.dev,
	kernel@...labora.com
Subject: [PATCH v4 0/6] media: rockchip: Add rkvdec2 driver

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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ