All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: linux-media@vger.kernel.org, mchehab@redhat.com,
	hans.verkuil@cisco.com, pawel@osciak.com,
	kyungmin.park@samsung.com
Subject: Re: [RFC][PATCH 2/2] media: v4l2-mem2mem: return for polling if a buffer is available
Date: Tue, 07 May 2013 15:43:35 +0200	[thread overview]
Message-ID: <51890507.20501@samsung.com> (raw)
In-Reply-To: <1364798447-32224-3-git-send-email-sw0312.kim@samsung.com>

Hello,

On 4/1/2013 8:40 AM, Seung-Woo Kim wrote:
> The v4l2_m2m_poll() does not need to wait if there is already a buffer in
> done_list of source and destination queues, but current v4l2_m2m_poll() always
> waits. So done_list of each queue is checked before calling poll_wait().
>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>

Right now I have no idea how to fix this better than it has been 
proposed in your patch. I wonder what will happen if the device doesn't 
release both source and destination buffers at the same time, but this 
situation is purely hypothetical as there is no driver which does it 
such way, therefore:

Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>

Sorry for a long delay, I had to find some time to analyze the code.

> ---
>   drivers/media/v4l2-core/v4l2-mem2mem.c |    6 ++++--
>   1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c
> index da99cf7..b6f0316 100644
> --- a/drivers/media/v4l2-core/v4l2-mem2mem.c
> +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
> @@ -458,8 +458,10 @@ unsigned int v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
>   	if (m2m_ctx->m2m_dev->m2m_ops->unlock)
>   		m2m_ctx->m2m_dev->m2m_ops->unlock(m2m_ctx->priv);
>   
> -	poll_wait(file, &src_q->done_wq, wait);
> -	poll_wait(file, &dst_q->done_wq, wait);
> +	if (list_empty(&src_q->done_list))
> +		poll_wait(file, &src_q->done_wq, wait);
> +	if (list_empty(&dst_q->done_list))
> +		poll_wait(file, &dst_q->done_wq, wait);
>   
>   	if (m2m_ctx->m2m_dev->m2m_ops->lock)
>   		m2m_ctx->m2m_dev->m2m_ops->lock(m2m_ctx->priv);

Best regards
-- 
Marek Szyprowski
Samsung Poland R&D Center



  reply	other threads:[~2013-05-07 13:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-01  6:40 [RFC][PATCH 0/2] media: fix polling not to wait if a buffer is available Seung-Woo Kim
2013-04-01  6:40 ` [RFC][PATCH 1/2] media: vb2: return for polling " Seung-Woo Kim
2013-04-11 11:15   ` Marek Szyprowski
2013-04-01  6:40 ` [RFC][PATCH 2/2] media: v4l2-mem2mem: " Seung-Woo Kim
2013-05-07 13:43   ` Marek Szyprowski [this message]
2013-05-07  5:28 ` [RFC][PATCH 0/2] media: fix polling not to wait " 김승우

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=51890507.20501@samsung.com \
    --to=m.szyprowski@samsung.com \
    --cc=hans.verkuil@cisco.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@redhat.com \
    --cc=pawel@osciak.com \
    --cc=sw0312.kim@samsung.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.