Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f386509e authored by Hugues Fruchet's avatar Hugues Fruchet Committed by Mauro Carvalho Chehab
Browse files

[media] st-delta: STiH4xx multi-format video decoder v4l2 driver



This V4L2 driver enables DELTA multi-format video decoder
of STMicroelectronics STiH4xx SoC series.

Acked-by: default avatarPeter Griffin <peter.griffin@linaro.org>
Signed-off-by: default avatarHugues Fruchet <hugues.fruchet@st.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent f34b87e4
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -312,6 +312,34 @@ config VIDEO_STI_HVA_DEBUGFS

          Choose N unless you know you need this.

config VIDEO_STI_DELTA
	tristate "STMicroelectronics DELTA multi-format video decoder V4L2 driver"
	depends on VIDEO_DEV && VIDEO_V4L2
	depends on ARCH_STI || COMPILE_TEST
	depends on HAS_DMA
	help
		This V4L2 driver enables DELTA multi-format video decoder
		of STMicroelectronics STiH4xx SoC series allowing hardware
		decoding of various compressed video bitstream format in
		raw uncompressed format.

		Use this option to see the decoders available for such
		hardware.

		Please notice that the driver will only be built if
		at least one of the DELTA decoder below is selected.

if VIDEO_STI_DELTA

config VIDEO_STI_DELTA_DRIVER
	tristate
	depends on VIDEO_STI_DELTA
	default n
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV

endif # VIDEO_STI_DELTA

config VIDEO_SH_VEU
	tristate "SuperH VEU mem2mem video processing driver"
	depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
+2 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ obj-$(CONFIG_VIDEO_STI_BDISP) += sti/bdisp/
obj-$(CONFIG_VIDEO_STI_HVA)		+= sti/hva/
obj-$(CONFIG_DVB_C8SECTPFE)		+= sti/c8sectpfe/

obj-$(CONFIG_VIDEO_STI_DELTA)		+= sti/delta/

obj-$(CONFIG_BLACKFIN)                  += blackfin/

obj-$(CONFIG_ARCH_DAVINCI)		+= davinci/
+2 −0
Original line number Diff line number Diff line
obj-$(CONFIG_VIDEO_STI_DELTA_DRIVER) := st-delta.o
st-delta-y := delta-v4l2.o
+61 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) STMicroelectronics SA 2015
 * Author: Hugues Fruchet <hugues.fruchet@st.com> for STMicroelectronics.
 * License terms:  GNU General Public License (GPL), version 2
 */

#ifndef DELTA_CFG_H
#define DELTA_CFG_H

#define DELTA_FW_VERSION "21.1-3"

#define DELTA_MIN_WIDTH  32
#define DELTA_MAX_WIDTH  4096
#define DELTA_MIN_HEIGHT 32
#define DELTA_MAX_HEIGHT 2400

/* DELTA requires a 32x32 pixels alignment for frames */
#define DELTA_WIDTH_ALIGNMENT    32
#define DELTA_HEIGHT_ALIGNMENT   32

#define DELTA_DEFAULT_WIDTH  DELTA_MIN_WIDTH
#define DELTA_DEFAULT_HEIGHT DELTA_MIN_HEIGHT
#define DELTA_DEFAULT_FRAMEFORMAT  V4L2_PIX_FMT_NV12
#define DELTA_DEFAULT_STREAMFORMAT V4L2_PIX_FMT_MJPEG

#define DELTA_MAX_RESO (DELTA_MAX_WIDTH * DELTA_MAX_HEIGHT)

/* guard value for number of access units */
#define DELTA_MAX_AUS 10

/* IP perf dependent, can be tuned */
#define DELTA_PEAK_FRAME_SMOOTHING 2

/*
 * guard output frame count:
 * - at least 1 frame needed for display
 * - at worst 21
 *   ( max h264 dpb (16) +
 *     decoding peak smoothing (2) +
 *     user display pipeline (3) )
 */
#define DELTA_MIN_FRAME_USER    1
#define DELTA_MAX_DPB           16
#define DELTA_MAX_FRAME_USER    3 /* platform/use-case dependent */
#define DELTA_MAX_FRAMES (DELTA_MAX_DPB + DELTA_PEAK_FRAME_SMOOTHING +\
			  DELTA_MAX_FRAME_USER)

#if DELTA_MAX_FRAMES > VIDEO_MAX_FRAME
#undef DELTA_MAX_FRAMES
#define DELTA_MAX_FRAMES (VIDEO_MAX_FRAME)
#endif

/* extra space to be allocated to store codec specific data per frame */
#define DELTA_MAX_FRAME_PRIV_SIZE 100

/* PM runtime auto power-off after 5ms of inactivity */
#define DELTA_HW_AUTOSUSPEND_DELAY_MS 5

#define DELTA_MAX_DECODERS 10

#endif /* DELTA_CFG_H */
+1813 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading