From patchwork Tue May 21 03:47:30 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Seung-Woo Kim X-Patchwork-Id: 18472 X-Patchwork-Delegate: kamil@wypas.org Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1UedYA-0006xM-7o; Tue, 21 May 2013 05:47:46 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.72/mailfrontend-7) with esmtp id 1UedY8-0004tz-0e; Tue, 21 May 2013 05:47:46 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755007Ab3EUDrk (ORCPT + 1 other); Mon, 20 May 2013 23:47:40 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:34906 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753889Ab3EUDrd (ORCPT ); Mon, 20 May 2013 23:47:33 -0400 Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MN400558QINUN60@mailout1.samsung.com> for linux-media@vger.kernel.org; Tue, 21 May 2013 12:47:30 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.112]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id FA.66.29708.25EEA915; Tue, 21 May 2013 12:47:30 +0900 (KST) X-AuditID: cbfee690-b7f6f6d00000740c-47-519aee52fc94 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 75.68.17674.25EEA915; Tue, 21 May 2013 12:47:30 +0900 (KST) Received: from localhost.localdomain ([10.90.8.56]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MN400AB6QJ38K21@mmp2.samsung.com>; Tue, 21 May 2013 12:47:29 +0900 (KST) From: Seung-Woo Kim To: linux-media@vger.kernel.org, mchehab@redhat.com Cc: m.szyprowski@samsung.com, hans.verkuil@cisco.com, pawel@osciak.com, kyungmin.park@samsung.com, sw0312.kim@samsung.com Subject: [RESEND][PATCH 2/2] media: v4l2-mem2mem: return for polling if a buffer is available Date: Tue, 21 May 2013 12:47:30 +0900 Message-id: <1369108050-13522-3-git-send-email-sw0312.kim@samsung.com> X-Mailer: git-send-email 1.7.4.1 In-reply-to: <1369108050-13522-1-git-send-email-sw0312.kim@samsung.com> References: <1369108050-13522-1-git-send-email-sw0312.kim@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKLMWRmVeSWpSXmKPExsWyRsSkQDfo3axAg7+HBCyW/NzFZHG26Q27 Rc+GrawWa4/cZbfYc/Qwu8WUtz/ZLWZMfsnmwO4x5fdGVo/Hv16yebzfd5XNo2/LKkaPz5vk AlijuGxSUnMyy1KL9O0SuDL2btjIUnCOs2LrvRbGBsZVHF2MnBwSAiYSszsnsEDYYhIX7q1n 62Lk4hASWMoosav9BiNMUdPqLYwQiemMEnvWfGCHcJqZJKatO8wGUsUmoCOxf8lvVhBbRMBY YnNfJ9BYDg5mgWqJWwvUQUxhgXiJw78kQCpYBFQlLq64BVbNK+Am0bf8FhvELgWJBffegtmc Au4SD+ZPZwexhYBqrv1bBHachMA8dom5fcuYIAYJSHybfAhslYSArMSmA8wQcyQlDq64wTKB UXgBI8MqRtHUguSC4qT0IhO94sTc4tK8dL3k/NxNjMAgP/3v2YQdjPcOWB9iTAYaN5FZSjQ5 HxgleSXxhsZmRhamJqbGRuaWZqQJK4nzqrdYBwoJpCeWpGanphakFsUXleakFh9iZOLglGpg dJ5ce9Mt96xAql/+1g22/cuLP9/PmLQkxGBpwfa2Y57nZySvmXk68L1glsSL+hal4Jj7OX5V ex5OWntT+fodXf4SAzbNRYXNzyueHE1T3r36xprkY9ZLjyc+TZD7s6h1alL31Ed+j2bP7Ppm qlNRdmSa5a2rfx4eWx/XruohbiTRcdNm7q5TG5VYijMSDbWYi4oTASb+ajyIAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEIsWRmVeSWpSXmKPExsVy+t9jQd2gd7MCDf6857RY8nMXk8XZpjfs Fj0btrJarD1yl91iz9HD7BZT3v5kt5gx+SWbA7vHlN8bWT0e/3rJ5vF+31U2j74tqxg9Pm+S C2CNamC0yUhNTEktUkjNS85PycxLt1XyDo53jjc1MzDUNbS0MFdSyEvMTbVVcvEJ0HXLzAG6 Q0mhLDGnFCgUkFhcrKRvh2lCaIibrgVMY4Sub0gQXI+RARpIWMOYsXfDRpaCc5wVW++1MDYw ruLoYuTkkBAwkWhavYURwhaTuHBvPVsXIxeHkMB0Rok9az6wQzjNTBLT1h1mA6liE9CR2L/k NyuILSJgLLG5r5Oli5GDg1mgWuLWAnUQU1ggXuLwLwmQChYBVYmLK26BVfMKuEn0Lb/FBrFL QWLBvbdgNqeAu8SD+dPZQWwhoJpr/xaxTWDkXcDIsIpRNLUguaA4KT3XSK84Mbe4NC9dLzk/ dxMjOIaeSe9gXNVgcYhRgINRiYdXwHBWoBBrYllxZe4hRgkOZiUR3u/NQCHelMTKqtSi/Pii 0pzU4kOMyUBXTWSWEk3OB8Z3Xkm8obGJmZGlkbmhhZGxOWnCSuK8B1utA4UE0hNLUrNTUwtS i2C2MHFwSjUwLivr+HzXRY3TQHht0K+1M1TkZJR0f0zSY3u7eqmZh1l0C0tkRtLV0vuSDccf FUW6rw5V3nxomv3mGY+28LBVW2TdvrXtaTz7pPaZv/hCW993nGjepuKX4s/kVrtWy+r9x2Or ZEq4Gmbu+u918PjTHTYvIrKvf3gqdOuc8YSLLpHPhMTyShO2KLEUZyQaajEXFScCAFCJo2Tl AgAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2013.5.21.34226 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1300_1399 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' 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 Acked-by: Marek Szyprowski --- 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 66f599f..9ac39b5 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -486,8 +486,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);