All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-media@vger.kernel.org, Hans Verkuil <hans.verkuil@cisco.com>
Subject: Re: [PATCHv17 33/34] vivid: add request support
Date: Mon, 13 Aug 2018 12:11:12 -0300	[thread overview]
Message-ID: <20180813121112.6bab380a@coco.lan> (raw)
In-Reply-To: <20180804124526.46206-34-hverkuil@xs4all.nl>

Em Sat,  4 Aug 2018 14:45:25 +0200
Hans Verkuil <hverkuil@xs4all.nl> escreveu:

> From: Hans Verkuil <hans.verkuil@cisco.com>
> 
> Add support for requests to vivid.
> 
> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
> ---
>  drivers/media/platform/vivid/vivid-core.c        |  8 ++++++++
>  drivers/media/platform/vivid/vivid-kthread-cap.c | 12 ++++++++++++
>  drivers/media/platform/vivid/vivid-kthread-out.c | 12 ++++++++++++
>  drivers/media/platform/vivid/vivid-sdr-cap.c     | 16 ++++++++++++++++
>  drivers/media/platform/vivid/vivid-vbi-cap.c     | 10 ++++++++++
>  drivers/media/platform/vivid/vivid-vbi-out.c     | 10 ++++++++++
>  drivers/media/platform/vivid/vivid-vid-cap.c     | 10 ++++++++++
>  drivers/media/platform/vivid/vivid-vid-out.c     | 10 ++++++++++
>  8 files changed, 88 insertions(+)
> 
> diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c
> index 1c448529be04..3f6f5cbe1b60 100644
> --- a/drivers/media/platform/vivid/vivid-core.c
> +++ b/drivers/media/platform/vivid/vivid-core.c
> @@ -627,6 +627,13 @@ static void vivid_dev_release(struct v4l2_device *v4l2_dev)
>  	kfree(dev);
>  }
>  
> +#ifdef CONFIG_MEDIA_CONTROLLER
> +static const struct media_device_ops vivid_media_ops = {
> +	.req_validate = vb2_request_validate,
> +	.req_queue = vb2_request_queue,
> +};
> +#endif
> +
>  static int vivid_create_instance(struct platform_device *pdev, int inst)
>  {
>  	static const struct v4l2_dv_timings def_dv_timings =
> @@ -664,6 +671,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
>  	strlcpy(dev->mdev.model, VIVID_MODULE_NAME, sizeof(dev->mdev.model));
>  	dev->mdev.dev = &pdev->dev;
>  	media_device_init(&dev->mdev);
> +	dev->mdev.ops = &vivid_media_ops;
>  #endif
>  
>  	/* register v4l2_device */
> diff --git a/drivers/media/platform/vivid/vivid-kthread-cap.c b/drivers/media/platform/vivid/vivid-kthread-cap.c
> index f06003bb8e42..eebfff2126be 100644
> --- a/drivers/media/platform/vivid/vivid-kthread-cap.c
> +++ b/drivers/media/platform/vivid/vivid-kthread-cap.c
> @@ -703,6 +703,8 @@ static void vivid_thread_vid_cap_tick(struct vivid_dev *dev, int dropped_bufs)
>  		goto update_mv;
>  
>  	if (vid_cap_buf) {
> +		v4l2_ctrl_request_setup(vid_cap_buf->vb.vb2_buf.req_obj.req,
> +					&dev->ctrl_hdl_vid_cap);
>  		/* Fill buffer */
>  		vivid_fillbuff(dev, vid_cap_buf);
>  		dprintk(dev, 1, "filled buffer %d\n",
> @@ -713,6 +715,8 @@ static void vivid_thread_vid_cap_tick(struct vivid_dev *dev, int dropped_bufs)
>  			dev->fb_cap.fmt.pixelformat == dev->fmt_cap->fourcc)
>  			vivid_overlay(dev, vid_cap_buf);
>  
> +		v4l2_ctrl_request_complete(vid_cap_buf->vb.vb2_buf.req_obj.req,
> +					   &dev->ctrl_hdl_vid_cap);
>  		vb2_buffer_done(&vid_cap_buf->vb.vb2_buf, dev->dqbuf_error ?
>  				VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE);
>  		dprintk(dev, 2, "vid_cap buffer %d done\n",
> @@ -720,10 +724,14 @@ static void vivid_thread_vid_cap_tick(struct vivid_dev *dev, int dropped_bufs)
>  	}
>  
>  	if (vbi_cap_buf) {
> +		v4l2_ctrl_request_setup(vbi_cap_buf->vb.vb2_buf.req_obj.req,
> +					&dev->ctrl_hdl_vbi_cap);
>  		if (dev->stream_sliced_vbi_cap)
>  			vivid_sliced_vbi_cap_process(dev, vbi_cap_buf);
>  		else
>  			vivid_raw_vbi_cap_process(dev, vbi_cap_buf);
> +		v4l2_ctrl_request_complete(vbi_cap_buf->vb.vb2_buf.req_obj.req,
> +					   &dev->ctrl_hdl_vbi_cap);
>  		vb2_buffer_done(&vbi_cap_buf->vb.vb2_buf, dev->dqbuf_error ?
>  				VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE);
>  		dprintk(dev, 2, "vbi_cap %d done\n",
> @@ -891,6 +899,8 @@ void vivid_stop_generating_vid_cap(struct vivid_dev *dev, bool *pstreaming)
>  			buf = list_entry(dev->vid_cap_active.next,
>  					 struct vivid_buffer, list);
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vid_cap);
>  			vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
>  			dprintk(dev, 2, "vid_cap buffer %d done\n",
>  				buf->vb.vb2_buf.index);
> @@ -904,6 +914,8 @@ void vivid_stop_generating_vid_cap(struct vivid_dev *dev, bool *pstreaming)
>  			buf = list_entry(dev->vbi_cap_active.next,
>  					 struct vivid_buffer, list);
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vbi_cap);
>  			vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
>  			dprintk(dev, 2, "vbi_cap buffer %d done\n",
>  				buf->vb.vb2_buf.index);
> diff --git a/drivers/media/platform/vivid/vivid-kthread-out.c b/drivers/media/platform/vivid/vivid-kthread-out.c
> index 9981e7548019..5a14810eeb69 100644
> --- a/drivers/media/platform/vivid/vivid-kthread-out.c
> +++ b/drivers/media/platform/vivid/vivid-kthread-out.c
> @@ -75,6 +75,10 @@ static void vivid_thread_vid_out_tick(struct vivid_dev *dev)
>  		return;
>  
>  	if (vid_out_buf) {
> +		v4l2_ctrl_request_setup(vid_out_buf->vb.vb2_buf.req_obj.req,
> +					&dev->ctrl_hdl_vid_out);
> +		v4l2_ctrl_request_complete(vid_out_buf->vb.vb2_buf.req_obj.req,
> +					   &dev->ctrl_hdl_vid_out);
>  		vid_out_buf->vb.sequence = dev->vid_out_seq_count;
>  		if (dev->field_out == V4L2_FIELD_ALTERNATE) {
>  			/*
> @@ -92,6 +96,10 @@ static void vivid_thread_vid_out_tick(struct vivid_dev *dev)
>  	}
>  
>  	if (vbi_out_buf) {
> +		v4l2_ctrl_request_setup(vbi_out_buf->vb.vb2_buf.req_obj.req,
> +					&dev->ctrl_hdl_vbi_out);
> +		v4l2_ctrl_request_complete(vbi_out_buf->vb.vb2_buf.req_obj.req,
> +					   &dev->ctrl_hdl_vbi_out);
>  		if (dev->stream_sliced_vbi_out)
>  			vivid_sliced_vbi_out_process(dev, vbi_out_buf);
>  
> @@ -262,6 +270,8 @@ void vivid_stop_generating_vid_out(struct vivid_dev *dev, bool *pstreaming)
>  			buf = list_entry(dev->vid_out_active.next,
>  					 struct vivid_buffer, list);
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vid_out);
>  			vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
>  			dprintk(dev, 2, "vid_out buffer %d done\n",
>  				buf->vb.vb2_buf.index);
> @@ -275,6 +285,8 @@ void vivid_stop_generating_vid_out(struct vivid_dev *dev, bool *pstreaming)
>  			buf = list_entry(dev->vbi_out_active.next,
>  					 struct vivid_buffer, list);
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vbi_out);
>  			vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
>  			dprintk(dev, 2, "vbi_out buffer %d done\n",
>  				buf->vb.vb2_buf.index);
> diff --git a/drivers/media/platform/vivid/vivid-sdr-cap.c b/drivers/media/platform/vivid/vivid-sdr-cap.c
> index cfb7cb4d37a8..76cf8810a974 100644
> --- a/drivers/media/platform/vivid/vivid-sdr-cap.c
> +++ b/drivers/media/platform/vivid/vivid-sdr-cap.c
> @@ -102,6 +102,10 @@ static void vivid_thread_sdr_cap_tick(struct vivid_dev *dev)
>  
>  	if (sdr_cap_buf) {
>  		sdr_cap_buf->vb.sequence = dev->sdr_cap_seq_count;
> +		v4l2_ctrl_request_setup(sdr_cap_buf->vb.vb2_buf.req_obj.req,
> +					&dev->ctrl_hdl_sdr_cap);
> +		v4l2_ctrl_request_complete(sdr_cap_buf->vb.vb2_buf.req_obj.req,
> +					   &dev->ctrl_hdl_sdr_cap);
>  		vivid_sdr_cap_process(dev, sdr_cap_buf);
>  		sdr_cap_buf->vb.vb2_buf.timestamp =
>  			ktime_get_ns() + dev->time_wrap_offset;
> @@ -272,6 +276,8 @@ static int sdr_cap_start_streaming(struct vb2_queue *vq, unsigned count)
>  
>  		list_for_each_entry_safe(buf, tmp, &dev->sdr_cap_active, list) {
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_sdr_cap);
>  			vb2_buffer_done(&buf->vb.vb2_buf,
>  					VB2_BUF_STATE_QUEUED);
>  		}
> @@ -293,6 +299,8 @@ static void sdr_cap_stop_streaming(struct vb2_queue *vq)
>  		buf = list_entry(dev->sdr_cap_active.next,
>  				struct vivid_buffer, list);
>  		list_del(&buf->list);
> +		v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +					   &dev->ctrl_hdl_sdr_cap);
>  		vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
>  	}
>  
> @@ -303,12 +311,20 @@ static void sdr_cap_stop_streaming(struct vb2_queue *vq)
>  	mutex_lock(&dev->mutex);
>  }
>  
> +static void sdr_cap_buf_request_complete(struct vb2_buffer *vb)
> +{
> +	struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
> +
> +	v4l2_ctrl_request_complete(vb->req_obj.req, &dev->ctrl_hdl_sdr_cap);
> +}
> +
>  const struct vb2_ops vivid_sdr_cap_qops = {
>  	.queue_setup		= sdr_cap_queue_setup,
>  	.buf_prepare		= sdr_cap_buf_prepare,
>  	.buf_queue		= sdr_cap_buf_queue,
>  	.start_streaming	= sdr_cap_start_streaming,
>  	.stop_streaming		= sdr_cap_stop_streaming,
> +	.buf_request_complete	= sdr_cap_buf_request_complete,
>  	.wait_prepare		= vb2_ops_wait_prepare,
>  	.wait_finish		= vb2_ops_wait_finish,
>  };
> diff --git a/drivers/media/platform/vivid/vivid-vbi-cap.c b/drivers/media/platform/vivid/vivid-vbi-cap.c
> index 92a852955173..903cebeb5ce5 100644
> --- a/drivers/media/platform/vivid/vivid-vbi-cap.c
> +++ b/drivers/media/platform/vivid/vivid-vbi-cap.c
> @@ -204,6 +204,8 @@ static int vbi_cap_start_streaming(struct vb2_queue *vq, unsigned count)
>  
>  		list_for_each_entry_safe(buf, tmp, &dev->vbi_cap_active, list) {
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vbi_cap);
>  			vb2_buffer_done(&buf->vb.vb2_buf,
>  					VB2_BUF_STATE_QUEUED);
>  		}
> @@ -220,12 +222,20 @@ static void vbi_cap_stop_streaming(struct vb2_queue *vq)
>  	vivid_stop_generating_vid_cap(dev, &dev->vbi_cap_streaming);
>  }
>  
> +static void vbi_cap_buf_request_complete(struct vb2_buffer *vb)
> +{
> +	struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
> +
> +	v4l2_ctrl_request_complete(vb->req_obj.req, &dev->ctrl_hdl_vbi_cap);
> +}
> +
>  const struct vb2_ops vivid_vbi_cap_qops = {
>  	.queue_setup		= vbi_cap_queue_setup,
>  	.buf_prepare		= vbi_cap_buf_prepare,
>  	.buf_queue		= vbi_cap_buf_queue,
>  	.start_streaming	= vbi_cap_start_streaming,
>  	.stop_streaming		= vbi_cap_stop_streaming,
> +	.buf_request_complete	= vbi_cap_buf_request_complete,
>  	.wait_prepare		= vb2_ops_wait_prepare,
>  	.wait_finish		= vb2_ops_wait_finish,
>  };
> diff --git a/drivers/media/platform/vivid/vivid-vbi-out.c b/drivers/media/platform/vivid/vivid-vbi-out.c
> index 69486c130a7e..9357c07e30d6 100644
> --- a/drivers/media/platform/vivid/vivid-vbi-out.c
> +++ b/drivers/media/platform/vivid/vivid-vbi-out.c
> @@ -96,6 +96,8 @@ static int vbi_out_start_streaming(struct vb2_queue *vq, unsigned count)
>  
>  		list_for_each_entry_safe(buf, tmp, &dev->vbi_out_active, list) {
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vbi_out);
>  			vb2_buffer_done(&buf->vb.vb2_buf,
>  					VB2_BUF_STATE_QUEUED);
>  		}
> @@ -115,12 +117,20 @@ static void vbi_out_stop_streaming(struct vb2_queue *vq)
>  	dev->vbi_out_have_cc[1] = false;
>  }
>  
> +static void vbi_out_buf_request_complete(struct vb2_buffer *vb)
> +{
> +	struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
> +
> +	v4l2_ctrl_request_complete(vb->req_obj.req, &dev->ctrl_hdl_vbi_out);
> +}
> +
>  const struct vb2_ops vivid_vbi_out_qops = {
>  	.queue_setup		= vbi_out_queue_setup,
>  	.buf_prepare		= vbi_out_buf_prepare,
>  	.buf_queue		= vbi_out_buf_queue,
>  	.start_streaming	= vbi_out_start_streaming,
>  	.stop_streaming		= vbi_out_stop_streaming,
> +	.buf_request_complete	= vbi_out_buf_request_complete,
>  	.wait_prepare		= vb2_ops_wait_prepare,
>  	.wait_finish		= vb2_ops_wait_finish,
>  };
> diff --git a/drivers/media/platform/vivid/vivid-vid-cap.c b/drivers/media/platform/vivid/vivid-vid-cap.c
> index 1599159f2574..b2aad441a071 100644
> --- a/drivers/media/platform/vivid/vivid-vid-cap.c
> +++ b/drivers/media/platform/vivid/vivid-vid-cap.c
> @@ -240,6 +240,8 @@ static int vid_cap_start_streaming(struct vb2_queue *vq, unsigned count)
>  
>  		list_for_each_entry_safe(buf, tmp, &dev->vid_cap_active, list) {
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vid_cap);
>  			vb2_buffer_done(&buf->vb.vb2_buf,
>  					VB2_BUF_STATE_QUEUED);
>  		}
> @@ -257,6 +259,13 @@ static void vid_cap_stop_streaming(struct vb2_queue *vq)
>  	dev->can_loop_video = false;
>  }
>  
> +static void vid_cap_buf_request_complete(struct vb2_buffer *vb)
> +{
> +	struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
> +
> +	v4l2_ctrl_request_complete(vb->req_obj.req, &dev->ctrl_hdl_vid_cap);
> +}
> +
>  const struct vb2_ops vivid_vid_cap_qops = {
>  	.queue_setup		= vid_cap_queue_setup,
>  	.buf_prepare		= vid_cap_buf_prepare,
> @@ -264,6 +273,7 @@ const struct vb2_ops vivid_vid_cap_qops = {
>  	.buf_queue		= vid_cap_buf_queue,
>  	.start_streaming	= vid_cap_start_streaming,
>  	.stop_streaming		= vid_cap_stop_streaming,
> +	.buf_request_complete	= vid_cap_buf_request_complete,
>  	.wait_prepare		= vb2_ops_wait_prepare,
>  	.wait_finish		= vb2_ops_wait_finish,
>  };
> diff --git a/drivers/media/platform/vivid/vivid-vid-out.c b/drivers/media/platform/vivid/vivid-vid-out.c
> index 51fec66d8d45..423a67133f28 100644
> --- a/drivers/media/platform/vivid/vivid-vid-out.c
> +++ b/drivers/media/platform/vivid/vivid-vid-out.c
> @@ -162,6 +162,8 @@ static int vid_out_start_streaming(struct vb2_queue *vq, unsigned count)
>  
>  		list_for_each_entry_safe(buf, tmp, &dev->vid_out_active, list) {
>  			list_del(&buf->list);
> +			v4l2_ctrl_request_complete(buf->vb.vb2_buf.req_obj.req,
> +						   &dev->ctrl_hdl_vid_out);
>  			vb2_buffer_done(&buf->vb.vb2_buf,
>  					VB2_BUF_STATE_QUEUED);
>  		}
> @@ -179,12 +181,20 @@ static void vid_out_stop_streaming(struct vb2_queue *vq)
>  	dev->can_loop_video = false;
>  }
>  
> +static void vid_out_buf_request_complete(struct vb2_buffer *vb)
> +{
> +	struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
> +
> +	v4l2_ctrl_request_complete(vb->req_obj.req, &dev->ctrl_hdl_vid_out);
> +}
> +
>  const struct vb2_ops vivid_vid_out_qops = {
>  	.queue_setup		= vid_out_queue_setup,
>  	.buf_prepare		= vid_out_buf_prepare,
>  	.buf_queue		= vid_out_buf_queue,
>  	.start_streaming	= vid_out_start_streaming,
>  	.stop_streaming		= vid_out_stop_streaming,
> +	.buf_request_complete	= vid_out_buf_request_complete,
>  	.wait_prepare		= vb2_ops_wait_prepare,
>  	.wait_finish		= vb2_ops_wait_finish,
>  };



Thanks,
Mauro

  reply	other threads:[~2018-08-13 17:53 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-04 12:44 [PATCHv17 00/34] Request API Hans Verkuil
2018-08-04 12:44 ` [PATCHv17 01/34] Documentation: v4l: document request API Hans Verkuil
2018-08-06 23:44   ` Pavel Machek
2018-08-09 17:43   ` Mauro Carvalho Chehab
2018-08-10  7:20     ` Hans Verkuil
2018-08-14  8:21       ` Mauro Carvalho Chehab
2018-08-14  7:57     ` Hans Verkuil
2018-08-14  8:48       ` Mauro Carvalho Chehab
2018-08-14  9:51         ` Hans Verkuil
2018-08-14 12:18           ` Mauro Carvalho Chehab
2018-08-04 12:44 ` [PATCHv17 02/34] uapi/linux/media.h: add " Hans Verkuil
2018-08-09 17:53   ` Mauro Carvalho Chehab
2018-08-10  7:21     ` Hans Verkuil
2018-08-14  8:46       ` Mauro Carvalho Chehab
2018-08-14  9:57         ` Hans Verkuil
2018-08-14 12:34           ` Mauro Carvalho Chehab
2018-08-04 12:44 ` [PATCHv17 03/34] media-request: implement media requests Hans Verkuil
2018-08-09 18:37   ` Mauro Carvalho Chehab
2018-08-10  7:28     ` Hans Verkuil
2018-08-14 13:33   ` Hans Verkuil
2018-08-04 12:44 ` [PATCHv17 04/34] media: doc: Add media-request.h header to documentation build Hans Verkuil
2018-08-09 18:43   ` Mauro Carvalho Chehab
2018-08-04 12:44 ` [PATCHv17 05/34] media-request: add media_request_get_by_fd Hans Verkuil
2018-08-09 19:55   ` Mauro Carvalho Chehab
2018-08-10  7:32     ` Hans Verkuil
2018-08-14  9:00       ` Mauro Carvalho Chehab
2018-08-04 12:44 ` [PATCHv17 06/34] media-request: add media_request_object_find Hans Verkuil
2018-08-09 19:56   ` Mauro Carvalho Chehab
2018-08-04 12:44 ` [PATCHv17 07/34] v4l2-device.h: add v4l2_device_supports_requests() helper Hans Verkuil
2018-08-09 19:57   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 08/34] v4l2-dev: lock req_queue_mutex Hans Verkuil
2018-08-09 20:03   ` Mauro Carvalho Chehab
2018-08-10  7:39     ` Hans Verkuil
2018-08-14  8:09       ` Mauro Carvalho Chehab
2018-08-14 12:00     ` Hans Verkuil
2018-08-14 12:39       ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 09/34] videodev2.h: add request_fd field to v4l2_ext_controls Hans Verkuil
2018-08-09 20:04   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 10/34] v4l2-ctrls: v4l2_ctrl_add_handler: add from_other_dev Hans Verkuil
2018-08-09 20:10   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 11/34] v4l2-ctrls: prepare internal structs for request API Hans Verkuil
2018-08-09 20:16   ` Mauro Carvalho Chehab
2018-08-10  7:41     ` Hans Verkuil
2018-08-04 12:45 ` [PATCHv17 12/34] v4l2-ctrls: alloc memory for p_req Hans Verkuil
2018-08-09 20:19   ` Mauro Carvalho Chehab
2018-08-10  7:41     ` Hans Verkuil
2018-08-04 12:45 ` [PATCHv17 13/34] v4l2-ctrls: use ref in helper instead of ctrl Hans Verkuil
2018-08-09 20:22   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 14/34] v4l2-ctrls: add core request support Hans Verkuil
2018-08-13 10:55   ` Mauro Carvalho Chehab
2018-08-14  8:34     ` Hans Verkuil
2018-08-14  8:59       ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 15/34] v4l2-ctrls: support g/s_ext_ctrls for requests Hans Verkuil
2018-08-13 11:05   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 16/34] v4l2-ctrls: add v4l2_ctrl_request_hdl_find/put/ctrl_find functions Hans Verkuil
2018-08-13 11:07   ` Mauro Carvalho Chehab
2018-08-14  8:45     ` Hans Verkuil
2018-08-14  8:55       ` Mauro Carvalho Chehab
2018-08-14 10:50         ` Hans Verkuil
2018-08-04 12:45 ` [PATCHv17 17/34] vb2: store userspace data in vb2_v4l2_buffer Hans Verkuil
2018-08-13 11:15   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 18/34] davinci_vpfe: remove bogus vb2->state check Hans Verkuil
2018-08-13 11:17   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 19/34] vb2: drop VB2_BUF_STATE_PREPARED, use bool prepared/synced instead Hans Verkuil
2018-08-13 11:30   ` Mauro Carvalho Chehab
2018-08-14  8:58     ` Hans Verkuil
2018-08-14  9:06       ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 20/34] videodev2.h: Add request_fd field to v4l2_buffer Hans Verkuil
2018-08-13 11:41   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 21/34] vb2: add init_buffer buffer op Hans Verkuil
2018-08-13 11:56   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 22/34] videobuf2-core: embed media_request_object Hans Verkuil
2018-08-13 11:58   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 23/34] videobuf2-core: integrate with media requests Hans Verkuil
2018-08-13 12:09   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 24/34] videobuf2-v4l2: " Hans Verkuil
2018-08-13 14:30   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 25/34] videobuf2-core: add request helper functions Hans Verkuil
2018-08-13 14:50   ` Mauro Carvalho Chehab
2018-08-14  7:22     ` Hans Verkuil
2018-08-04 12:45 ` [PATCHv17 26/34] videobuf2-v4l2: add vb2_request_queue/validate helpers Hans Verkuil
2018-08-13 14:53   ` Mauro Carvalho Chehab
2018-08-14  7:19     ` Hans Verkuil
2018-08-14  7:49       ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 27/34] videobuf2-core: add uses_requests/qbuf flags Hans Verkuil
2018-08-13 14:55   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 28/34] videobuf2-v4l2: refuse qbuf if queue uses requests or vv Hans Verkuil
2018-08-13 14:56   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 29/34] v4l2-mem2mem: add vb2_m2m_request_queue Hans Verkuil
2018-08-13 15:02   ` Mauro Carvalho Chehab
2018-08-14  7:26     ` Hans Verkuil
2018-08-04 12:45 ` [PATCHv17 30/34] vim2m: use workqueue Hans Verkuil
2018-08-13 15:05   ` Mauro Carvalho Chehab
2018-08-14  7:28     ` Hans Verkuil
2018-08-14  7:41       ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 31/34] vim2m: support requests Hans Verkuil
2018-08-06 21:02   ` Ezequiel Garcia
2018-08-13 15:08   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 32/34] vivid: add mc Hans Verkuil
2018-08-13 15:09   ` Mauro Carvalho Chehab
2018-08-04 12:45 ` [PATCHv17 33/34] vivid: add request support Hans Verkuil
2018-08-13 15:11   ` Mauro Carvalho Chehab [this message]
2018-08-04 12:45 ` [PATCHv17 34/34] RFC: media-requests: add debugfs node Hans Verkuil
2018-08-13 15:15   ` Mauro Carvalho Chehab
2018-08-14  7:33     ` Hans Verkuil
2018-08-14  7:43       ` Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180813121112.6bab380a@coco.lan \
    --to=mchehab+samsung@kernel.org \
    --cc=hans.verkuil@cisco.com \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.