linux_dsm_epyc7002/drivers/media/platform
Stanimir Varbanov f012b23d64 media: venus: implementing multi-stream support
This is implementing multi-stream decoder support. The multi-stream
will be used to enable/disable the primary/secondary decoder
outputs. Depending on formats on both decoder outputs we could
implement downscale, dithering and supporting UBWC (universal
bandwidth compression) formats. The UBWC compressed raw format is
used to optimize interconnect bandwidth for bigger resolutions
like 4K and hence we will get some power-saving benefits as well.

Both decoder outputs are distinguished by buffer_type field in
the HFI packets. For example HFI_BUFFER_OUTPUT is the buffer type
for primary decoder output and HFI_BUFFER_OUTPUT2 is for secondary
decoder output.

Starting from Venus 4xx the DPB buffers format must be UBWC, so
the multi-stream becomes mandatory for this Venus version. That
means that we need to allocate internally in the driver a set of
DPB buffers (with UBWC NV12 format) and give them to the firmware.
The other decoder output (we called it OPB) format will be NV12
linear format and with the same resolution (or smaller in case
the user wants to downscale).

The DPB buffers are used for decoder reference frames and those
have to be in a specific format (UBWC). So one decoder output is
used to fill those reference buffers while the other output is
used to fill the userspace buffers with the user requested format.

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-07-25 09:16:11 -04:00
..
am437x treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
atmel media: atmel-isi: move of_node_put() to cover success branch as well 2018-06-28 06:50:28 -04:00
cadence media: v4l: cadence: add VIDEO_V4L2 dependency 2018-06-27 09:51:49 -04:00
cec-gpio media: cec-gpio: support 5v testing 2018-07-25 07:12:36 -04:00
coda media: coda: add missing h.264 levels 2018-07-25 08:31:51 -04:00
davinci treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
exynos4-is media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt() 2018-07-04 12:59:19 -04:00
exynos-gsc media updates for v4.16-rc1 2018-02-06 11:27:48 -08:00
marvell-ccic Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
meson media: platform: meson-ao-cec: make busy TX warning silent 2018-07-24 17:52:20 -04:00
mtk-jpeg media: mem2mem: Make .job_abort optional 2018-07-24 17:45:08 -04:00
mtk-mdp media: mem2mem: Make .job_abort optional 2018-07-24 17:45:08 -04:00
mtk-vcodec media: mtk-vcodec: Support VP9 profile in decoder 2018-07-04 09:33:17 -04:00
mtk-vpu media: mtk-vpu: fix spelling mistake: "Prosessor" -> "Processor" 2018-06-28 06:39:34 -04:00
omap media: v4l: omap: add VIDEO_V4L2 dependency 2018-06-28 06:48:21 -04:00
omap3isp media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial data 2018-06-28 09:21:58 -04:00
qcom media: venus: implementing multi-stream support 2018-07-25 09:16:11 -04:00
rcar-vin media: rcar-vin: Handle data-enable polarity 2018-07-24 14:59:36 -04:00
rockchip/rga media: mem2mem: Make .job_abort optional 2018-07-24 17:45:08 -04:00
s3c-camif media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power 2018-06-28 09:22:30 -04:00
s5p-cec media: s5p-cec: add NACK detection support 2017-09-23 07:29:30 -04:00
s5p-g2d media: mem2mem: Make .job_abort optional 2018-07-24 17:45:08 -04:00
s5p-jpeg media: mem2mem: Make .job_abort optional 2018-07-24 17:45:08 -04:00
s5p-mfc media: platform: s5p-mfc: simplify getting .drvdata 2018-07-04 11:45:40 -04:00
soc_camera docs: Fix some broken references 2018-06-15 18:10:01 -03:00
sti media: mem2mem: Remove unused v4l2_m2m_ops .lock/.unlock 2018-06-28 07:56:49 -04:00
stm32 media: stm32-dcmi: add power saving support 2018-06-28 07:49:56 -04:00
tegra-cec media: tegra-cec: reset rx_buf_cnt when start bit detected 2018-03-05 07:46:24 -05:00
ti-vpe media: mem2mem: Remove unused v4l2_m2m_ops .lock/.unlock 2018-06-28 07:56:49 -04:00
vicodec media: vicodec: add the virtual codec driver 2018-07-25 08:16:46 -04:00
vimc media: vimc: use correct subdev functions 2018-02-26 09:31:41 -05:00
vivid media: vivid: fix gain when autogain is on 2018-07-04 08:18:33 -04:00
vsp1 treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
xilinx treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
fsl-viu.c media: fsl-viu: fix error handling in viu_of_probe() 2018-07-04 08:30:42 -04:00
Kconfig media: vicodec: add the virtual codec driver 2018-07-25 08:16:46 -04:00
m2m-deinterlace.c media: m2m-deinterlace: Implement wait_prepare and wait_finish 2018-07-04 08:03:04 -04:00
Makefile media: vicodec: add the virtual codec driver 2018-07-25 08:16:46 -04:00
mx2_emmaprp.c media: mx_emmaprp: Implement wait_prepare and wait_finish 2018-07-04 08:02:33 -04:00
pxa_camera.c docs: Fix some broken references 2018-06-15 18:10:01 -03:00
rcar_drif.c media: rcar_drif: fix error return code in rcar_drif_alloc_dmachannels() 2018-02-26 07:43:29 -05:00
rcar_fdp1.c media: drivers: remove "/**" from non-kernel-doc comments 2017-11-30 04:19:03 -05:00
rcar_jpu.c media: mem2mem: Make .job_abort optional 2018-07-24 17:45:08 -04:00
rcar-fcp.c v4l: rcar-fcp: Add an API to retrieve the FCP device 2017-06-09 12:25:36 +01:00
renesas-ceu.c media: renesas-ceu: Add support for YUYV permutations 2018-06-28 06:51:05 -04:00
sh_veu.c media: platform: sh_veu: use 64-bit arithmetic instead of 32-bit 2018-02-26 08:09:48 -05:00
sh_vou.c media: replace all <spaces><tab> occurrences 2018-01-04 13:15:05 -05:00
via-camera.c fbdev changes for v4.18: 2018-06-17 05:00:24 +09:00
via-camera.h media: fix usage of whitespaces and on indentation 2018-01-04 13:12:01 -05:00
video-mux.c media: video-mux: fix compliance failures 2018-07-24 17:40:40 -04:00
vim2m.c media: vim2m: add media device 2018-07-04 08:47:56 -04:00