Message ID | 1419072462-3168-6-git-send-email-prabhakar.csengg@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2014-12-20 18:47 GMT+08:00 Lad, Prabhakar <prabhakar.csengg@gmail.com>: > this patch improves the queue_setup() callback. > > Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> > --- > drivers/media/platform/blackfin/bfin_capture.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c > index 8bd94a1..76d42bb 100644 > --- a/drivers/media/platform/blackfin/bfin_capture.c > +++ b/drivers/media/platform/blackfin/bfin_capture.c > @@ -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 < 3) > + *nbuffers = 3 - vq->num_buffers; It seems it changes the minimum buffers from 2 to 3? > > *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; > -- 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
On Wed, Jan 21, 2015 at 10:01 AM, Scott Jiang <scott.jiang.linux@gmail.com> wrote: > 2014-12-20 18:47 GMT+08:00 Lad, Prabhakar <prabhakar.csengg@gmail.com>: >> this patch improves the queue_setup() callback. >> >> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> >> --- >> drivers/media/platform/blackfin/bfin_capture.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c >> index 8bd94a1..76d42bb 100644 >> --- a/drivers/media/platform/blackfin/bfin_capture.c >> +++ b/drivers/media/platform/blackfin/bfin_capture.c >> @@ -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 < 3) >> + *nbuffers = 3 - vq->num_buffers; > > It seems it changes the minimum buffers from 2 to 3? > will replace it with, if (vq->num_buffers + *nbuffers < 2) *nbuffers = 2; Thanks, --Prabhakar Lad -- 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 --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c index 8bd94a1..76d42bb 100644 --- a/drivers/media/platform/blackfin/bfin_capture.c +++ b/drivers/media/platform/blackfin/bfin_capture.c @@ -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 < 3) + *nbuffers = 3 - vq->num_buffers; *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;
this patch improves the queue_setup() callback. Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> --- drivers/media/platform/blackfin/bfin_capture.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)