All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Jiang <scott.jiang.linux@gmail.com>
To: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
Cc: LMML <linux-media@vger.kernel.org>,
	adi-buildroot-devel@lists.sourceforge.net,
	LKML <linux-kernel@vger.kernel.org>,
	Mauro Carvalho Chehab <m.chehab@samsung.com>
Subject: Re: [PATCH v2 08/15] media: blackfin: bfin_capture: use vb2_ioctl_* helpers
Date: Tue, 3 Feb 2015 16:27:43 +0800	[thread overview]
Message-ID: <CAHG8p1CrBaD_Rk8tkzXg6HucQQQQNmJ-_rvEa8nUOX3QhKKGxQ@mail.gmail.com> (raw)
In-Reply-To: <1421965128-10470-9-git-send-email-prabhakar.csengg@gmail.com>

Hi Lad,

2015-01-23 6:18 GMT+08:00 Lad, Prabhakar <prabhakar.csengg@gmail.com>:
> this patch adds support to vb2_ioctl_* helpers.
>
> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
> ---
>  drivers/media/platform/blackfin/bfin_capture.c | 108 ++++++-------------------
>  1 file changed, 23 insertions(+), 85 deletions(-)
>
> diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c
> index b2eeace..04b85e3 100644
> --- a/drivers/media/platform/blackfin/bfin_capture.c
> +++ b/drivers/media/platform/blackfin/bfin_capture.c
> @@ -272,15 +272,26 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
>         struct ppi_if *ppi = bcap_dev->ppi;
>         struct bcap_buffer *buf, *tmp;
>         struct ppi_params params;
> +       dma_addr_t addr;
>         int ret;
>
>         /* enable streamon on the sub device */
>         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");
> +               bcap_dev->cur_frm = NULL;
>                 goto err;
>         }
>
> +       /* get the next frame from the dma queue */
> +       bcap_dev->cur_frm = list_entry(bcap_dev->dma_queue.next,
> +                                       struct bcap_buffer, list);
> +       /* remove buffer from the dma queue */
> +       list_del_init(&bcap_dev->cur_frm->list);
> +       addr = vb2_dma_contig_plane_dma_addr(&bcap_dev->cur_frm->vb, 0);
> +       /* update DMA address */
> +       ppi->ops->update_addr(ppi, (unsigned long)addr);
> +
>         /* set ppi params */
>         params.width = bcap_dev->fmt.width;
>         params.height = bcap_dev->fmt.height;
> @@ -320,6 +331,9 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
>                 goto err;
>         }
>
> +       /* enable ppi */
> +       ppi->ops->start(ppi);
> +
Still wrong here. You can't start ppi before request dma and irq. Also
it's not good to update dma address before request dma. Please
strictly follow the initial sequence in bcap_streamon() because the
order is important. That means you should put all functions in
bcap_start_streaming() before those in bcap_streamon().
And it seems you removed dma buffer check in bcap_streamon(). Yes, in
vb2_internal_streamon() it will check q->queued_count >=
q->min_buffers_needed to start streaming. But if the user doesn't
queue enough buffer, it will return success and set q->streaming = 1.
Is it really right here?

>         /* attach ppi DMA irq handler */
>         ret = ppi->ops->attach_irq(ppi, bcap_isr);
>         if (ret < 0) {
> @@ -334,6 +348,9 @@ static int bcap_start_streaming(struct vb2_queue *vq, unsigned int count)
>         return 0;
>
>

  reply	other threads:[~2015-02-03  8:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-22 22:18 [PATCH v2 00/15] media: blackfin: bfin_capture enhancements Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 01/15] media: blackfin: bfin_capture: drop buf_init() callback Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 02/15] media: blackfin: bfin_capture: release buffers in case start_streaming() call back fails Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 03/15] media: blackfin: bfin_capture: set min_buffers_needed Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 04/15] media: blackfin: bfin_capture: improve buf_prepare() callback Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 05/15] media: blackfin: bfin_capture: improve queue_setup() callback Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 06/15] media: blackfin: bfin_capture: use vb2_fop_mmap/poll Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 07/15] media: blackfin: bfin_capture: use v4l2_fh_open and vb2_fop_release Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 08/15] media: blackfin: bfin_capture: use vb2_ioctl_* helpers Lad, Prabhakar
2015-02-03  8:27   ` Scott Jiang [this message]
2015-02-03  8:31     ` Hans Verkuil
2015-01-22 22:18 ` [PATCH v2 09/15] media: blackfin: bfin_capture: make sure all buffers are returned on stop_streaming() callback Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 10/15] media: blackfin: bfin_capture: return -ENODATA for *std calls Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 11/15] media: blackfin: bfin_capture: return -ENODATA for *dv_timings calls Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 12/15] media: blackfin: bfin_capture: add support for vidioc_create_bufs Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 13/15] media: blackfin: bfin_capture: add support for VB2_DMABUF Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 14/15] media: blackfin: bfin_capture: add support for VIDIOC_EXPBUF Lad, Prabhakar
2015-01-22 22:18 ` [PATCH v2 15/15] media: blackfin: bfin_capture: set v4l2 buffer sequence Lad, Prabhakar
2015-01-30 15:49 ` [PATCH v2 00/15] media: blackfin: bfin_capture enhancements Lad, Prabhakar
2015-02-02 11:24   ` Hans Verkuil
2015-02-03  8:09     ` Scott Jiang
2015-02-16 11:42     ` Hans Verkuil
2015-02-18 22:49       ` Lad, Prabhakar

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=CAHG8p1CrBaD_Rk8tkzXg6HucQQQQNmJ-_rvEa8nUOX3QhKKGxQ@mail.gmail.com \
    --to=scott.jiang.linux@gmail.com \
    --cc=adi-buildroot-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=m.chehab@samsung.com \
    --cc=prabhakar.csengg@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 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.