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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 36C16C28CC5 for ; Wed, 5 Jun 2019 21:10:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 11C282075B for ; Wed, 5 Jun 2019 21:10:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726787AbfFEVKZ (ORCPT ); Wed, 5 Jun 2019 17:10:25 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:47155 "EHLO relay4-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726528AbfFEVKY (ORCPT ); Wed, 5 Jun 2019 17:10:24 -0400 X-Originating-IP: 93.29.109.196 Received: from collins (196.109.29.93.rev.sfr.net [93.29.109.196]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 802F8E0002; Wed, 5 Jun 2019 21:10:18 +0000 (UTC) Message-ID: Subject: Re: [PATCH 6/7] media: cedrus: Add infra for extra buffers connected to capture buffers From: Paul Kocialkowski To: Jernej =?UTF-8?Q?=C5=A0krabec?= , Maxime Ripard Cc: wens@csie.org, mchehab@kernel.org, gregkh@linuxfoundation.org, linux-media@vger.kernel.org, devel@driverdev.osuosl.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Date: Wed, 05 Jun 2019 23:10:17 +0200 In-Reply-To: <3029072.frl2UAsRGt@jernej-laptop> References: <20190530211516.1891-1-jernej.skrabec@siol.net> <20190530211516.1891-7-jernej.skrabec@siol.net> <20190603121859.sbphcjy75kmed6oc@flea> <3029072.frl2UAsRGt@jernej-laptop> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.32.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Le lundi 03 juin 2019 à 17:48 +0200, Jernej Škrabec a écrit : > Dne ponedeljek, 03. junij 2019 ob 14:18:59 CEST je Maxime Ripard napisal(a): > > Hi, > > > > On Thu, May 30, 2019 at 11:15:15PM +0200, Jernej Skrabec wrote: > > > H264 and HEVC engines need additional buffers for each capture buffer. > > > H264 engine has this currently solved by allocating fixed size pool, > > > which is not ideal. Most of the time pool size is much bigger than it > > > needs to be. > > > > > > Ideally, extra buffer should be allocated at buffer initialization, but > > > that's not efficient. It's size in H264 depends on flags set in SPS, but > > > that information is not available in buffer init callback. > > > > > > Signed-off-by: Jernej Skrabec > > > --- > > > > > > drivers/staging/media/sunxi/cedrus/cedrus.h | 4 ++++ > > > .../staging/media/sunxi/cedrus/cedrus_video.c | 19 +++++++++++++++++++ > > > 2 files changed, 23 insertions(+) > > > > > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h > > > b/drivers/staging/media/sunxi/cedrus/cedrus.h index > > > d8e6777e5e27..16c1bdfd243a 100644 > > > --- a/drivers/staging/media/sunxi/cedrus/cedrus.h > > > +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h > > > @@ -81,6 +81,10 @@ struct cedrus_run { > > > > > > struct cedrus_buffer { > > > > > > struct v4l2_m2m_buffer m2m_buf; > > > > > > + void *extra_buf; > > > + dma_addr_t extra_buf_dma; > > > + ssize_t extra_buf_size; > > > + > > > > > > union { > > > > > > struct { > > > > > > unsigned int position; > > > > > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c > > > b/drivers/staging/media/sunxi/cedrus/cedrus_video.c index > > > 681dfe3367a6..d756e0e69634 100644 > > > --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c > > > +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c > > > @@ -411,6 +411,24 @@ static void cedrus_queue_cleanup(struct vb2_queue > > > *vq, u32 state)> > > > } > > > > > > } > > > > > > +static void cedrus_buf_cleanup(struct vb2_buffer *vb) > > > +{ > > > + struct vb2_queue *vq = vb->vb2_queue; > > > + > > > + if (!V4L2_TYPE_IS_OUTPUT(vq->type)) { > > > + struct cedrus_ctx *ctx = vb2_get_drv_priv(vq); > > > + struct cedrus_buffer *cedrus_buf; > > > + > > > + cedrus_buf = vb2_to_cedrus_buffer(vq->bufs[vb->index]); > > > + > > > + if (cedrus_buf->extra_buf_size) > > > + dma_free_coherent(ctx->dev->dev, > > > + cedrus_buf- > > extra_buf_size, > > > + cedrus_buf- > > extra_buf, > > > + cedrus_buf- > > extra_buf_dma); > > > + } > > > +} > > > + > > > > I'm really not a fan of allocating something somewhere, and freeing it > > somewhere else. Making sure you don't leak something is hard enough to > > not have some non-trivial allocation scheme. > > Ok, what about introducing two new optional methods in engine callbacks, > buffer_init and buffer_destroy, which would be called from cedrus_buf_init() and > cedrus_buf_cleanup(), respectively. That way all (de)allocation logic stays > within the same engine. I'm thinking that we should have v4l2-framework-level per-codec helpers to provide ops for these kinds of things, since they tend be quite common across decoders. Cheers, Paul 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=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,URIBL_BLOCKED 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 A36C5C28CC5 for ; Wed, 5 Jun 2019 21:10:42 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 77D042075B for ; Wed, 5 Jun 2019 21:10:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="bqcgs+QD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 77D042075B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=KxqTKpMNtXyPzEOyZwefPaaxmzVzidihWbJoAMwnfnM=; b=bqcgs+QDgQMzlM aGYuXJZ42TZtfjnu4u/KeoO6Cpi/RV9K/UDVZZ+/5QMFqGM/ocw4nIX1rMQzIvTG2adkwPlGuElIm P9ZkmsXIsHi9IO8Rl+vh68ja6BYM+ftAVT1w0zi6YocA5V7wLaGCj19B0+XKCYVVGQVf5zF5N5keA G2eKXuGjPpAKIf/Y3ZcS6oQL3409RAS0IylfNxwzVQFNwtPz8s11eqqsKXYw4fjw12Pib1I9fnLKg IWRHLhBNZLR6Bki/Zx+tCLd7rs0YTkoj3I+Er4EjMRMGDHdInlmq6VmXOdUJkchtTOUTHDN4oPq6c Bh1tPK2fLrDKkmhVB1wQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hYdB6-0004ZS-JQ; Wed, 05 Jun 2019 21:10:36 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hYdB3-0004Z0-Mg for linux-arm-kernel@lists.infradead.org; Wed, 05 Jun 2019 21:10:35 +0000 X-Originating-IP: 93.29.109.196 Received: from collins (196.109.29.93.rev.sfr.net [93.29.109.196]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 802F8E0002; Wed, 5 Jun 2019 21:10:18 +0000 (UTC) Message-ID: Subject: Re: [PATCH 6/7] media: cedrus: Add infra for extra buffers connected to capture buffers From: Paul Kocialkowski To: Jernej =?UTF-8?Q?=C5=A0krabec?= , Maxime Ripard Date: Wed, 05 Jun 2019 23:10:17 +0200 In-Reply-To: <3029072.frl2UAsRGt@jernej-laptop> References: <20190530211516.1891-1-jernej.skrabec@siol.net> <20190530211516.1891-7-jernej.skrabec@siol.net> <20190603121859.sbphcjy75kmed6oc@flea> <3029072.frl2UAsRGt@jernej-laptop> User-Agent: Evolution 3.32.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190605_141034_058693_08EE5D16 X-CRM114-Status: GOOD ( 19.94 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, wens@csie.org, mchehab@kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgpMZSBsdW5kaSAwMyBqdWluIDIwMTkgw6AgMTc6NDggKzAyMDAsIEplcm5laiDFoGtyYWJl YyBhIMOpY3JpdCA6Cj4gRG5lIHBvbmVkZWxqZWssIDAzLiBqdW5paiAyMDE5IG9iIDE0OjE4OjU5 IENFU1QgamUgTWF4aW1lIFJpcGFyZCBuYXBpc2FsKGEpOgo+ID4gSGksCj4gPiAKPiA+IE9uIFRo dSwgTWF5IDMwLCAyMDE5IGF0IDExOjE1OjE1UE0gKzAyMDAsIEplcm5laiBTa3JhYmVjIHdyb3Rl Ogo+ID4gPiBIMjY0IGFuZCBIRVZDIGVuZ2luZXMgbmVlZCBhZGRpdGlvbmFsIGJ1ZmZlcnMgZm9y IGVhY2ggY2FwdHVyZSBidWZmZXIuCj4gPiA+IEgyNjQgZW5naW5lIGhhcyB0aGlzIGN1cnJlbnRs eSBzb2x2ZWQgYnkgYWxsb2NhdGluZyBmaXhlZCBzaXplIHBvb2wsCj4gPiA+IHdoaWNoIGlzIG5v dCBpZGVhbC4gTW9zdCBvZiB0aGUgdGltZSBwb29sIHNpemUgaXMgbXVjaCBiaWdnZXIgdGhhbiBp dAo+ID4gPiBuZWVkcyB0byBiZS4KPiA+ID4gCj4gPiA+IElkZWFsbHksIGV4dHJhIGJ1ZmZlciBz aG91bGQgYmUgYWxsb2NhdGVkIGF0IGJ1ZmZlciBpbml0aWFsaXphdGlvbiwgYnV0Cj4gPiA+IHRo YXQncyBub3QgZWZmaWNpZW50LiBJdCdzIHNpemUgaW4gSDI2NCBkZXBlbmRzIG9uIGZsYWdzIHNl dCBpbiBTUFMsIGJ1dAo+ID4gPiB0aGF0IGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4g YnVmZmVyIGluaXQgY2FsbGJhY2suCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKZXJuZWog U2tyYWJlYyA8amVybmVqLnNrcmFiZWNAc2lvbC5uZXQ+Cj4gPiA+IC0tLQo+ID4gPiAKPiA+ID4g IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmggICB8ICA0ICsrKysK PiA+ID4gIC4uLi9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfdmlkZW8uYyB8IDE5 ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9u cygrKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdW54 aS9jZWRydXMvY2VkcnVzLmgKPiA+ID4gYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2Vk cnVzL2NlZHJ1cy5oIGluZGV4Cj4gPiA+IGQ4ZTY3NzdlNWUyNy4uMTZjMWJkZmQyNDNhIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1cy5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmgK PiA+ID4gQEAgLTgxLDYgKzgxLDEwIEBAIHN0cnVjdCBjZWRydXNfcnVuIHsKPiA+ID4gCj4gPiA+ ICBzdHJ1Y3QgY2VkcnVzX2J1ZmZlciB7Cj4gPiA+ICAKPiA+ID4gIAlzdHJ1Y3QgdjRsMl9tMm1f YnVmZmVyICAgICAgICAgIG0ybV9idWY7Cj4gPiA+IAo+ID4gPiArCXZvaWQJCSpleHRyYV9idWY7 Cj4gPiA+ICsJZG1hX2FkZHJfdAlleHRyYV9idWZfZG1hOwo+ID4gPiArCXNzaXplX3QJCWV4dHJh X2J1Zl9zaXplOwo+ID4gPiArCj4gPiA+IAo+ID4gPiAgCXVuaW9uIHsKPiA+ID4gIAkKPiA+ID4g IAkJc3RydWN0IHsKPiA+ID4gIAkJCj4gPiA+ICAJCQl1bnNpZ25lZCBpbnQJCQlwb3NpdGlvbjsK PiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2Vk cnVzL2NlZHJ1c192aWRlby5jCj4gPiA+IGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2Nl ZHJ1cy9jZWRydXNfdmlkZW8uYyBpbmRleAo+ID4gPiA2ODFkZmUzMzY3YTYuLmQ3NTZlMGU2OTYz NCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9j ZWRydXNfdmlkZW8uYwo+ID4gPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2Vk cnVzL2NlZHJ1c192aWRlby5jCj4gPiA+IEBAIC00MTEsNiArNDExLDI0IEBAIHN0YXRpYyB2b2lk IGNlZHJ1c19xdWV1ZV9jbGVhbnVwKHN0cnVjdCB2YjJfcXVldWUKPiA+ID4gKnZxLCB1MzIgc3Rh dGUpPiAKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIH0KPiA+ID4gCj4gPiA+ICtzdGF0aWMgdm9p ZCBjZWRydXNfYnVmX2NsZWFudXAoc3RydWN0IHZiMl9idWZmZXIgKnZiKQo+ID4gPiArewo+ID4g PiArCXN0cnVjdCB2YjJfcXVldWUgKnZxID0gdmItPnZiMl9xdWV1ZTsKPiA+ID4gKwo+ID4gPiAr CWlmICghVjRMMl9UWVBFX0lTX09VVFBVVCh2cS0+dHlwZSkpIHsKPiA+ID4gKwkJc3RydWN0IGNl ZHJ1c19jdHggKmN0eCA9IHZiMl9nZXRfZHJ2X3ByaXYodnEpOwo+ID4gPiArCQlzdHJ1Y3QgY2Vk cnVzX2J1ZmZlciAqY2VkcnVzX2J1ZjsKPiA+ID4gKwo+ID4gPiArCQljZWRydXNfYnVmID0gdmIy X3RvX2NlZHJ1c19idWZmZXIodnEtPmJ1ZnNbdmItPmluZGV4XSk7Cj4gPiA+ICsKPiA+ID4gKwkJ aWYgKGNlZHJ1c19idWYtPmV4dHJhX2J1Zl9zaXplKQo+ID4gPiArCQkJZG1hX2ZyZWVfY29oZXJl bnQoY3R4LT5kZXYtPmRldiwKPiA+ID4gKwkJCQkJICBjZWRydXNfYnVmLQo+ID4gZXh0cmFfYnVm X3NpemUsCj4gPiA+ICsJCQkJCSAgY2VkcnVzX2J1Zi0KPiA+IGV4dHJhX2J1ZiwKPiA+ID4gKwkJ CQkJICBjZWRydXNfYnVmLQo+ID4gZXh0cmFfYnVmX2RtYSk7Cj4gPiA+ICsJfQo+ID4gPiArfQo+ ID4gPiArCj4gPiAKPiA+IEknbSByZWFsbHkgbm90IGEgZmFuIG9mIGFsbG9jYXRpbmcgc29tZXRo aW5nIHNvbWV3aGVyZSwgYW5kIGZyZWVpbmcgaXQKPiA+IHNvbWV3aGVyZSBlbHNlLiBNYWtpbmcg c3VyZSB5b3UgZG9uJ3QgbGVhayBzb21ldGhpbmcgaXMgaGFyZCBlbm91Z2ggdG8KPiA+IG5vdCBo YXZlIHNvbWUgbm9uLXRyaXZpYWwgYWxsb2NhdGlvbiBzY2hlbWUuCj4gCj4gT2ssIHdoYXQgYWJv dXQgaW50cm9kdWNpbmcgdHdvIG5ldyBvcHRpb25hbCBtZXRob2RzIGluIGVuZ2luZSBjYWxsYmFj a3MsIAo+IGJ1ZmZlcl9pbml0IGFuZCBidWZmZXJfZGVzdHJveSwgd2hpY2ggd291bGQgYmUgY2Fs bGVkIGZyb20gY2VkcnVzX2J1Zl9pbml0KCkgYW5kIAo+IGNlZHJ1c19idWZfY2xlYW51cCgpLCBy ZXNwZWN0aXZlbHkuIFRoYXQgd2F5IGFsbCAoZGUpYWxsb2NhdGlvbiBsb2dpYyBzdGF5cyAKPiB3 aXRoaW4gdGhlIHNhbWUgZW5naW5lLgoKSSdtIHRoaW5raW5nIHRoYXQgd2Ugc2hvdWxkIGhhdmUg djRsMi1mcmFtZXdvcmstbGV2ZWwgcGVyLWNvZGVjIGhlbHBlcnMKdG8gcHJvdmlkZSBvcHMgZm9y IHRoZXNlIGtpbmRzIG9mIHRoaW5ncywgc2luY2UgdGhleSB0ZW5kIGJlIHF1aXRlCmNvbW1vbiBh Y3Jvc3MgZGVjb2RlcnMuCgpDaGVlcnMsCgpQYXVsCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=