From: Lad Prabhakar <prabhakar.csengg@gmail.com>
To: Scott Jiang <scott.jiang.linux@gmail.com>,
Hans Verkuil <hverkuil@xs4all.nl>,
adi-buildroot-devel@lists.sourceforge.net
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
LMML <linux-media@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"Lad, Prabhakar" <prabhakar.csengg@gmail.com>
Subject: [PATCH v3 02/15] media: blackfin: bfin_capture: release buffers in case start_streaming() call back fails
Date: Sat, 21 Feb 2015 18:39:48 +0000 [thread overview]
Message-ID: <1424544001-19045-3-git-send-email-prabhakar.csengg@gmail.com> (raw)
In-Reply-To: <1424544001-19045-1-git-send-email-prabhakar.csengg@gmail.com>
From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
this patch adds support to release the buffer by calling
vb2_buffer_done(), with state marked as VB2_BUF_STATE_QUEUED
if start_streaming() call back fails.
Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
---
drivers/media/platform/blackfin/bfin_capture.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c
index c6d8b95..2c720bc 100644
--- a/drivers/media/platform/blackfin/bfin_capture.c
+++ b/drivers/media/platform/blackfin/bfin_capture.c
@@ -345,6 +345,7 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
{
struct bcap_device *bcap_dev = vb2_get_drv_priv(vq);
struct ppi_if *ppi = bcap_dev->ppi;
+ struct bcap_buffer *buf, *tmp;
struct ppi_params params;
int ret;
@@ -352,7 +353,7 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
ret = v4l2_subdev_call(bcap_dev->sd, video, s_stream, 1);
if (ret && (ret != -ENOIOCTLCMD)) {
v4l2_err(&bcap_dev->v4l2_dev, "stream on failed in subdev\n");
- return ret;
+ goto err;
}
/* set ppi params */
@@ -391,7 +392,7 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
if (ret < 0) {
v4l2_err(&bcap_dev->v4l2_dev,
"Error in setting ppi params\n");
- return ret;
+ goto err;
}
/* attach ppi DMA irq handler */
@@ -399,12 +400,21 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
if (ret < 0) {
v4l2_err(&bcap_dev->v4l2_dev,
"Error in attaching interrupt handler\n");
- return ret;
+ goto err;
}
reinit_completion(&bcap_dev->comp);
bcap_dev->stop = false;
+
return 0;
+
+err:
+ list_for_each_entry_safe(buf, tmp, &bcap_dev->dma_queue, list) {
+ list_del(&buf->list);
+ vb2_buffer_done(&buf->vb, VB2_BUF_STATE_QUEUED);
+ }
+
+ return ret;
}
static void bcap_stop_streaming(struct vb2_queue *vq)
--
2.1.0
next prev parent reply other threads:[~2015-02-21 18:40 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-21 18:39 [PATCH v3 00/15] media: blackfin: bfin_capture enhancements Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 01/15] media: blackfin: bfin_capture: drop buf_init() callback Lad Prabhakar
2015-02-21 18:39 ` Lad Prabhakar [this message]
2015-02-21 18:39 ` [PATCH v3 03/15] media: blackfin: bfin_capture: set min_buffers_needed Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 04/15] media: blackfin: bfin_capture: improve buf_prepare() callback Lad Prabhakar
2015-03-03 15:21 ` Hans Verkuil
2015-02-21 18:39 ` [PATCH v3 05/15] media: blackfin: bfin_capture: improve queue_setup() callback Lad Prabhakar
2015-03-03 14:13 ` Mauro Carvalho Chehab
2015-02-21 18:39 ` [PATCH v3 06/15] media: blackfin: bfin_capture: use vb2_fop_mmap/poll Lad Prabhakar
2015-03-03 10:14 ` Hans Verkuil
2015-02-21 18:39 ` [PATCH v3 07/15] media: blackfin: bfin_capture: use v4l2_fh_open and vb2_fop_release Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 08/15] media: blackfin: bfin_capture: use vb2_ioctl_* helpers Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 09/15] media: blackfin: bfin_capture: make sure all buffers are returned on stop_streaming() callback Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 10/15] media: blackfin: bfin_capture: return -ENODATA for *std calls Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 11/15] media: blackfin: bfin_capture: return -ENODATA for *dv_timings calls Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 12/15] media: blackfin: bfin_capture: add support for vidioc_create_bufs Lad Prabhakar
2015-02-21 18:39 ` [PATCH v3 13/15] media: blackfin: bfin_capture: add support for VB2_DMABUF Lad Prabhakar
2015-02-21 18:40 ` [PATCH v3 14/15] media: blackfin: bfin_capture: add support for VIDIOC_EXPBUF Lad Prabhakar
2015-02-21 18:40 ` [PATCH v3 15/15] media: blackfin: bfin_capture: set v4l2 buffer sequence Lad Prabhakar
2015-03-02 7:57 ` [PATCH v3 00/15] media: blackfin: bfin_capture enhancements Scott Jiang
2015-03-03 8:49 ` Hans Verkuil
2015-03-03 9:30 ` Lad, Prabhakar
2015-03-03 9:39 ` Hans Verkuil
2015-03-03 9:43 ` Lad, Prabhakar
2015-03-05 9:44 ` Scott Jiang
2015-03-05 10:26 ` Hans Verkuil
2015-03-07 16:22 ` Lad, Prabhakar
2015-03-07 16:35 ` Hans Verkuil
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=1424544001-19045-3-git-send-email-prabhakar.csengg@gmail.com \
--to=prabhakar.csengg@gmail.com \
--cc=adi-buildroot-devel@lists.sourceforge.net \
--cc=hverkuil@xs4all.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@osg.samsung.com \
--cc=scott.jiang.linux@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®