2012-05-28 11:17:49 +00:00
|
|
|
#
|
|
|
|
# Platform drivers
|
|
|
|
# All drivers here are currently for webcam support
|
|
|
|
|
2011-11-08 14:02:34 +00:00
|
|
|
menuconfig V4L_PLATFORM_DRIVERS
|
|
|
|
bool "V4L platform devices"
|
2012-05-28 11:17:49 +00:00
|
|
|
depends on MEDIA_CAMERA_SUPPORT
|
2011-11-08 14:02:34 +00:00
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Say Y here to enable support for platform-specific V4L drivers.
|
|
|
|
|
|
|
|
if V4L_PLATFORM_DRIVERS
|
|
|
|
|
2012-08-14 20:31:16 +00:00
|
|
|
source "drivers/media/platform/marvell-ccic/Kconfig"
|
2011-06-11 17:46:42 +00:00
|
|
|
|
2011-09-30 12:06:11 +00:00
|
|
|
config VIDEO_VIA_CAMERA
|
|
|
|
tristate "VIAFB camera controller support"
|
|
|
|
depends on FB_VIA
|
|
|
|
select VIDEOBUF_DMA_SG
|
|
|
|
select VIDEO_OV7670
|
|
|
|
help
|
|
|
|
Driver support for the integrated camera controller in VIA
|
|
|
|
Chrome9 chipsets. Currently only tested on OLPC xo-1.5 systems
|
|
|
|
with ov7670 sensors.
|
|
|
|
|
|
|
|
#
|
|
|
|
# Platform multimedia device configuration
|
|
|
|
#
|
|
|
|
|
2012-08-14 20:31:16 +00:00
|
|
|
source "drivers/media/platform/davinci/Kconfig"
|
2011-09-30 12:06:11 +00:00
|
|
|
|
2012-08-14 20:31:16 +00:00
|
|
|
source "drivers/media/platform/omap/Kconfig"
|
2011-09-30 12:06:11 +00:00
|
|
|
|
2012-08-14 20:31:16 +00:00
|
|
|
source "drivers/media/platform/blackfin/Kconfig"
|
2012-03-08 20:44:17 +00:00
|
|
|
|
2011-09-30 12:06:11 +00:00
|
|
|
config VIDEO_SH_VOU
|
|
|
|
tristate "SuperH VOU video output driver"
|
2012-08-20 13:32:19 +00:00
|
|
|
depends on MEDIA_CAMERA_SUPPORT
|
2014-02-21 19:57:17 +00:00
|
|
|
depends on VIDEO_DEV && I2C && HAS_DMA
|
2013-11-27 01:18:28 +00:00
|
|
|
depends on ARCH_SHMOBILE || COMPILE_TEST
|
2011-09-30 12:06:11 +00:00
|
|
|
select VIDEOBUF_DMA_CONTIG
|
|
|
|
help
|
|
|
|
Support for the Video Output Unit (VOU) on SuperH SoCs.
|
|
|
|
|
|
|
|
config VIDEO_VIU
|
|
|
|
tristate "Freescale VIU Video Driver"
|
|
|
|
depends on VIDEO_V4L2 && PPC_MPC512x
|
|
|
|
select VIDEOBUF_DMA_CONTIG
|
|
|
|
default y
|
|
|
|
---help---
|
|
|
|
Support for Freescale VIU video driver. This device captures
|
|
|
|
video data, or overlays video on DIU frame buffer.
|
|
|
|
|
|
|
|
Say Y here if you want to enable VIU device on MPC5121e Rev2+.
|
|
|
|
In doubt, say N.
|
|
|
|
|
|
|
|
config VIDEO_TIMBERDALE
|
|
|
|
tristate "Support for timberdale Video In/LogiWIN"
|
2015-02-12 14:11:40 +00:00
|
|
|
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API && HAS_DMA
|
2015-01-28 21:17:41 +00:00
|
|
|
depends on (MFD_TIMBERDALE && TIMB_DMA) || COMPILE_TEST
|
2011-09-30 12:06:11 +00:00
|
|
|
select VIDEO_ADV7180
|
|
|
|
select VIDEOBUF_DMA_CONTIG
|
|
|
|
---help---
|
|
|
|
Add support for the Video In peripherial of the timberdale FPGA.
|
|
|
|
|
2006-08-23 13:08:41 +00:00
|
|
|
config VIDEO_M32R_AR
|
|
|
|
tristate "AR devices"
|
2014-08-20 19:21:35 +00:00
|
|
|
depends on VIDEO_V4L2
|
|
|
|
depends on M32R || COMPILE_TEST
|
2006-03-29 17:56:17 +00:00
|
|
|
---help---
|
2006-08-23 13:08:41 +00:00
|
|
|
This is a video4linux driver for the Renesas AR (Artificial Retina)
|
|
|
|
camera module.
|
2006-03-29 17:56:17 +00:00
|
|
|
|
2006-08-23 13:08:41 +00:00
|
|
|
config VIDEO_M32R_AR_M64278
|
|
|
|
tristate "AR device with color module M64278(VGA)"
|
|
|
|
depends on PLAT_M32700UT
|
|
|
|
select VIDEO_M32R_AR
|
2006-03-29 17:56:17 +00:00
|
|
|
---help---
|
2006-08-23 13:08:41 +00:00
|
|
|
This is a video4linux driver for the Renesas AR (Artificial
|
|
|
|
Retina) with M64278E-800 camera module.
|
|
|
|
This module supports VGA(640x480 pixels) resolutions.
|
2006-03-29 17:56:17 +00:00
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the
|
2006-08-23 13:08:41 +00:00
|
|
|
module will be called arv.
|
2006-03-29 18:15:21 +00:00
|
|
|
|
2011-02-12 21:05:06 +00:00
|
|
|
config VIDEO_OMAP3
|
2013-01-17 02:53:43 +00:00
|
|
|
tristate "OMAP 3 Camera support"
|
2014-01-02 23:06:08 +00:00
|
|
|
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API && ARCH_OMAP3
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2014-11-11 08:17:00 +00:00
|
|
|
depends on OMAP_IOMMU
|
2014-01-02 23:06:08 +00:00
|
|
|
select ARM_DMA_USE_IOMMU
|
2014-07-04 07:51:47 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
2015-03-25 22:57:34 +00:00
|
|
|
select MFD_SYSCON
|
2011-02-12 21:05:06 +00:00
|
|
|
---help---
|
|
|
|
Driver for an OMAP 3 camera controller.
|
|
|
|
|
|
|
|
config VIDEO_OMAP3_DEBUG
|
|
|
|
bool "OMAP 3 Camera debug messages"
|
|
|
|
depends on VIDEO_OMAP3
|
|
|
|
---help---
|
|
|
|
Enable debug messages on OMAP 3 camera controller driver.
|
|
|
|
|
2012-08-22 23:09:18 +00:00
|
|
|
config VIDEO_S3C_CAMIF
|
|
|
|
tristate "Samsung S3C24XX/S3C64XX SoC Camera Interface driver"
|
|
|
|
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
|
2014-12-12 23:44:04 +00:00
|
|
|
depends on PM
|
2014-08-20 19:21:35 +00:00
|
|
|
depends on ARCH_S3C64XX || PLAT_S3C24XX || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2012-08-22 23:09:18 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
---help---
|
|
|
|
This is a v4l2 driver for s3c24xx and s3c64xx SoC series camera
|
|
|
|
host interface (CAMIF).
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called s3c-camif.
|
|
|
|
|
2012-08-20 12:49:34 +00:00
|
|
|
source "drivers/media/platform/soc_camera/Kconfig"
|
2013-03-24 15:54:25 +00:00
|
|
|
source "drivers/media/platform/exynos4-is/Kconfig"
|
2012-08-14 20:31:16 +00:00
|
|
|
source "drivers/media/platform/s5p-tv/Kconfig"
|
2014-12-09 19:43:44 +00:00
|
|
|
source "drivers/media/platform/am437x/Kconfig"
|
2013-05-15 14:36:19 +00:00
|
|
|
source "drivers/media/platform/xilinx/Kconfig"
|
2011-03-02 16:16:37 +00:00
|
|
|
|
2011-11-08 14:02:34 +00:00
|
|
|
endif # V4L_PLATFORM_DRIVERS
|
2010-04-23 08:38:37 +00:00
|
|
|
|
|
|
|
menuconfig V4L_MEM2MEM_DRIVERS
|
|
|
|
bool "Memory-to-memory multimedia devices"
|
|
|
|
depends on VIDEO_V4L2
|
2012-08-20 13:32:19 +00:00
|
|
|
depends on MEDIA_CAMERA_SUPPORT
|
2010-04-23 08:38:37 +00:00
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Say Y here to enable selecting drivers for V4L devices that
|
|
|
|
use system memory for both source and destination buffers, as opposed
|
|
|
|
to capture and output drivers, which use memory buffers for just
|
|
|
|
one of those.
|
2010-04-23 08:38:38 +00:00
|
|
|
|
|
|
|
if V4L_MEM2MEM_DRIVERS
|
|
|
|
|
2012-07-26 08:53:35 +00:00
|
|
|
config VIDEO_CODA
|
|
|
|
tristate "Chips&Media Coda multi-standard codec IP"
|
2012-07-02 12:03:55 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2 && ARCH_MXC
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2013-09-30 14:12:22 +00:00
|
|
|
select SRAM
|
2012-07-26 08:53:35 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
2015-01-23 16:51:30 +00:00
|
|
|
select VIDEOBUF2_VMALLOC
|
2012-07-26 08:53:35 +00:00
|
|
|
select V4L2_MEM2MEM_DEV
|
2014-07-11 09:36:25 +00:00
|
|
|
select GENERIC_ALLOCATOR
|
2012-07-26 08:53:35 +00:00
|
|
|
---help---
|
|
|
|
Coda is a range of video codec IPs that supports
|
|
|
|
H.264, MPEG-4, and other video formats.
|
|
|
|
|
2012-07-26 08:55:18 +00:00
|
|
|
config VIDEO_MEM2MEM_DEINTERLACE
|
|
|
|
tristate "Deinterlace support"
|
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2 && DMA_ENGINE
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2012-07-26 08:55:18 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
help
|
|
|
|
Generic deinterlacing V4L2 driver.
|
|
|
|
|
2011-10-06 14:32:12 +00:00
|
|
|
config VIDEO_SAMSUNG_S5P_G2D
|
|
|
|
tristate "Samsung S5P and EXYNOS4 G2D 2d graphics accelerator driver"
|
2014-08-20 19:21:35 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
2014-10-06 16:08:06 +00:00
|
|
|
depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2011-10-06 14:32:12 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
This is a v4l2 driver for Samsung S5P and EXYNOS4 G2D
|
|
|
|
2d graphics accelerator.
|
2010-08-03 12:50:29 +00:00
|
|
|
|
2011-11-24 14:15:23 +00:00
|
|
|
config VIDEO_SAMSUNG_S5P_JPEG
|
2014-07-11 15:19:42 +00:00
|
|
|
tristate "Samsung S5P/Exynos3250/Exynos4 JPEG codec driver"
|
2014-08-20 19:21:35 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
2014-10-06 16:08:06 +00:00
|
|
|
depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2011-11-24 14:15:23 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
---help---
|
2014-07-11 15:19:42 +00:00
|
|
|
This is a v4l2 driver for Samsung S5P, EXYNOS3250
|
|
|
|
and EXYNOS4 JPEG codec
|
2011-11-24 14:15:23 +00:00
|
|
|
|
2011-06-21 13:51:26 +00:00
|
|
|
config VIDEO_SAMSUNG_S5P_MFC
|
2012-10-04 01:19:11 +00:00
|
|
|
tristate "Samsung S5P MFC Video Codec"
|
2014-08-20 19:21:35 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
2014-10-06 16:08:06 +00:00
|
|
|
depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2011-06-21 13:51:26 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
default n
|
|
|
|
help
|
2012-10-04 01:19:11 +00:00
|
|
|
MFC 5.1 and 6.x driver for V4L2
|
2011-06-21 13:51:26 +00:00
|
|
|
|
2012-01-13 09:31:02 +00:00
|
|
|
config VIDEO_MX2_EMMAPRP
|
|
|
|
tristate "MX2 eMMa-PrP support"
|
2014-08-20 19:35:22 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
|
|
|
depends on SOC_IMX27 || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2012-01-13 09:31:02 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
help
|
|
|
|
MX2X chips have a PrP that can be used to process buffers from
|
|
|
|
memory to memory. Operations include resizing and format
|
|
|
|
conversion.
|
|
|
|
|
2012-08-16 13:19:56 +00:00
|
|
|
config VIDEO_SAMSUNG_EXYNOS_GSC
|
|
|
|
tristate "Samsung Exynos G-Scaler driver"
|
2014-08-20 19:21:35 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
|
|
|
depends on ARCH_EXYNOS5 || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
2012-08-16 13:19:56 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
help
|
|
|
|
This is a v4l2 driver for Samsung EXYNOS5 SoC G-Scaler.
|
|
|
|
|
2015-05-12 16:02:10 +00:00
|
|
|
config VIDEO_STI_BDISP
|
|
|
|
tristate "STMicroelectronics BDISP 2D blitter driver"
|
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
|
|
|
depends on ARCH_STI || COMPILE_TEST
|
[media] bdisp: prevent compiling on random arch
This driver requires support for DMA attrs function, and not
just DMA. Change the options accordingly to remove those errors:
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c: In function ‘bdisp_hw_free_nodes’:
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:132:3: error: implicit declaration of function ‘dma_free_attrs’ [-Werror=implicit-function-declaration]
dma_free_attrs(ctx->bdisp_dev->dev,
^
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c: In function ‘bdisp_hw_alloc_nodes’:
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:157:9: error: implicit declaration of function ‘dma_alloc_attrs’ [-Werror=implicit-function-declaration]
base = dma_alloc_attrs(dev, node_size * MAX_NB_NODE, &paddr,
^
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:157:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
base = dma_alloc_attrs(dev, node_size * MAX_NB_NODE, &paddr,
^
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c: In function ‘bdisp_hw_alloc_filters’:
/devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:219:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
base = dma_alloc_attrs(dev, size, &paddr, GFP_KERNEL | GFP_DMA, &attrs);
Also, get rid of bogus, unused and duplicated symbol declaration
for the config option done at bdisp/Kconfig.
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-06-22 15:19:17 +00:00
|
|
|
depends on HAVE_DMA_ATTRS
|
2015-05-12 16:02:10 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
help
|
|
|
|
This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC.
|
|
|
|
|
2012-10-05 10:43:41 +00:00
|
|
|
config VIDEO_SH_VEU
|
|
|
|
tristate "SuperH VEU mem2mem video processing driver"
|
2013-08-30 07:39:53 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
|
2012-10-05 10:43:41 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
help
|
|
|
|
Support for the Video Engine Unit (VEU) on SuperH and
|
|
|
|
SH-Mobile SoCs.
|
|
|
|
|
[media] V4L2: platform: Add Renesas R-Car JPEG codec driver
Here's the driver for the Renesas R-Car JPEG processing unit.
The driver is implemented within the V4L2 framework as a memory-to-memory
device. It presents two video nodes to userspace, one for the encoding part,
and one for the decoding part.
It was found that the only working mode for encoding is no markers output, so we
generate markers with software. In the current version of driver we also use
software JPEG header parsing because with hardware parsing performance is lower
than desired.
>From a userspace point of view the process is typical (S_FMT, REQBUF,
optionally QUERYBUF, QBUF, STREAMON, DQBUF) for both the source and destination
queues. STREAMON can return -EINVAL in case of mismatch of output and capture
queues format. Also during decoding driver can return buffers if queued
buffer with JPEG image contains image with inappropriate subsampling (e.g.
4:2:0 in JPEG and 4:2:2 in capture). If JPEG image and queue format dimensions
differ driver will return buffer on QBUF with VB2_BUF_STATE_ERROR flag.
During encoding the available formats are: V4L2_PIX_FMT_NV12M,
V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV16, V4L2_PIX_FMT_NV16M for source and
V4L2_PIX_FMT_JPEG for destination.
During decoding the available formats are: V4L2_PIX_FMT_JPEG for source and
V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_NV16M, V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV16
for destination.
Performance of current version:
1280x800 NV12 image encoding/decoding
decoding ~122 FPS
encoding ~191 FPS
Signed-off-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-07-22 11:23:03 +00:00
|
|
|
config VIDEO_RENESAS_JPU
|
|
|
|
tristate "Renesas JPEG Processing Unit"
|
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
|
|
|
depends on ARCH_SHMOBILE || COMPILE_TEST
|
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
---help---
|
|
|
|
This is a V4L2 driver for the Renesas JPEG Processing Unit.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called rcar_jpu.
|
|
|
|
|
2013-06-04 14:22:30 +00:00
|
|
|
config VIDEO_RENESAS_VSP1
|
|
|
|
tristate "Renesas VSP1 Video Processing Engine"
|
2013-09-06 11:43:56 +00:00
|
|
|
depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && HAS_DMA
|
2014-04-09 11:13:18 +00:00
|
|
|
depends on (ARCH_SHMOBILE && OF) || COMPILE_TEST
|
2013-06-04 14:22:30 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
---help---
|
|
|
|
This is a V4L2 driver for the Renesas VSP1 video processing engine.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called vsp1.
|
|
|
|
|
[media] v4l: ti-vpe: Add VPE mem to mem driver
VPE is a block which consists of a single memory to memory path which
can perform chrominance up/down sampling, de-interlacing, scaling, and
color space conversion of raster or tiled YUV420 coplanar, YUV422
coplanar or YUV422 interleaved video formats.
We create a mem2mem driver based primarily on the mem2mem-testdev
example. The de-interlacer, scaler and color space converter are all
bypassed for now to keep the driver simple. Chroma up/down sampler
blocks are implemented, so conversion beteen different YUV formats is
possible.
Each mem2mem context allocates a buffer for VPE MMR values which it will
use when it gets access to the VPE HW via the mem2mem queue, it also
allocates a VPDMA descriptor list to which configuration and data
descriptors are added.
Based on the information received via v4l2 ioctls for the source and
destination queues, the driver configures the values for the MMRs, and
stores them in the buffer. There are also some VPDMA parameters like
frame start and line mode which needs to be configured, these are
configured by direct register writes via the VPDMA helper functions.
The driver's device_run() mem2mem op will add each descriptor based on
how the source and destination queues are set up for the given ctx, once
the list is prepared, it's submitted to VPDMA, these descriptors when
parsed by VPDMA will upload MMR registers, start DMA of video buffers on
the various input and output clients/ports.
When the list is parsed completely(and the DMAs on all the output ports
done), an interrupt is generated which we use to notify that the source
and destination buffers are done. The rest of the driver is quite
similar to other mem2mem drivers, we use the multiplane v4l2 ioctls as
the HW support coplanar formats.
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-16 05:36:47 +00:00
|
|
|
config VIDEO_TI_VPE
|
|
|
|
tristate "TI VPE (Video Processing Engine) driver"
|
2014-08-20 19:41:56 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
|
|
|
depends on SOC_DRA7XX || COMPILE_TEST
|
2014-08-26 19:45:39 +00:00
|
|
|
depends on HAS_DMA
|
[media] v4l: ti-vpe: Add VPE mem to mem driver
VPE is a block which consists of a single memory to memory path which
can perform chrominance up/down sampling, de-interlacing, scaling, and
color space conversion of raster or tiled YUV420 coplanar, YUV422
coplanar or YUV422 interleaved video formats.
We create a mem2mem driver based primarily on the mem2mem-testdev
example. The de-interlacer, scaler and color space converter are all
bypassed for now to keep the driver simple. Chroma up/down sampler
blocks are implemented, so conversion beteen different YUV formats is
possible.
Each mem2mem context allocates a buffer for VPE MMR values which it will
use when it gets access to the VPE HW via the mem2mem queue, it also
allocates a VPDMA descriptor list to which configuration and data
descriptors are added.
Based on the information received via v4l2 ioctls for the source and
destination queues, the driver configures the values for the MMRs, and
stores them in the buffer. There are also some VPDMA parameters like
frame start and line mode which needs to be configured, these are
configured by direct register writes via the VPDMA helper functions.
The driver's device_run() mem2mem op will add each descriptor based on
how the source and destination queues are set up for the given ctx, once
the list is prepared, it's submitted to VPDMA, these descriptors when
parsed by VPDMA will upload MMR registers, start DMA of video buffers on
the various input and output clients/ports.
When the list is parsed completely(and the DMAs on all the output ports
done), an interrupt is generated which we use to notify that the source
and destination buffers are done. The rest of the driver is quite
similar to other mem2mem drivers, we use the multiplane v4l2 ioctls as
the HW support coplanar formats.
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-16 05:36:47 +00:00
|
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Support for the TI VPE(Video Processing Engine) block
|
|
|
|
found on DRA7XX SoC.
|
|
|
|
|
|
|
|
config VIDEO_TI_VPE_DEBUG
|
|
|
|
bool "VPE debug messages"
|
|
|
|
depends on VIDEO_TI_VPE
|
|
|
|
---help---
|
|
|
|
Enable debug messages on VPE driver.
|
|
|
|
|
2010-04-23 08:38:38 +00:00
|
|
|
endif # V4L_MEM2MEM_DRIVERS
|
2012-08-14 19:23:43 +00:00
|
|
|
|
2012-08-20 13:07:27 +00:00
|
|
|
menuconfig V4L_TEST_DRIVERS
|
|
|
|
bool "Media test drivers"
|
|
|
|
depends on MEDIA_CAMERA_SUPPORT
|
|
|
|
|
|
|
|
if V4L_TEST_DRIVERS
|
2014-08-25 11:06:34 +00:00
|
|
|
|
|
|
|
source "drivers/media/platform/vivid/Kconfig"
|
|
|
|
|
2014-09-22 12:27:17 +00:00
|
|
|
config VIDEO_VIM2M
|
|
|
|
tristate "Virtual Memory-to-Memory Driver"
|
2012-08-20 13:07:27 +00:00
|
|
|
depends on VIDEO_DEV && VIDEO_V4L2
|
|
|
|
select VIDEOBUF2_VMALLOC
|
|
|
|
select V4L2_MEM2MEM_DEV
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
This is a virtual test device for the memory-to-memory driver
|
|
|
|
framework.
|
|
|
|
endif #V4L_TEST_DRIVERS
|