mbox series

[v1,0/4] Add support for Keem Bay VPU DRM driver

Message ID 1602244675-8785-1-git-send-email-kuhanh.murugasen.krishnan@intel.com (mailing list archive)
Headers show
Series Add support for Keem Bay VPU DRM driver | expand

Message

kuhanh.murugasen.krishnan@intel.com Oct. 9, 2020, 11:57 a.m. UTC
From: "Murugasen Krishnan, Kuhanh" <kuhanh.murugasen.krishnan@intel.com>

This is a new DRM media codec driver for Intel's Keem Bay SOC which
integrates the Verisilicon's Hantro Video Processor Unit (VPU) IP.
The SoC couples an ARM Cortex A53 CPU with an Intel Movidius VPU.

Hantro VPU IP is a series of video decoder and encoder semiconductor IP cores,
which can be flexibly configured for video surveillance, multimedia consumer
products, Internet of Things, cloud service products, data centers, aerial
photography and recorders, thereby providing video transcoding and multi-channel
HD video encoding and decoding.

Hantro VPU IP consists of Hantro VC8000D for decoder and Hantro VC8000E for encoder.

Hantro VC8000D allows 4K decoding with a minimal silicon single-core solution that
supports HEVC and H.264 video formats, key features:
* HEVC Main10 and Main Profiles up to Level 5.2
* HEVC Main Still Profile
* H.264 Main and High Profiles up to Level 5.2
* HEVC, H.264 and JPEG decoding up to 4K@60fps
* 8 channels 1080p@30fps decoding

Hantro VC8000E allows 4K encoding with a minimal silicon single-core solution that
supports HEVC and H.264 video formats, key features:
* HEVC Main10, Main and Main Still Profile, level 5.1
* H.264 Baseline, Main and High, High10 level 5.2
* JPEG encoder 16Kx16K max resolution
* HEVC/H264 Support up to 4K@60fps performance single-core
* 8 channels 1080p@30fps encoding
* B-frame support for higher compression rates
* Reference Frame Compression

This driver is tested with the Keem Bay EVM board which is the reference baord
for Keem Bay SOC.

Device tree patches are under review here:
https://lore.kernel.org/linux-arm-kernel/20200708175020.194436-1-daniele.alessandrelli@linux.intel.com/T/

Murugasen Krishnan, Kuhanh (4):
  drm: Add Keem Bay VPU codec DRM
  drm: hantro: Keem Bay VPU DRM encoder
  drm: hantro: Keem Bay VPU DRM decoder
  drm: hantro: Keem Bay VPU DRM build files

 drivers/gpu/drm/Kconfig                  |    2 +
 drivers/gpu/drm/Makefile                 |    1 +
 drivers/gpu/drm/hantro/Kconfig           |   21 +
 drivers/gpu/drm/hantro/Makefile          |    6 +
 drivers/gpu/drm/hantro/hantro_dec.c      | 1441 +++++++++++++++++++++++++
 drivers/gpu/drm/hantro/hantro_dec.h      |   59 ++
 drivers/gpu/drm/hantro/hantro_drm.c      | 1673 ++++++++++++++++++++++++++++++
 drivers/gpu/drm/hantro/hantro_drm.h      |  208 ++++
 drivers/gpu/drm/hantro/hantro_dwl_defs.h |  101 ++
 drivers/gpu/drm/hantro/hantro_enc.c      |  738 +++++++++++++
 drivers/gpu/drm/hantro/hantro_enc.h      |   66 ++
 drivers/gpu/drm/hantro/hantro_fence.c    |  284 +++++
 drivers/gpu/drm/hantro/hantro_priv.h     |  106 ++
 13 files changed, 4706 insertions(+)
 create mode 100644 drivers/gpu/drm/hantro/Kconfig
 create mode 100644 drivers/gpu/drm/hantro/Makefile
 create mode 100644 drivers/gpu/drm/hantro/hantro_dec.c
 create mode 100644 drivers/gpu/drm/hantro/hantro_dec.h
 create mode 100644 drivers/gpu/drm/hantro/hantro_drm.c
 create mode 100644 drivers/gpu/drm/hantro/hantro_drm.h
 create mode 100644 drivers/gpu/drm/hantro/hantro_dwl_defs.h
 create mode 100644 drivers/gpu/drm/hantro/hantro_enc.c
 create mode 100644 drivers/gpu/drm/hantro/hantro_enc.h
 create mode 100644 drivers/gpu/drm/hantro/hantro_fence.c
 create mode 100644 drivers/gpu/drm/hantro/hantro_priv.h