From patchwork Mon Apr 1 06:40:47 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: 17720 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1UMYQC-0001SP-DP; Mon, 01 Apr 2013 08:40:48 +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.75/mailfrontend-2) with esmtp id 1UMYQB-0007mV-HE; Mon, 01 Apr 2013 08:40:48 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752434Ab3DAGkp (ORCPT + 1 other); Mon, 1 Apr 2013 02:40:45 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:11566 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751856Ab3DAGkm (ORCPT ); Mon, 1 Apr 2013 02:40:42 -0400 Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MKK00DKSD7TVEM0@mailout3.samsung.com> for linux-media@vger.kernel.org; Mon, 01 Apr 2013 15:40:41 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [203.254.230.43]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 83.7E.07735.9EB29515; Mon, 01 Apr 2013 15:40:41 +0900 (KST) X-AuditID: cbfee68e-b7f946d000001e37-cf-51592be9274e Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 52.DD.17838.8EB29515; Mon, 01 Apr 2013 15:40:40 +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 <0MKK009SND7R8G00@mmp2.samsung.com>; Mon, 01 Apr 2013 15:40:40 +0900 (KST) From: Seung-Woo Kim To: linux-media@vger.kernel.org Cc: mchehab@redhat.com, m.szyprowski@samsung.com, hans.verkuil@cisco.com, pawel@osciak.com, kyungmin.park@samsung.com, sw0312.kim@samsung.com Subject: [RFC][PATCH 2/2] media: v4l2-mem2mem: return for polling if a buffer is available Date: Mon, 01 Apr 2013 15:40:47 +0900 Message-id: <1364798447-32224-3-git-send-email-sw0312.kim@samsung.com> X-Mailer: git-send-email 1.7.4.1 In-reply-to: <1364798447-32224-1-git-send-email-sw0312.kim@samsung.com> References: <1364798447-32224-1-git-send-email-sw0312.kim@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRmVeSWpSXmKPExsVy+t8zbd2X2pGBBvNWsVgs+bmLyeJs0xt2 i54NW1kt1h65y26x5+hhdospb3+yW8yY/JLNgd1jyu+NrB6Pf71k83i/7yqbR9+WVYwenzfJ BbBGcdmkpOZklqUW6dslcGXM+fCArWAaZ8WzW/kNjD/Yuxg5OSQETCT2LpnABGGLSVy4t56t i5GLQ0hgGaPEsXWHmWGK5mzbzwyRmM4osWXlWRYIp5lJ4tTaPywgVWwCOhL7l/xmBbFFBOQl nvTeABvFLNDPKNF9+hLYDmGBGInVt6eDNbAIqEpMvLQbrIFXwE3ix/LJrBDrFCQW3HvLBmJz CrhLfO06zQhiCwHVtP7YBbZZQmAeu8TG6WsZIQYJSHybfAgowQGUkJXYdADqbEmJgytusExg FF7AyLCKUTS1ILmgOCm9yEivODG3uDQvXS85P3cTIyTQ+3Yw3jxgfYgxGWjcRGYp0eR8YKTk lcQbGpsZWZiamBobmVuakSasJM6r1mIdKCSQnliSmp2aWpBaFF9UmpNafIiRiYNTqoFRN8zZ e5618Hp2pq0zr19ydVyZ+GtuSp+afMgdVt4qgUDe1V583nfi8/KWTfrNXjJPXeSbUeflrrk+ L3Oz7M7OWxqd4W23tuncsvPSks37TJaycelEztC/6DYrNc+kasXd2DM7zf5MaJ1x+M76unu6 Z7dabz7AyPiBe9NigZ6y4+onGVWqy3YosRRnJBpqMRcVJwIA0d/wnYoCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCIsWRmVeSWpSXmKPExsVy+t9jQd0X2pGBBsuO2lgs+bmLyeJs0xt2 i54NW1kt1h65y26x5+hhdospb3+yW8yY/JLNgd1jyu+NrB6Pf71k83i/7yqbR9+WVYwenzfJ BbBGNTDaZKQmpqQWKaTmJeenZOal2yp5B8c7x5uaGRjqGlpamCsp5CXmptoqufgE6Lpl5gDd oaRQlphTChQKSCwuVtK3wzQhNMRN1wKmMULXNyQIrsfIAA0krGPMmPPhAVvBNM6KZ7fyGxh/ sHcxcnJICJhIzNm2nxnCFpO4cG89WxcjF4eQwHRGiS0rz7JAOM1MEqfW/mEBqWIT0JHYv+Q3 K4gtIiAv8aT3BlgHs0A/o0T36UtMIAlhgRiJ1bengzWwCKhKTLy0G6yBV8BN4sfyyawQ6xQk Ftx7ywZicwq4S3ztOs0IYgsB1bT+2MUygZF3ASPDKkbR1ILkguKk9FxDveLE3OLSvHS95Pzc TYzgOHomtYNxZYPFIUYBDkYlHt6ICxGBQqyJZcWVuYcYJTiYlUR4fb4BhXhTEiurUovy44tK c1KLDzEmA101kVlKNDkfGON5JfGGxiZmRpZGZsYm5sbGpAkrifMeaLUOFBJITyxJzU5NLUgt gtnCxMEp1cBY3cZinPfyyfSc7Q4HvY2S9rasPVenKhr+VHbDBgaWN3P/MP/xkslf2Xd3yudw 3geTTa57ZV4pE7O+H8LiW9A3qzB5TuyTlUmV86+vF9Iu6rhVX9z3aOO8s0t2rWp3EF5meEz8 85NsA5erv9JtY8xm/s54FawzaanU2ucWZxw56l0/PNt7TdZEiaU4I9FQi7moOBEA9YD+fOcC AAA= 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: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2013.4.1.63328 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 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);