linux-sg2042/drivers/media/platform
Archit Taneja 585e6f010b [media] v4l: ti-vpe: Add de-interlacer support in VPE
Add support for the de-interlacer block in VPE. For de-interlacer to
work, we need to enable 2 more sets of VPE input ports which fetch data
from the 'last' and 'last to last' fields of the interlaced video. Apart
from that, we need to enable the Motion vector output and input ports,
and also allocate DMA buffers for them.

We need to make sure that two most recent fields in the source queue are
available and in the 'READY' state. Once a mem2mem context gets access
to the VPE HW(in device_run), it extracts the addresses of the 3
buffers, and provides it to the data descriptors for the 3 sets of input
ports((LUMA1, CHROMA1), (LUMA2, CHROMA2), and (LUMA3, CHROMA3))
respectively for the 3 consecutive fields. The motion vector and output
port descriptors are configured and the list is submitted to VPDMA.

Once the transaction is done, the v4l2 buffer corresponding to the
oldest field(the 3rd one) is changed to the state 'DONE', and the
buffers corresponding to 1st and 2nd fields become the 2nd and 3rd field
for the next de-interlace operation. This way, for each deinterlace
operation, we have the 3 most recent fields. After each transaction, we
also swap the motion vector buffers, the new input motion vector buffer
contains the resultant motion information of all the previous frames,
and the new output motion vector buffer will be used to hold the updated
motion vector to capture the motion changes in the next field. The
motion vector buffers are allocated using the DMA allocation API.

The de-interlacer is removed from bypass mode, it requires some extra
default configurations which are now added. The chrominance upsampler
coefficients are added for interlaced frames. Some VPDMA parameters like
frame start event and line mode are configured for the 2 extra sets of
input ports.

Signed-off-by: Archit Taneja <archit@ti.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2013-10-28 15:19:38 -02:00
..
blackfin [media] v4l2: use new V4L2_DV_BT_BLANKING/FRAME defines 2013-08-18 08:19:03 -03:00
davinci [media] davinci: remove deprecated IRQF_DISABLED 2013-10-03 14:11:18 -03:00
exynos-gsc [media] exynos-gsc: Register v4l2 device 2013-09-03 09:24:21 -03:00
exynos4-is [media] media: Remove unnecessary semicolons 2013-10-17 05:51:57 -03:00
marvell-ccic [media] marvell-ccic: drop free_irq for devm_request_irq allocated irq 2013-10-17 11:28:09 -03:00
omap [media] omap_vout: fix compiler warning 2013-06-28 15:06:49 -03:00
omap3isp [media] media: Change media device link_notify behaviour 2013-06-12 22:16:27 -03:00
s3c-camif [media] s3c-camif: forever loop in camif_hw_set_source_format() 2013-08-24 04:53:58 -03:00
s5p-g2d [media] s5p-g2d: Fix registration failure 2013-09-03 09:24:17 -03:00
s5p-jpeg [media] s5p makefiles: don't override other selections on obj-[ym] 2013-06-20 05:46:00 -03:00
s5p-mfc [media] media: Remove unnecessary semicolons 2013-10-17 05:51:57 -03:00
s5p-tv [media] media: Remove unnecessary semicolons 2013-10-17 05:51:57 -03:00
soc_camera sh_mobile_ceu_camera: Fix a compilation warning 2013-08-18 09:36:03 -03:00
ti-vpe [media] v4l: ti-vpe: Add de-interlacer support in VPE 2013-10-28 15:19:38 -02:00
vsp1 [media] v4l: vsp1: Fix mutex double lock at streamon time 2013-08-28 05:40:07 -03:00
Kconfig [media] v4l: ti-vpe: Add VPE mem to mem driver 2013-10-28 15:17:30 -02:00
Makefile [media] v4l: ti-vpe: Add VPE mem to mem driver 2013-10-28 15:17:30 -02:00
arv.c
coda.c [media] media: coda: Fix DT driver data pointer for i.MX27 2013-09-03 09:24:16 -03:00
coda.h [media] coda: add CODA7541 decoding support 2013-07-31 15:56:44 -03:00
fsl-viu.c fsl-viu: cleanup clock API use 2013-08-23 23:18:57 +02:00
indycam.c [media] indycam: remove g_chip_ident op 2013-06-17 08:49:47 -03:00
indycam.h
m2m-deinterlace.c [media] mem2mem: set missing v4l2_dev pointer 2013-06-28 15:09:43 -03:00
mem2mem_testdev.c [media] mem2mem: set missing v4l2_dev pointer 2013-06-28 15:09:43 -03:00
mx2_emmaprp.c [media] mem2mem: set missing v4l2_dev pointer 2013-06-28 15:09:43 -03:00
omap24xxcam-dma.c
omap24xxcam.c [media] omap24xxcam: add v4l2_device and replace parent with v4l2_dev 2013-06-21 11:05:16 -03:00
omap24xxcam.h [media] omap24xxcam: add v4l2_device and replace parent with v4l2_dev 2013-06-21 11:05:16 -03:00
sh_veu.c sh_veu: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:01 +09:30
sh_vou.c [media] sh_vou: remove current_norm 2013-06-17 09:34:29 -03:00
timblogiw.c [media] timblogiw: fix two sparse warnings 2013-10-15 12:55:02 -03:00
via-camera.c [media] via-camera: replace current_norm by g_std 2013-06-17 09:33:49 -03:00
via-camera.h
vino.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
vino.h
vivi.c drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00