From patchwork Wed Apr 21 16:10:35 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pawel Osciak X-Patchwork-Id: 3210 Return-path: Envelope-to: mchehab@infradead.org Delivery-date: Wed, 21 Apr 2010 16:10:50 +0000 Received: from bombadil.infradead.org [18.85.46.34] by pedra with IMAP (fetchmail-6.3.6) for (single-drop); Wed, 21 Apr 2010 13:15:11 -0300 (BRT) Received: from vger.kernel.org ([209.132.180.67]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1O4cVl-00022V-E7; Wed, 21 Apr 2010 16:10:49 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755920Ab0DUQKm (ORCPT + 1 other); Wed, 21 Apr 2010 12:10:42 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:11588 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755901Ab0DUQKl (ORCPT ); Wed, 21 Apr 2010 12:10:41 -0400 Received: from eu_spt1 (mailout1.w1.samsung.com [210.118.77.11]) by mailout1.w1.samsung.com (iPlanet Messaging Server 5.2 Patch 2 (built Jul 14 2004)) with ESMTP id <0L18003JUI9PCW@mailout1.w1.samsung.com> for linux-media@vger.kernel.org; Wed, 21 Apr 2010 17:10:37 +0100 (BST) Received: from linux.samsung.com ([106.116.38.10]) by spt1.w1.samsung.com (iPlanet Messaging Server 5.2 Patch 2 (built Jul 14 2004)) with ESMTPA id <0L1800IRMI9PW6@spt1.w1.samsung.com> for linux-media@vger.kernel.org; Wed, 21 Apr 2010 17:10:37 +0100 (BST) Received: from localhost.localdomain (unknown [106.116.37.23]) by linux.samsung.com (Postfix) with ESMTP id 3FDE127004C; Wed, 21 Apr 2010 18:10:07 +0200 (CEST) Date: Wed, 21 Apr 2010 18:10:35 +0200 From: Pawel Osciak Subject: [PATCH v1 2/2] v4l: vivi: adapt to out-of-order buffer dequeuing in videobuf. In-reply-to: <1271866235-14370-1-git-send-email-p.osciak@samsung.com> To: linux-media@vger.kernel.org Cc: p.osciak@samsung.com, m.szyprowski@samsung.com, kyungmin.park@samsung.com Message-id: <1271866235-14370-3-git-send-email-p.osciak@samsung.com> MIME-version: 1.0 X-Mailer: git-send-email 1.7.0 Content-type: TEXT/PLAIN Content-transfer-encoding: 7BIT References: <1271866235-14370-1-git-send-email-p.osciak@samsung.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Make vivi use new videobuf helpers for finishing processing a buffer and checking for consumers. Signed-off-by: Pawel Osciak Signed-off-by: Kyungmin Park --- drivers/media/video/vivi.c | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c index cdbe703..4a91761 100644 --- a/drivers/media/video/vivi.c +++ b/drivers/media/video/vivi.c @@ -630,13 +630,13 @@ static void vivi_thread_tick(struct vivi_fh *fh) goto unlock; } - buf = list_entry(dma_q->active.next, - struct vivi_buffer, vb.queue); - - /* Nobody is waiting on this buffer, return */ - if (!waitqueue_active(&buf->vb.done)) + if (!videobuf_has_consumers(&fh->vb_vidq)) { + dprintk(dev, 1, "No consumers\n"); goto unlock; + } + buf = list_entry(dma_q->active.next, + struct vivi_buffer, vb.queue); list_del(&buf->vb.queue); do_gettimeofday(&buf->vb.ts); @@ -645,11 +645,12 @@ static void vivi_thread_tick(struct vivi_fh *fh) vivi_fillbuff(fh, buf); dprintk(dev, 1, "filled buffer %p\n", buf); - wake_up(&buf->vb.done); - dprintk(dev, 2, "[%p/%d] wakeup\n", buf, buf->vb. i); -unlock: spin_unlock_irqrestore(&dev->slock, flags); + videobuf_buf_finish(&fh->vb_vidq, &buf->vb); return; + +unlock: + spin_unlock_irqrestore(&dev->slock, flags); } #define frames_to_ms(frames) \