diff options
| -rw-r--r-- | drivers/media/Kconfig | 13 | ||||
| -rw-r--r-- | drivers/media/common/videobuf2/videobuf2-v4l2.c | 2 | ||||
| -rw-r--r-- | drivers/media/media-device.c | 4 | ||||
| -rw-r--r-- | drivers/staging/media/sunxi/cedrus/Kconfig | 1 | 
4 files changed, 20 insertions, 0 deletions
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig index 8add62a18293..102eb35fcf3f 100644 --- a/drivers/media/Kconfig +++ b/drivers/media/Kconfig @@ -110,6 +110,19 @@ config MEDIA_CONTROLLER_DVB  	  This is currently experimental. +config MEDIA_CONTROLLER_REQUEST_API +	bool "Enable Media controller Request API (EXPERIMENTAL)" +	depends on MEDIA_CONTROLLER && STAGING_MEDIA +	default n +	---help--- +	  DO NOT ENABLE THIS OPTION UNLESS YOU KNOW WHAT YOU'RE DOING. + +	  This option enables the Request API for the Media controller and V4L2 +	  interfaces. It is currently needed by a few stateless codec drivers. + +	  There is currently no intention to provide API or ABI stability for +	  this new API as of yet. +  #  # Video4Linux support  #	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c index ce28bc052c3c..1d35aeabfd85 100644 --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c @@ -634,8 +634,10 @@ static void fill_buf_caps(struct vb2_queue *q, u32 *caps)  		*caps |= V4L2_BUF_CAP_SUPPORTS_USERPTR;  	if (q->io_modes & VB2_DMABUF)  		*caps |= V4L2_BUF_CAP_SUPPORTS_DMABUF; +#ifdef CONFIG_MEDIA_CONTROLLER_REQUEST_API  	if (q->supports_requests)  		*caps |= V4L2_BUF_CAP_SUPPORTS_REQUESTS; +#endif  }  int vb2_reqbufs(struct vb2_queue *q, struct v4l2_requestbuffers *req) diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c index bed24372e61f..b8ec88612df7 100644 --- a/drivers/media/media-device.c +++ b/drivers/media/media-device.c @@ -381,10 +381,14 @@ static long media_device_get_topology(struct media_device *mdev, void *arg)  static long media_device_request_alloc(struct media_device *mdev,  				       int *alloc_fd)  { +#ifdef CONFIG_MEDIA_CONTROLLER_REQUEST_API  	if (!mdev->ops || !mdev->ops->req_validate || !mdev->ops->req_queue)  		return -ENOTTY;  	return media_request_alloc(mdev, alloc_fd); +#else +	return -ENOTTY; +#endif  }  static long copy_arg_from_user(void *karg, void __user *uarg, unsigned int cmd) diff --git a/drivers/staging/media/sunxi/cedrus/Kconfig b/drivers/staging/media/sunxi/cedrus/Kconfig index a7a34e89c42d..3252efa422f9 100644 --- a/drivers/staging/media/sunxi/cedrus/Kconfig +++ b/drivers/staging/media/sunxi/cedrus/Kconfig @@ -3,6 +3,7 @@ config VIDEO_SUNXI_CEDRUS  	depends on VIDEO_DEV && VIDEO_V4L2 && MEDIA_CONTROLLER  	depends on HAS_DMA  	depends on OF +	depends on MEDIA_CONTROLLER_REQUEST_API  	select SUNXI_SRAM  	select VIDEOBUF2_DMA_CONTIG  	select V4L2_MEM2MEM_DEV  | 
