From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE0EDC43381 for ; Sun, 17 Feb 2019 02:49:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 83EA9218AC for ; Sun, 17 Feb 2019 02:49:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="SsPcV9nU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729767AbfBQCtG (ORCPT ); Sat, 16 Feb 2019 21:49:06 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:45166 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725799AbfBQCtF (ORCPT ); Sat, 16 Feb 2019 21:49:05 -0500 Received: from pendragon.bb.dnainternet.fi (dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AD2251232; Sun, 17 Feb 2019 03:49:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1550371741; bh=nWW71y0mrgdLfmDZXM1H53hadYDw2j10UFMyD5Fj6j0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SsPcV9nUqLyVU8wHp9DtYFUAEfNlixM54iJTjYBs8/faKUzWdjiyNs+3vywJ7JMfD ncnrPe8pJua1BhWoBypjAf3Ob3HjhOAl17cj8rjIJlo8hqgPnyJrlVjB1x/P0HgbBS n9pmTHScJPoX//uZdECh5RT0OhekXsd2XNEJOO1Q= From: Laurent Pinchart To: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: Kieran Bingham Subject: [PATCH v4 5/7] media: vsp1: Refactor vsp1_video_complete_buffer() for later reuse Date: Sun, 17 Feb 2019 04:48:50 +0200 Message-Id: <20190217024852.23328-6-laurent.pinchart+renesas@ideasonboard.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190217024852.23328-1-laurent.pinchart+renesas@ideasonboard.com> References: <20190217024852.23328-1-laurent.pinchart+renesas@ideasonboard.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org The vsp1_video_complete_buffer() function completes the current buffer and returns a pointer to the next buffer. Split the code that completes the buffer to a separate function for later reuse, and rename vsp1_video_complete_buffer() to vsp1_video_complete_next_buffer(). Signed-off-by: Laurent Pinchart --- drivers/media/platform/vsp1/vsp1_video.c | 35 ++++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c index 328d686189be..cfbab16c4820 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c @@ -300,8 +300,22 @@ static int vsp1_video_pipeline_setup_partitions(struct vsp1_pipeline *pipe) * Pipeline Management */ +static void vsp1_video_complete_buffer(struct vsp1_video *video, + struct vsp1_vb2_buffer *buffer) +{ + struct vsp1_pipeline *pipe = video->rwpf->entity.pipe; + unsigned int i; + + buffer->buf.sequence = pipe->sequence; + buffer->buf.vb2_buf.timestamp = ktime_get_ns(); + for (i = 0; i < buffer->buf.vb2_buf.num_planes; ++i) + vb2_set_plane_payload(&buffer->buf.vb2_buf, i, + vb2_plane_size(&buffer->buf.vb2_buf, i)); + vb2_buffer_done(&buffer->buf.vb2_buf, VB2_BUF_STATE_DONE); +} + /* - * vsp1_video_complete_buffer - Complete the current buffer + * vsp1_video_complete_next_buffer - Complete the current buffer * @video: the video node * * This function completes the current buffer by filling its sequence number, @@ -310,13 +324,11 @@ static int vsp1_video_pipeline_setup_partitions(struct vsp1_pipeline *pipe) * Return the next queued buffer or NULL if the queue is empty. */ static struct vsp1_vb2_buffer * -vsp1_video_complete_buffer(struct vsp1_video *video) +vsp1_video_complete_next_buffer(struct vsp1_video *video) { - struct vsp1_pipeline *pipe = video->rwpf->entity.pipe; - struct vsp1_vb2_buffer *next = NULL; + struct vsp1_vb2_buffer *next; struct vsp1_vb2_buffer *done; unsigned long flags; - unsigned int i; spin_lock_irqsave(&video->irqlock, flags); @@ -327,21 +339,14 @@ vsp1_video_complete_buffer(struct vsp1_video *video) done = list_first_entry(&video->irqqueue, struct vsp1_vb2_buffer, queue); - list_del(&done->queue); - if (!list_empty(&video->irqqueue)) - next = list_first_entry(&video->irqqueue, + next = list_first_entry_or_null(&video->irqqueue, struct vsp1_vb2_buffer, queue); spin_unlock_irqrestore(&video->irqlock, flags); - done->buf.sequence = pipe->sequence; - done->buf.vb2_buf.timestamp = ktime_get_ns(); - for (i = 0; i < done->buf.vb2_buf.num_planes; ++i) - vb2_set_plane_payload(&done->buf.vb2_buf, i, - vb2_plane_size(&done->buf.vb2_buf, i)); - vb2_buffer_done(&done->buf.vb2_buf, VB2_BUF_STATE_DONE); + vsp1_video_complete_buffer(video, done); return next; } @@ -352,7 +357,7 @@ static void vsp1_video_frame_end(struct vsp1_pipeline *pipe, struct vsp1_video *video = rwpf->video; struct vsp1_vb2_buffer *buf; - buf = vsp1_video_complete_buffer(video); + buf = vsp1_video_complete_next_buffer(video); if (buf == NULL) return; -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v4 5/7] media: vsp1: Refactor vsp1_video_complete_buffer() for later reuse Date: Sun, 17 Feb 2019 04:48:50 +0200 Message-ID: <20190217024852.23328-6-laurent.pinchart+renesas@ideasonboard.com> References: <20190217024852.23328-1-laurent.pinchart+renesas@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 49D296E2AA for ; Sun, 17 Feb 2019 02:49:06 +0000 (UTC) In-Reply-To: <20190217024852.23328-1-laurent.pinchart+renesas@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: Kieran Bingham List-Id: dri-devel@lists.freedesktop.org VGhlIHZzcDFfdmlkZW9fY29tcGxldGVfYnVmZmVyKCkgZnVuY3Rpb24gY29tcGxldGVzIHRoZSBj dXJyZW50IGJ1ZmZlcgphbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5leHQgYnVmZmVyLiBT cGxpdCB0aGUgY29kZSB0aGF0IGNvbXBsZXRlcwp0aGUgYnVmZmVyIHRvIGEgc2VwYXJhdGUgZnVu Y3Rpb24gZm9yIGxhdGVyIHJldXNlLCBhbmQgcmVuYW1lCnZzcDFfdmlkZW9fY29tcGxldGVfYnVm ZmVyKCkgdG8gdnNwMV92aWRlb19jb21wbGV0ZV9uZXh0X2J1ZmZlcigpLgoKU2lnbmVkLW9mZi1i eTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydCtyZW5lc2FzQGlkZWFzb25ib2Fy ZC5jb20+Ci0tLQogZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfdmlkZW8uYyB8IDM1 ICsrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMo KyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v dnNwMS92c3AxX3ZpZGVvLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV92aWRl by5jCmluZGV4IDMyOGQ2ODYxODliZS4uY2ZiYWIxNmM0ODIwIDEwMDY0NAotLS0gYS9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV92aWRlby5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vdnNwMS92c3AxX3ZpZGVvLmMKQEAgLTMwMCw4ICszMDAsMjIgQEAgc3RhdGljIGludCB2 c3AxX3ZpZGVvX3BpcGVsaW5lX3NldHVwX3BhcnRpdGlvbnMoc3RydWN0IHZzcDFfcGlwZWxpbmUg KnBpcGUpCiAgKiBQaXBlbGluZSBNYW5hZ2VtZW50CiAgKi8KIAorc3RhdGljIHZvaWQgdnNwMV92 aWRlb19jb21wbGV0ZV9idWZmZXIoc3RydWN0IHZzcDFfdmlkZW8gKnZpZGVvLAorCQkJCSAgICAg ICBzdHJ1Y3QgdnNwMV92YjJfYnVmZmVyICpidWZmZXIpCit7CisJc3RydWN0IHZzcDFfcGlwZWxp bmUgKnBpcGUgPSB2aWRlby0+cndwZi0+ZW50aXR5LnBpcGU7CisJdW5zaWduZWQgaW50IGk7CisK KwlidWZmZXItPmJ1Zi5zZXF1ZW5jZSA9IHBpcGUtPnNlcXVlbmNlOworCWJ1ZmZlci0+YnVmLnZi Ml9idWYudGltZXN0YW1wID0ga3RpbWVfZ2V0X25zKCk7CisJZm9yIChpID0gMDsgaSA8IGJ1ZmZl ci0+YnVmLnZiMl9idWYubnVtX3BsYW5lczsgKytpKQorCQl2YjJfc2V0X3BsYW5lX3BheWxvYWQo JmJ1ZmZlci0+YnVmLnZiMl9idWYsIGksCisJCQkJICAgICAgdmIyX3BsYW5lX3NpemUoJmJ1ZmZl ci0+YnVmLnZiMl9idWYsIGkpKTsKKwl2YjJfYnVmZmVyX2RvbmUoJmJ1ZmZlci0+YnVmLnZiMl9i dWYsIFZCMl9CVUZfU1RBVEVfRE9ORSk7Cit9CisKIC8qCi0gKiB2c3AxX3ZpZGVvX2NvbXBsZXRl X2J1ZmZlciAtIENvbXBsZXRlIHRoZSBjdXJyZW50IGJ1ZmZlcgorICogdnNwMV92aWRlb19jb21w bGV0ZV9uZXh0X2J1ZmZlciAtIENvbXBsZXRlIHRoZSBjdXJyZW50IGJ1ZmZlcgogICogQHZpZGVv OiB0aGUgdmlkZW8gbm9kZQogICoKICAqIFRoaXMgZnVuY3Rpb24gY29tcGxldGVzIHRoZSBjdXJy ZW50IGJ1ZmZlciBieSBmaWxsaW5nIGl0cyBzZXF1ZW5jZSBudW1iZXIsCkBAIC0zMTAsMTMgKzMy NCwxMSBAQCBzdGF0aWMgaW50IHZzcDFfdmlkZW9fcGlwZWxpbmVfc2V0dXBfcGFydGl0aW9ucyhz dHJ1Y3QgdnNwMV9waXBlbGluZSAqcGlwZSkKICAqIFJldHVybiB0aGUgbmV4dCBxdWV1ZWQgYnVm ZmVyIG9yIE5VTEwgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5LgogICovCiBzdGF0aWMgc3RydWN0IHZz cDFfdmIyX2J1ZmZlciAqCi12c3AxX3ZpZGVvX2NvbXBsZXRlX2J1ZmZlcihzdHJ1Y3QgdnNwMV92 aWRlbyAqdmlkZW8pCit2c3AxX3ZpZGVvX2NvbXBsZXRlX25leHRfYnVmZmVyKHN0cnVjdCB2c3Ax X3ZpZGVvICp2aWRlbykKIHsKLQlzdHJ1Y3QgdnNwMV9waXBlbGluZSAqcGlwZSA9IHZpZGVvLT5y d3BmLT5lbnRpdHkucGlwZTsKLQlzdHJ1Y3QgdnNwMV92YjJfYnVmZmVyICpuZXh0ID0gTlVMTDsK KwlzdHJ1Y3QgdnNwMV92YjJfYnVmZmVyICpuZXh0OwogCXN0cnVjdCB2c3AxX3ZiMl9idWZmZXIg KmRvbmU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBpbnQgaTsKIAogCXNwaW5f bG9ja19pcnFzYXZlKCZ2aWRlby0+aXJxbG9jaywgZmxhZ3MpOwogCkBAIC0zMjcsMjEgKzMzOSwx NCBAQCB2c3AxX3ZpZGVvX2NvbXBsZXRlX2J1ZmZlcihzdHJ1Y3QgdnNwMV92aWRlbyAqdmlkZW8p CiAKIAlkb25lID0gbGlzdF9maXJzdF9lbnRyeSgmdmlkZW8tPmlycXF1ZXVlLAogCQkJCXN0cnVj dCB2c3AxX3ZiMl9idWZmZXIsIHF1ZXVlKTsKLQogCWxpc3RfZGVsKCZkb25lLT5xdWV1ZSk7CiAK LQlpZiAoIWxpc3RfZW1wdHkoJnZpZGVvLT5pcnFxdWV1ZSkpCi0JCW5leHQgPSBsaXN0X2ZpcnN0 X2VudHJ5KCZ2aWRlby0+aXJxcXVldWUsCisJbmV4dCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVs bCgmdmlkZW8tPmlycXF1ZXVlLAogCQkJCQlzdHJ1Y3QgdnNwMV92YjJfYnVmZmVyLCBxdWV1ZSk7 CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2aWRlby0+aXJxbG9jaywgZmxhZ3MpOwogCi0J ZG9uZS0+YnVmLnNlcXVlbmNlID0gcGlwZS0+c2VxdWVuY2U7Ci0JZG9uZS0+YnVmLnZiMl9idWYu dGltZXN0YW1wID0ga3RpbWVfZ2V0X25zKCk7Ci0JZm9yIChpID0gMDsgaSA8IGRvbmUtPmJ1Zi52 YjJfYnVmLm51bV9wbGFuZXM7ICsraSkKLQkJdmIyX3NldF9wbGFuZV9wYXlsb2FkKCZkb25lLT5i dWYudmIyX2J1ZiwgaSwKLQkJCQkgICAgICB2YjJfcGxhbmVfc2l6ZSgmZG9uZS0+YnVmLnZiMl9i dWYsIGkpKTsKLQl2YjJfYnVmZmVyX2RvbmUoJmRvbmUtPmJ1Zi52YjJfYnVmLCBWQjJfQlVGX1NU QVRFX0RPTkUpOworCXZzcDFfdmlkZW9fY29tcGxldGVfYnVmZmVyKHZpZGVvLCBkb25lKTsKIAog CXJldHVybiBuZXh0OwogfQpAQCAtMzUyLDcgKzM1Nyw3IEBAIHN0YXRpYyB2b2lkIHZzcDFfdmlk ZW9fZnJhbWVfZW5kKHN0cnVjdCB2c3AxX3BpcGVsaW5lICpwaXBlLAogCXN0cnVjdCB2c3AxX3Zp ZGVvICp2aWRlbyA9IHJ3cGYtPnZpZGVvOwogCXN0cnVjdCB2c3AxX3ZiMl9idWZmZXIgKmJ1ZjsK IAotCWJ1ZiA9IHZzcDFfdmlkZW9fY29tcGxldGVfYnVmZmVyKHZpZGVvKTsKKwlidWYgPSB2c3Ax X3ZpZGVvX2NvbXBsZXRlX25leHRfYnVmZmVyKHZpZGVvKTsKIAlpZiAoYnVmID09IE5VTEwpCiAJ CXJldHVybjsKIAotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==