You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
[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: Peter Griffin <peter.griffin@linaro.org> Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
f34b87e486
commit
f386509e49
@@ -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
|
||||
|
||||
@@ -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
drivers/media/platform/sti/delta/Makefile
Normal file
2
drivers/media/platform/sti/delta/Makefile
Normal file
@@ -0,0 +1,2 @@
|
||||
obj-$(CONFIG_VIDEO_STI_DELTA_DRIVER) := st-delta.o
|
||||
st-delta-y := delta-v4l2.o
|
||||
61
drivers/media/platform/sti/delta/delta-cfg.h
Normal file
61
drivers/media/platform/sti/delta/delta-cfg.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* 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
drivers/media/platform/sti/delta/delta-v4l2.c
Normal file
1813
drivers/media/platform/sti/delta/delta-v4l2.c
Normal file
File diff suppressed because it is too large
Load Diff
514
drivers/media/platform/sti/delta/delta.h
Normal file
514
drivers/media/platform/sti/delta/delta.h
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user