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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id E0DC2D149DB for ; Fri, 25 Oct 2024 18:21:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc: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=PhMlm4D9ni8j//v7o2d4pFJTHxneS+zjXA59x+DXMEc=; b=kEzxE9P/YtQzkY APi4+b0SIFe7z3GyAVy4FxvsVFI7RB305BqQKHn5ocswPeIZgPNjOuKGIXaDZOXFsl71LUrwa+18s HIoUigIabOj1vTpVhhuGEAU5Swbrfx8xt7VEiY8PaZ1Z3ZHn1e18zcrjMbFyJXD8c/hdzNnXB52gW JGsCTnUMxyEEcuI7Hjs+7VLLngbi0auFaXkNE1GlXwJWGirQbr7Huwa+3bvr/brcp7hG76hfEqzYB so1w4u4MMLUdm8bsZHppsSB2WP20nsYbEEt5drxUTTa0yPRvB6Ap/zbdJK/p8nks4OLOHtmoGvmOx dc2ORfKLrooNugrc1UYQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t4OwD-00000004mD4-3qGe; Fri, 25 Oct 2024 18:21:29 +0000 Received: from bali.collaboradmins.com ([2a01:4f8:201:9162::2]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1t4Nzh-00000004ZIg-1QZY for linux-rockchip@lists.infradead.org; Fri, 25 Oct 2024 17:21:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1729876859; bh=/FAcDI/56mYIWBh5/V5Q2gqst/uvYSXDchwxmhBfEhU=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=OG4V+Fcln6jxQpBt/7+/Z7ji7O5uATDtsuTictsFXoj0tXYhiOt0b/vcQU8XhjykW Ty21nRZG44TSNlKJzAGzheyVDOcZYO+rUcZEZu1zHrMjrSHsGSlczxuoBaZ3zM7Gcz A1qNyUtLKEAlNeWgvUGkoX5BA/MUj+YZNguLMhWBIxy+ICT5bmcuBN+wtmB+EXOqDb coCTxG9QAS3LFcCGCPtfXTGlJUZ2ADIbcS3JxaHMFDukH1hVoS5Sn62ZpZjUZ1mlMP v2aWK8W1nmdWihdptvRdhEi/eRUAgNLljSnIFoYV0ulX/z3JRbI1xhe9r/uxs6K/GL vzcwN6euhq6IQ== Received: from nicolas-tpx395.lan (unknown [IPv6:2606:6d00:15:862e::7a9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7491717E3683; Fri, 25 Oct 2024 19:20:57 +0200 (CEST) Message-ID: <70a13bcfda7565efc1cf7117a559edfed5318819.camel@collabora.com> Subject: Re: [PATCH v6 01/11] media: v4l2-common: Add helpers to calculate bytesperline and sizeimage From: Nicolas Dufresne To: Jonas Karlman , Sebastian Fricke , Ezequiel Garcia , Mauro Carvalho Chehab Cc: Alex Bee , Benjamin Gaignard , Detlev Casanova , Dan Carpenter , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Christopher Obbard Date: Fri, 25 Oct 2024 13:20:55 -0400 In-Reply-To: <20240909192522.1076704-2-jonas@kwiboo.se> References: <20240909192522.1076704-1-jonas@kwiboo.se> <20240909192522.1076704-2-jonas@kwiboo.se> Organization: Collabora User-Agent: Evolution 3.52.4 (3.52.4-1.fc40) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241025_102101_569779_A0FF654F X-CRM114-Status: GOOD ( 18.60 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org TGUgbHVuZGkgMDkgc2VwdGVtYnJlIDIwMjQgw6AgMTk6MjQgKzAwMDAsIEpvbmFzIEthcmxtYW4g YSDDqWNyaXTCoDoKPiBBZGQgaGVscGVyIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgcGxhbmUgYnl0 ZXNwZXJsaW5lIGFuZCBzaXplaW1hZ2UsCj4gdGhlc2UgbmV3IGhlbHBlcnMgY29uc2lkZXIgYnBw IGRpdiwgYmxvY2sgd2lkdGggYW5kIGhlaWdodCB3aGVuCj4gY2FsY3VsYXRpbmcgcGxhbmUgYnl0 ZXNwZXJsaW5lIGFuZCBzaXplaW1hZ2UuCj4gCj4gU2lnbmVkLW9mZi1ieTogSm9uYXMgS2FybG1h biA8am9uYXNAa3dpYm9vLnNlPgo+IFRlc3RlZC1ieTogTmljb2xhcyBEdWZyZXNuZSA8bmljb2xh cy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgo+IFRlc3RlZC1ieTogQ2hyaXN0b3BoZXIgT2JiYXJk IDxjaHJpcy5vYmJhcmRAY29sbGFib3JhLmNvbT4KPiAtLS0KPiB2NjoKPiAtIE5vIGNoYW5nZQo+ IAo+IHY1Ogo+IC0gQ29sbGVjdCB0LWIgdGFncwo+IAo+IHY0Ogo+IC0gTm8gY2hhbmdlCj4gCj4g djM6Cj4gLSBDb25zaWRlciBicHBfZGl2IGluIGNhbGN1bGF0aW9uCj4gLS0tCj4gIGRyaXZlcnMv bWVkaWEvdjRsMi1jb3JlL3Y0bDItY29tbW9uLmMgfCA3OCArKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWNvbW1vbi5j IGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jb21tb24uYwo+IGluZGV4IDBhMmY0ZjBk MGEwNy4uOGFkMDRkNDhhMDIzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3Y0bDItY29tbW9uLmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWNvbW1v bi5jCj4gQEAgLTM1Nyw2ICszNTcsMzQgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdjRs Ml9mb3JtYXRfYmxvY2tfaGVpZ2h0KGNvbnN0IHN0cnVjdCB2NGwyX2Zvcm1hdF9pbmYKPiAgCXJl dHVybiBpbmZvLT5ibG9ja19oW3BsYW5lXTsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQgdjRsMl9mb3JtYXRfcGxhbmVfd2lkdGgoY29uc3Qgc3RydWN0IHY0bDJfZm9ybWF0 X2luZm8gKmluZm8sIGludCBwbGFuZSwKCm5pdDogV2hhdCB3b3VsZCB5b3UgdGhpbmsgb2YgbmFt aW5nIHRoaXMgb25lIHY0bDJfZm9ybWF0X3BsYW5lX3N0cmlkZSgpID8gQXMgdGhlCnJldHVybmVk IHZhbHVlIGlzIGluIGJ5dGVzLCBub3QgaW4gcGl4ZWxzLiAoSSdtIG5vdCBhIGh1Z2UgZmFuIG9m Cl9ieXRlc3BlcmxpbmUoKSwgYnV0IHdvdWxkIHNlZW0gdmFsaWQgYW5kIGNvbnNpc3RlbnQgdG9v KS4KCldpdGggb3Igd2l0aG91dCB0aGlzLCBJJ20gaGFwcHkgdG8gc2VlIHRoaXMgbGFuZDoKClJl dmlld2VkLWJ5OiBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5j b20+Cgo+ICsJCQkJCQkgICB1bnNpZ25lZCBpbnQgd2lkdGgpCj4gK3sKPiArCXVuc2lnbmVkIGlu dCBoZGl2ID0gcGxhbmUgPyBpbmZvLT5oZGl2IDogMTsKPiArCXVuc2lnbmVkIGludCBhbGlnbmVk X3dpZHRoID0KPiArCQlBTElHTih3aWR0aCwgdjRsMl9mb3JtYXRfYmxvY2tfd2lkdGgoaW5mbywg cGxhbmUpKTsKPiArCj4gKwlyZXR1cm4gRElWX1JPVU5EX1VQKGFsaWduZWRfd2lkdGgsIGhkaXYp ICoKPiArCSAgICAgICBpbmZvLT5icHBbcGxhbmVdIC8gaW5mby0+YnBwX2RpdltwbGFuZV07Cj4g K30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHY0bDJfZm9ybWF0X3BsYW5lX2hl aWdodChjb25zdCBzdHJ1Y3QgdjRsMl9mb3JtYXRfaW5mbyAqaW5mbywgaW50IHBsYW5lLAo+ICsJ CQkJCQkgICAgdW5zaWduZWQgaW50IGhlaWdodCkKPiArewo+ICsJdW5zaWduZWQgaW50IHZkaXYg PSBwbGFuZSA/IGluZm8tPnZkaXYgOiAxOwo+ICsJdW5zaWduZWQgaW50IGFsaWduZWRfaGVpZ2h0 ID0KPiArCQlBTElHTihoZWlnaHQsIHY0bDJfZm9ybWF0X2Jsb2NrX2hlaWdodChpbmZvLCBwbGFu ZSkpOwo+ICsKPiArCXJldHVybiBESVZfUk9VTkRfVVAoYWxpZ25lZF9oZWlnaHQsIHZkaXYpOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB2NGwyX2Zvcm1hdF9wbGFuZV9z aXplKGNvbnN0IHN0cnVjdCB2NGwyX2Zvcm1hdF9pbmZvICppbmZvLCBpbnQgcGxhbmUsCj4gKwkJ CQkJCSAgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KQo+ICt7Cj4gKwly ZXR1cm4gdjRsMl9mb3JtYXRfcGxhbmVfd2lkdGgoaW5mbywgcGxhbmUsIHdpZHRoKSAqCj4gKwkg ICAgICAgdjRsMl9mb3JtYXRfcGxhbmVfaGVpZ2h0KGluZm8sIHBsYW5lLCBoZWlnaHQpOwo+ICt9 Cj4gKwo+ICB2b2lkIHY0bDJfYXBwbHlfZnJtc2l6ZV9jb25zdHJhaW50cyh1MzIgKndpZHRoLCB1 MzIgKmhlaWdodCwKPiAgCQkJCSAgICBjb25zdCBzdHJ1Y3QgdjRsMl9mcm1zaXplX3N0ZXB3aXNl ICpmcm1zaXplKQo+ICB7Cj4gQEAgLTM5MiwzNyArNDIwLDE5IEBAIGludCB2NGwyX2ZpbGxfcGl4 Zm10X21wKHN0cnVjdCB2NGwyX3BpeF9mb3JtYXRfbXBsYW5lICpwaXhmbXQsCj4gIAo+ICAJaWYg KGluZm8tPm1lbV9wbGFuZXMgPT0gMSkgewo+ICAJCXBsYW5lID0gJnBpeGZtdC0+cGxhbmVfZm10 WzBdOwo+IC0JCXBsYW5lLT5ieXRlc3BlcmxpbmUgPSBBTElHTih3aWR0aCwgdjRsMl9mb3JtYXRf YmxvY2tfd2lkdGgoaW5mbywgMCkpICogaW5mby0+YnBwWzBdIC8gaW5mby0+YnBwX2RpdlswXTsK PiArCQlwbGFuZS0+Ynl0ZXNwZXJsaW5lID0gdjRsMl9mb3JtYXRfcGxhbmVfd2lkdGgoaW5mbywg MCwgd2lkdGgpOwo+ICAJCXBsYW5lLT5zaXplaW1hZ2UgPSAwOwo+ICAKPiAtCQlmb3IgKGkgPSAw OyBpIDwgaW5mby0+Y29tcF9wbGFuZXM7IGkrKykgewo+IC0JCQl1bnNpZ25lZCBpbnQgaGRpdiA9 IChpID09IDApID8gMSA6IGluZm8tPmhkaXY7Cj4gLQkJCXVuc2lnbmVkIGludCB2ZGl2ID0gKGkg PT0gMCkgPyAxIDogaW5mby0+dmRpdjsKPiAtCQkJdW5zaWduZWQgaW50IGFsaWduZWRfd2lkdGg7 Cj4gLQkJCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodDsKPiAtCj4gLQkJCWFsaWduZWRfd2lk dGggPSBBTElHTih3aWR0aCwgdjRsMl9mb3JtYXRfYmxvY2tfd2lkdGgoaW5mbywgaSkpOwo+IC0J CQlhbGlnbmVkX2hlaWdodCA9IEFMSUdOKGhlaWdodCwgdjRsMl9mb3JtYXRfYmxvY2tfaGVpZ2h0 KGluZm8sIGkpKTsKPiAtCj4gLQkJCXBsYW5lLT5zaXplaW1hZ2UgKz0gaW5mby0+YnBwW2ldICoK PiAtCQkJCURJVl9ST1VORF9VUChhbGlnbmVkX3dpZHRoLCBoZGl2KSAqCj4gLQkJCQlESVZfUk9V TkRfVVAoYWxpZ25lZF9oZWlnaHQsIHZkaXYpIC8gaW5mby0+YnBwX2RpdltpXTsKPiAtCQl9Cj4g KwkJZm9yIChpID0gMDsgaSA8IGluZm8tPmNvbXBfcGxhbmVzOyBpKyspCj4gKwkJCXBsYW5lLT5z aXplaW1hZ2UgKz0KPiArCQkJCXY0bDJfZm9ybWF0X3BsYW5lX3NpemUoaW5mbywgaSwgd2lkdGgs IGhlaWdodCk7Cj4gIAl9IGVsc2Ugewo+ICAJCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5jb21wX3Bs YW5lczsgaSsrKSB7Cj4gLQkJCXVuc2lnbmVkIGludCBoZGl2ID0gKGkgPT0gMCkgPyAxIDogaW5m by0+aGRpdjsKPiAtCQkJdW5zaWduZWQgaW50IHZkaXYgPSAoaSA9PSAwKSA/IDEgOiBpbmZvLT52 ZGl2Owo+IC0JCQl1bnNpZ25lZCBpbnQgYWxpZ25lZF93aWR0aDsKPiAtCQkJdW5zaWduZWQgaW50 IGFsaWduZWRfaGVpZ2h0Owo+IC0KPiAtCQkJYWxpZ25lZF93aWR0aCA9IEFMSUdOKHdpZHRoLCB2 NGwyX2Zvcm1hdF9ibG9ja193aWR0aChpbmZvLCBpKSk7Cj4gLQkJCWFsaWduZWRfaGVpZ2h0ID0g QUxJR04oaGVpZ2h0LCB2NGwyX2Zvcm1hdF9ibG9ja19oZWlnaHQoaW5mbywgaSkpOwo+IC0KPiAg CQkJcGxhbmUgPSAmcGl4Zm10LT5wbGFuZV9mbXRbaV07Cj4gIAkJCXBsYW5lLT5ieXRlc3Blcmxp bmUgPQo+IC0JCQkJaW5mby0+YnBwW2ldICogRElWX1JPVU5EX1VQKGFsaWduZWRfd2lkdGgsIGhk aXYpIC8gaW5mby0+YnBwX2RpdltpXTsKPiAtCQkJcGxhbmUtPnNpemVpbWFnZSA9Cj4gLQkJCQlw bGFuZS0+Ynl0ZXNwZXJsaW5lICogRElWX1JPVU5EX1VQKGFsaWduZWRfaGVpZ2h0LCB2ZGl2KTsK PiArCQkJCXY0bDJfZm9ybWF0X3BsYW5lX3dpZHRoKGluZm8sIGksIHdpZHRoKTsKPiArCQkJcGxh bmUtPnNpemVpbWFnZSA9IHBsYW5lLT5ieXRlc3BlcmxpbmUgKgo+ICsJCQkJdjRsMl9mb3JtYXRf cGxhbmVfaGVpZ2h0KGluZm8sIGksIGhlaWdodCk7Cj4gIAkJfQo+ICAJfQo+ICAJcmV0dXJuIDA7 Cj4gQEAgLTQ0NiwyMiArNDU2LDEyIEBAIGludCB2NGwyX2ZpbGxfcGl4Zm10KHN0cnVjdCB2NGwy X3BpeF9mb3JtYXQgKnBpeGZtdCwgdTMyIHBpeGVsZm9ybWF0LAo+ICAJcGl4Zm10LT53aWR0aCA9 IHdpZHRoOwo+ICAJcGl4Zm10LT5oZWlnaHQgPSBoZWlnaHQ7Cj4gIAlwaXhmbXQtPnBpeGVsZm9y bWF0ID0gcGl4ZWxmb3JtYXQ7Cj4gLQlwaXhmbXQtPmJ5dGVzcGVybGluZSA9IEFMSUdOKHdpZHRo LCB2NGwyX2Zvcm1hdF9ibG9ja193aWR0aChpbmZvLCAwKSkgKiBpbmZvLT5icHBbMF0gLyBpbmZv LT5icHBfZGl2WzBdOwo+ICsJcGl4Zm10LT5ieXRlc3BlcmxpbmUgPSB2NGwyX2Zvcm1hdF9wbGFu ZV93aWR0aChpbmZvLCAwLCB3aWR0aCk7Cj4gIAlwaXhmbXQtPnNpemVpbWFnZSA9IDA7Cj4gIAo+ IC0JZm9yIChpID0gMDsgaSA8IGluZm8tPmNvbXBfcGxhbmVzOyBpKyspIHsKPiAtCQl1bnNpZ25l ZCBpbnQgaGRpdiA9IChpID09IDApID8gMSA6IGluZm8tPmhkaXY7Cj4gLQkJdW5zaWduZWQgaW50 IHZkaXYgPSAoaSA9PSAwKSA/IDEgOiBpbmZvLT52ZGl2Owo+IC0JCXVuc2lnbmVkIGludCBhbGln bmVkX3dpZHRoOwo+IC0JCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodDsKPiAtCj4gLQkJYWxp Z25lZF93aWR0aCA9IEFMSUdOKHdpZHRoLCB2NGwyX2Zvcm1hdF9ibG9ja193aWR0aChpbmZvLCBp KSk7Cj4gLQkJYWxpZ25lZF9oZWlnaHQgPSBBTElHTihoZWlnaHQsIHY0bDJfZm9ybWF0X2Jsb2Nr X2hlaWdodChpbmZvLCBpKSk7Cj4gLQo+IC0JCXBpeGZtdC0+c2l6ZWltYWdlICs9IGluZm8tPmJw cFtpXSAqCj4gLQkJCURJVl9ST1VORF9VUChhbGlnbmVkX3dpZHRoLCBoZGl2KSAqCj4gLQkJCURJ Vl9ST1VORF9VUChhbGlnbmVkX2hlaWdodCwgdmRpdikgLyBpbmZvLT5icHBfZGl2W2ldOwo+IC0J fQo+ICsJZm9yIChpID0gMDsgaSA8IGluZm8tPmNvbXBfcGxhbmVzOyBpKyspCj4gKwkJcGl4Zm10 LT5zaXplaW1hZ2UgKz0KPiArCQkJdjRsMl9mb3JtYXRfcGxhbmVfc2l6ZShpbmZvLCBpLCB3aWR0 aCwgaGVpZ2h0KTsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKHY0bDJf ZmlsbF9waXhmbXQpOwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtcm9ja2NoaXAK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FF3820D4E7 for ; Fri, 25 Oct 2024 17:21:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729876864; cv=none; b=CXbRJimTOVNMs14dODMXlYZRd0MnekdqlEMUS2qZM+MMZLNhBCTgIHJ8iptEt0Kk1PpIQMXWstfRNiXS40s2dTNJzFKiol1RTKHHWFo+zK1REBrb9E7x1B7ke4oHmJlvdN+ePqqwv+oLaRO5fHUiA49F4VNfWZYr0Am7Ksp88MY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729876864; c=relaxed/simple; bh=/FAcDI/56mYIWBh5/V5Q2gqst/uvYSXDchwxmhBfEhU=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=cA/i4m1CAHpbiVWtmQOK+d355DvB9HyIMaiFemTWChS5V508/Wa66t1jyH7+wNmXJNxzcwwdrgk/TvpQKaoC+CnhWYE98KoL0bnNHKs22MQ6TpqqbY4+I2R9EKSn5uU9RQ7iak2iO9o/gOlD63rnG2P7bSsmqwLJCuF3F9QRntg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=OG4V+Fcl; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="OG4V+Fcl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1729876859; bh=/FAcDI/56mYIWBh5/V5Q2gqst/uvYSXDchwxmhBfEhU=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=OG4V+Fcln6jxQpBt/7+/Z7ji7O5uATDtsuTictsFXoj0tXYhiOt0b/vcQU8XhjykW Ty21nRZG44TSNlKJzAGzheyVDOcZYO+rUcZEZu1zHrMjrSHsGSlczxuoBaZ3zM7Gcz A1qNyUtLKEAlNeWgvUGkoX5BA/MUj+YZNguLMhWBIxy+ICT5bmcuBN+wtmB+EXOqDb coCTxG9QAS3LFcCGCPtfXTGlJUZ2ADIbcS3JxaHMFDukH1hVoS5Sn62ZpZjUZ1mlMP v2aWK8W1nmdWihdptvRdhEi/eRUAgNLljSnIFoYV0ulX/z3JRbI1xhe9r/uxs6K/GL vzcwN6euhq6IQ== Received: from nicolas-tpx395.lan (unknown [IPv6:2606:6d00:15:862e::7a9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7491717E3683; Fri, 25 Oct 2024 19:20:57 +0200 (CEST) Message-ID: <70a13bcfda7565efc1cf7117a559edfed5318819.camel@collabora.com> Subject: Re: [PATCH v6 01/11] media: v4l2-common: Add helpers to calculate bytesperline and sizeimage From: Nicolas Dufresne To: Jonas Karlman , Sebastian Fricke , Ezequiel Garcia , Mauro Carvalho Chehab Cc: Alex Bee , Benjamin Gaignard , Detlev Casanova , Dan Carpenter , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Christopher Obbard Date: Fri, 25 Oct 2024 13:20:55 -0400 In-Reply-To: <20240909192522.1076704-2-jonas@kwiboo.se> References: <20240909192522.1076704-1-jonas@kwiboo.se> <20240909192522.1076704-2-jonas@kwiboo.se> Organization: Collabora Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.52.4 (3.52.4-1.fc40) Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Le lundi 09 septembre 2024 à 19:24 +0000, Jonas Karlman a écrit : > Add helper functions to calculate plane bytesperline and sizeimage, > these new helpers consider bpp div, block width and height when > calculating plane bytesperline and sizeimage. > > Signed-off-by: Jonas Karlman > Tested-by: Nicolas Dufresne > Tested-by: Christopher Obbard > --- > v6: > - No change > > v5: > - Collect t-b tags > > v4: > - No change > > v3: > - Consider bpp_div in calculation > --- > drivers/media/v4l2-core/v4l2-common.c | 78 +++++++++++++-------------- > 1 file changed, 39 insertions(+), 39 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c > index 0a2f4f0d0a07..8ad04d48a023 100644 > --- a/drivers/media/v4l2-core/v4l2-common.c > +++ b/drivers/media/v4l2-core/v4l2-common.c > @@ -357,6 +357,34 @@ static inline unsigned int v4l2_format_block_height(const struct v4l2_format_inf > return info->block_h[plane]; > } > > +static inline unsigned int v4l2_format_plane_width(const struct v4l2_format_info *info, int plane, nit: What would you think of naming this one v4l2_format_plane_stride() ? As the returned value is in bytes, not in pixels. (I'm not a huge fan of _bytesperline(), but would seem valid and consistent too). With or without this, I'm happy to see this land: Reviewed-by: Nicolas Dufresne > + unsigned int width) > +{ > + unsigned int hdiv = plane ? info->hdiv : 1; > + unsigned int aligned_width = > + ALIGN(width, v4l2_format_block_width(info, plane)); > + > + return DIV_ROUND_UP(aligned_width, hdiv) * > + info->bpp[plane] / info->bpp_div[plane]; > +} > + > +static inline unsigned int v4l2_format_plane_height(const struct v4l2_format_info *info, int plane, > + unsigned int height) > +{ > + unsigned int vdiv = plane ? info->vdiv : 1; > + unsigned int aligned_height = > + ALIGN(height, v4l2_format_block_height(info, plane)); > + > + return DIV_ROUND_UP(aligned_height, vdiv); > +} > + > +static inline unsigned int v4l2_format_plane_size(const struct v4l2_format_info *info, int plane, > + unsigned int width, unsigned int height) > +{ > + return v4l2_format_plane_width(info, plane, width) * > + v4l2_format_plane_height(info, plane, height); > +} > + > void v4l2_apply_frmsize_constraints(u32 *width, u32 *height, > const struct v4l2_frmsize_stepwise *frmsize) > { > @@ -392,37 +420,19 @@ int v4l2_fill_pixfmt_mp(struct v4l2_pix_format_mplane *pixfmt, > > if (info->mem_planes == 1) { > plane = &pixfmt->plane_fmt[0]; > - plane->bytesperline = ALIGN(width, v4l2_format_block_width(info, 0)) * info->bpp[0] / info->bpp_div[0]; > + plane->bytesperline = v4l2_format_plane_width(info, 0, width); > plane->sizeimage = 0; > > - for (i = 0; i < info->comp_planes; i++) { > - unsigned int hdiv = (i == 0) ? 1 : info->hdiv; > - unsigned int vdiv = (i == 0) ? 1 : info->vdiv; > - unsigned int aligned_width; > - unsigned int aligned_height; > - > - aligned_width = ALIGN(width, v4l2_format_block_width(info, i)); > - aligned_height = ALIGN(height, v4l2_format_block_height(info, i)); > - > - plane->sizeimage += info->bpp[i] * > - DIV_ROUND_UP(aligned_width, hdiv) * > - DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i]; > - } > + for (i = 0; i < info->comp_planes; i++) > + plane->sizeimage += > + v4l2_format_plane_size(info, i, width, height); > } else { > for (i = 0; i < info->comp_planes; i++) { > - unsigned int hdiv = (i == 0) ? 1 : info->hdiv; > - unsigned int vdiv = (i == 0) ? 1 : info->vdiv; > - unsigned int aligned_width; > - unsigned int aligned_height; > - > - aligned_width = ALIGN(width, v4l2_format_block_width(info, i)); > - aligned_height = ALIGN(height, v4l2_format_block_height(info, i)); > - > plane = &pixfmt->plane_fmt[i]; > plane->bytesperline = > - info->bpp[i] * DIV_ROUND_UP(aligned_width, hdiv) / info->bpp_div[i]; > - plane->sizeimage = > - plane->bytesperline * DIV_ROUND_UP(aligned_height, vdiv); > + v4l2_format_plane_width(info, i, width); > + plane->sizeimage = plane->bytesperline * > + v4l2_format_plane_height(info, i, height); > } > } > return 0; > @@ -446,22 +456,12 @@ int v4l2_fill_pixfmt(struct v4l2_pix_format *pixfmt, u32 pixelformat, > pixfmt->width = width; > pixfmt->height = height; > pixfmt->pixelformat = pixelformat; > - pixfmt->bytesperline = ALIGN(width, v4l2_format_block_width(info, 0)) * info->bpp[0] / info->bpp_div[0]; > + pixfmt->bytesperline = v4l2_format_plane_width(info, 0, width); > pixfmt->sizeimage = 0; > > - for (i = 0; i < info->comp_planes; i++) { > - unsigned int hdiv = (i == 0) ? 1 : info->hdiv; > - unsigned int vdiv = (i == 0) ? 1 : info->vdiv; > - unsigned int aligned_width; > - unsigned int aligned_height; > - > - aligned_width = ALIGN(width, v4l2_format_block_width(info, i)); > - aligned_height = ALIGN(height, v4l2_format_block_height(info, i)); > - > - pixfmt->sizeimage += info->bpp[i] * > - DIV_ROUND_UP(aligned_width, hdiv) * > - DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i]; > - } > + for (i = 0; i < info->comp_planes; i++) > + pixfmt->sizeimage += > + v4l2_format_plane_size(info, i, width, height); > return 0; > } > EXPORT_SYMBOL_GPL(v4l2_fill_pixfmt);