Commit f3140022 authored by Lad, Prabhakar's avatar Lad, Prabhakar Committed by Mauro Carvalho Chehab

[media] media: blackfin: bfin_capture: improve queue_setup() callback

This patch does the following:
a: returns -EINVAL in case format image size is less
   then current image size.
b: assigns nbuffers to two in case the total of vq->num_buffers
   and nbuffers is less then the number of buffers required by driver.
c: sets the sizes[0] of plane according to the fmt passed or which is
   being set in the device.
Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
Tested-by: default avatarScott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent cd3c38ef
......@@ -44,7 +44,6 @@
#include <media/blackfin/ppi.h>
#define CAPTURE_DRV_NAME "bfin_capture"
#define BCAP_MIN_NUM_BUF 2
struct bcap_format {
char *desc;
......@@ -292,11 +291,14 @@ static int bcap_queue_setup(struct vb2_queue *vq,
{
struct bcap_device *bcap_dev = vb2_get_drv_priv(vq);
if (*nbuffers < BCAP_MIN_NUM_BUF)
*nbuffers = BCAP_MIN_NUM_BUF;
if (fmt && fmt->fmt.pix.sizeimage < bcap_dev->fmt.sizeimage)
return -EINVAL;
if (vq->num_buffers + *nbuffers < 2)
*nbuffers = 2;
*nplanes = 1;
sizes[0] = bcap_dev->fmt.sizeimage;
sizes[0] = fmt ? fmt->fmt.pix.sizeimage : bcap_dev->fmt.sizeimage;
alloc_ctxs[0] = bcap_dev->alloc_ctx;
return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment