diff mbox

[v3,04/15] media: blackfin: bfin_capture: improve buf_prepare() callback

Message ID 1424544001-19045-5-git-send-email-prabhakar.csengg@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lad, Prabhakar Feb. 21, 2015, 6:39 p.m. UTC
From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>

this patch improves the buf_prepare() callback.

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
---
 drivers/media/platform/blackfin/bfin_capture.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

Comments

Hans Verkuil March 3, 2015, 3:21 p.m. UTC | #1
On 02/21/2015 07:39 PM, Lad Prabhakar wrote:
> From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
> 
> this patch improves the buf_prepare() callback.
> 
> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
> ---
>  drivers/media/platform/blackfin/bfin_capture.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c
> index 332f8c9..8f62a84 100644
> --- a/drivers/media/platform/blackfin/bfin_capture.c
> +++ b/drivers/media/platform/blackfin/bfin_capture.c
> @@ -305,16 +305,12 @@ static int bcap_queue_setup(struct vb2_queue *vq,
>  static int bcap_buffer_prepare(struct vb2_buffer *vb)
>  {
>  	struct bcap_device *bcap_dev = vb2_get_drv_priv(vb->vb2_queue);
> -	struct bcap_buffer *buf = to_bcap_vb(vb);
> -	unsigned long size;
>  
> -	size = bcap_dev->fmt.sizeimage;
> -	if (vb2_plane_size(vb, 0) < size) {
> -		v4l2_err(&bcap_dev->v4l2_dev, "buffer too small (%lu < %lu)\n",
> -				vb2_plane_size(vb, 0), size);

I would keep this error. Since you need to update patches 4 & 5 anyway to
improve the commit message, it's probably good to reinstate this.

Regards,

	Hans

> +	vb2_set_plane_payload(vb, 0, bcap_dev->fmt.sizeimage);
> +	if (vb2_get_plane_payload(vb, 0) > vb2_plane_size(vb, 0))
>  		return -EINVAL;
> -	}
> -	vb2_set_plane_payload(&buf->vb, 0, size);
> +
> +	vb->v4l2_buf.field = bcap_dev->fmt.field;
>  
>  	return 0;
>  }
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c
index 332f8c9..8f62a84 100644
--- a/drivers/media/platform/blackfin/bfin_capture.c
+++ b/drivers/media/platform/blackfin/bfin_capture.c
@@ -305,16 +305,12 @@  static int bcap_queue_setup(struct vb2_queue *vq,
 static int bcap_buffer_prepare(struct vb2_buffer *vb)
 {
 	struct bcap_device *bcap_dev = vb2_get_drv_priv(vb->vb2_queue);
-	struct bcap_buffer *buf = to_bcap_vb(vb);
-	unsigned long size;
 
-	size = bcap_dev->fmt.sizeimage;
-	if (vb2_plane_size(vb, 0) < size) {
-		v4l2_err(&bcap_dev->v4l2_dev, "buffer too small (%lu < %lu)\n",
-				vb2_plane_size(vb, 0), size);
+	vb2_set_plane_payload(vb, 0, bcap_dev->fmt.sizeimage);
+	if (vb2_get_plane_payload(vb, 0) > vb2_plane_size(vb, 0))
 		return -EINVAL;
-	}
-	vb2_set_plane_payload(&buf->vb, 0, size);
+
+	vb->v4l2_buf.field = bcap_dev->fmt.field;
 
 	return 0;
 }