linux/drivers/media/platform
Jernej Skrabec a4260ea495 media: sun4i: Add H3 deinterlace driver
Allwinner H3 SoC contains deinterlace unit, which has several modes of
operation - bypass, weave, bob and mixed (advanced) mode. I don't know
how mixed mode works, but according to Allwinner it gives best results,
so they use it exclusively. Currently this mode is also hardcoded here.

For each interleaved frame queued, this driver produces 2 deinterlaced
frames. Deinterlaced frames are based on 2 consequtive output buffers,
except for the first 2, where same output buffer is given to peripheral
as current and previous.

There is no documentation for this core, so register layout and fixed
values were taken from BSP driver.

I'm not sure if maximum size of the image unit is capable to process is
governed by size of "flag" buffers, frequency or it really is some HW
limitation. Currently driver can process full HD image in ~15ms (7.5ms
for each capture buffer), which allows to process 1920x1080@60i video
smoothly in real time.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
[hverkuil-cisco@xs4all.nl: add static to deinterlace_ioctl_ops]
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2019-10-24 19:07:59 -03:00
..
am437x media: am437x-vpfe: Switch to SPDX Licensing 2019-10-01 16:15:38 -03:00
atmel media: atmel: atmel-isi: fix timeout value for stop streaming 2019-08-23 07:27:55 -03:00
cadence media: v4l: cadence: Fix how unsued lanes are handled in 'csi2rx_start()' 2019-10-10 07:19:13 -03:00
cec-gpio media: cec-gpio: add notifier support 2019-10-01 17:21:14 -03:00
coda media: coda: set device_caps in struct video_device 2019-07-22 14:45:10 -04:00
cros-ec-cec chrome platform changes for v5.4 2019-09-19 14:14:28 -07:00
davinci media: use the BIT() macro 2019-08-26 14:08:50 -03:00
exynos4-is media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
exynos-gsc media: media/platform: don't set description in ENUM_FMT 2019-07-22 14:43:59 -04:00
marvell-ccic media: marvell-ccic: mmp: add MODULE_DEVICE_TABLE 2019-07-25 06:27:14 -04:00
meson media: platform: meson-ao-cec-g12a: add support for SM1 2019-07-23 08:51:50 -04:00
mtk-jpeg media: mtk-jpeg: Use vb2_get_buffer 2019-06-21 16:22:02 -04:00
mtk-mdp media: platform: mtk-mdp: mtk_mdp_core: Add of_node_put() before goto 2019-08-13 11:49:46 -03:00
mtk-vcodec media: platform: Use devm_platform_ioremap_resource() in two functions 2019-10-10 07:29:07 -03:00
mtk-vpu Linux 5.2-rc4 2019-06-11 12:09:28 -04:00
omap media updates for v5.4-rc1 2019-09-17 17:55:23 -07:00
omap3isp media: use the BIT() macro 2019-08-26 14:08:50 -03:00
qcom media: venus: fix build on 32bit environments 2019-10-08 13:46:36 -03:00
rcar-vin media: platform: Use devm_platform_ioremap_resource() in two functions 2019-10-10 07:29:07 -03:00
rockchip/rga media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
s3c-camif media: s3c-camif: make array 'registers' static const, makes object smaller 2019-10-01 16:43:49 -03:00
s5p-cec media: s5p-cec: use cec_notifier_cec_adap_(un)register 2019-07-23 08:39:27 -04:00
s5p-g2d media: s3c-camif/s5p-g2d/s5p-jpeg: set device_caps in struct video_device 2019-07-22 14:45:40 -04:00
s5p-jpeg media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
s5p-mfc media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
seco-cec media: seco-cec: Add a missing 'release_region()' in an error handling path 2019-10-01 16:41:21 -03:00
sti media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
stm32 media: stm32-dcmi: Delete an unnecessary of_node_put() call in dcmi_probe() 2019-08-29 10:23:02 -03:00
sunxi media: sun4i: Add H3 deinterlace driver 2019-10-24 19:07:59 -03:00
tegra-cec media: use the BIT() macro 2019-08-26 14:08:50 -03:00
ti-vpe media: ti-vpe: vpe: use r2y instead of y2r, copy-paste error 2019-10-24 18:32:38 -03:00
vicodec media: vicodec: make life easier for static analyzers 2019-08-26 14:02:22 -03:00
vimc media: vimc: Implement debayer control for mean window size 2019-10-24 19:04:45 -03:00
vivid media: vivid: Add metadata output support 2019-10-24 11:46:36 -03:00
vsp1 media: use the BIT() macro 2019-08-26 14:08:50 -03:00
xilinx media: use the BIT() macro 2019-08-26 14:08:50 -03:00
aspeed-video.c media: aspeed: clear garbage interrupts 2019-10-24 18:30:55 -03:00
fsl-viu.c media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
imx-pxp.c media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
imx-pxp.h
Kconfig media: sun4i: Add H3 deinterlace driver 2019-10-24 19:07:59 -03:00
m2m-deinterlace.c media: m2m-deinterlace: use struct v4l2_fh 2019-07-23 11:49:41 -04:00
Makefile media: ti-vpe: Fix a parallel build issue 2019-10-10 11:39:32 -03:00
mx2_emmaprp.c media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
pxa_camera.c media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
rcar_drif.c
rcar_fdp1.c media: fdp1: Fix a memory leak bug 2019-08-26 10:41:17 -03:00
rcar_jpu.c media: v4l2: Get rid of ->vidioc_enum_fmt_vid_{cap, out}_mplane 2019-06-05 07:48:32 -04:00
rcar-fcp.c
renesas-ceu.c media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
sh_veu.c media: sh_veu: convert to struct v4l2_fh 2019-07-25 06:29:26 -04:00
sh_vou.c media: sh_veu/sh_vou: set device_caps in struct video_device 2019-07-22 15:09:06 -04:00
via-camera.c media: via-camera: convert to the vb2 framework 2019-07-30 12:18:34 -04:00
via-camera.h
video-mux.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
vim2m.c media: vim2m: Fix abort issue 2019-10-01 16:55:23 -03:00