Skip to content
Permalink
Browse files
media: imx: imx8q: add imx8q vpu device driver
IMX8Q SoCs feature a powerful video processing unit able to decode many
foramts and encode H.264.

The vpu IP is amphion malone decoder and windsor encoder.
This Driver is for this IP that is based on the v4l2 mem2mem framework.

Supported SoCs are: IMX8QXP, IMX8QM

Signed-off-by: Ming Qian <ming.qian@nxp.com>
Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Signed-off-by: Zhou Peng <eagle.zhou@nxp.com>
  • Loading branch information
mingqian-0 authored and intel-lab-lkp committed Aug 11, 2021
1 parent 795aa60 commit 2fa6f8ecd73870259a9a985a8b214d5eb58a5314
Show file tree
Hide file tree
Showing 12 changed files with 896 additions and 0 deletions.
@@ -185,6 +185,18 @@ call.
* - ``V4L2_EVENT_PRIVATE_START``
- 0x08000000
- Base event number for driver-private events.
* - ``V4L2_EVENT_CODEC_ERROR``
- 0x08000001
- This event is triggered when some error occurs inside the codec engine,
usually it can be replaced by a POLLERR event, but in some cases, the POLLERR
may cause the application to exit, but this event can allow the application to
handle the codec error without exiting.
* - ``V4L2_EVENT_SKIP``
- 0x08000002
- This event is triggered when one frame is decoded, but it won't be outputed
to the display. So the application can't get this frame, and the input frame count
is dismatch with the output frame count. And this evevt is telling the client to
handle this case.


.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}|
@@ -200,6 +200,8 @@ config VIDEO_TI_CAL_MC

endif # VIDEO_TI_CAL

source "drivers/media/platform/imx/Kconfig"

endif # V4L_PLATFORM_DRIVERS

menuconfig V4L_MEM2MEM_DRIVERS
@@ -86,3 +86,5 @@ obj-$(CONFIG_VIDEO_QCOM_VENUS) += qcom/venus/
obj-y += sunxi/

obj-$(CONFIG_VIDEO_MESON_GE2D) += meson/ge2d/

obj-y += imx/
@@ -0,0 +1,19 @@
#
# Codec configuration
#

config MXC_VPU_8Q
tristate "Support for MXC 8Q VPU(Video Processing Unit) Codec"
depends on ARCH_MXC
depends on MEDIA_SUPPORT
depends on VIDEO_DEV
depends on VIDEO_V4L2
select V4L2_MEM2MEM_DEV
select VIDEOBUF2_DMA_CONTIG
select VIDEOBUF2_VMALLOC
default y
help
This is a V4L2 driver for NXP MXC 8Q video accelerator hardware.
It accelerates encoding and decoding operations on
various NXP SoCs.
To compile this driver as a module choose m here.
@@ -0,0 +1 @@
obj-$(CONFIG_MXC_VPU_8Q) += vpu-8q/
@@ -0,0 +1,23 @@
# SPDX-License-Identifier: GPL-2.0
# Makefile for NXP VPU driver

vpu-8q-dev-objs += vpu_drv.o \
vpu_dev_imx8q.o

vpu-8q-core-objs += vpu_core.o \
vpu_mbox.o \
vpu_v4l2.o \
vpu_helpers.o \
vpu_cmds.o \
vpu_msgs.o \
vpu_rpc.o \
vpu_imx8q.o \
vpu_windsor.o \
vpu_malone.o \
vpu_color.o \
vdec.o \
venc.o \
vpu_dbg.o

obj-$(CONFIG_MXC_VPU_8Q) += vpu-8q-dev.o
obj-$(CONFIG_MXC_VPU_8Q) += vpu-8q-core.o

0 comments on commit 2fa6f8e

Please sign in to comment.