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 7DA69C4332F for ; Wed, 8 Nov 2023 02:45:46 +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=kDA2DvrCXoMezgl04/Am4kWcPub5Z0Xrl/GGTJP1BAY=; b=HNpuD0vYCVb4bf jpiRCn3exbGU/F8cUvs/yKgFAEW+JS5sA57q3ivNKfWneBeJnLB/5cHPc7bbXEY/pCHwqtotxNAge 3PtIOpN4S41eHCczyTJH5awru0dZ6rboZ4pd8SndQCPph5PIuKJTs7qNDuo1LrXqENEiSWpi3C4yg hqG9EIFrfBblq08APYidzv/09BKcOtODjwteOXbWwhEqaLgTPoTbvWlGsnnNW9tOMJAq28xChQM6m Upa76xpPsNQigGCNPprw27WGgUydisJx+/xMfDHJQcc+YRXzDtgeCo7MayKFfJiWRKbviqLi0D0UZ Of72w5crntyuJXzAZ4fw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r0YZN-002pXM-2R; Wed, 08 Nov 2023 02:45:29 +0000 Received: from madras.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e5ab]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r0YZJ-002pWq-23 for linux-rockchip@lists.infradead.org; Wed, 08 Nov 2023 02:45:27 +0000 Received: from [100.84.166.245] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: nicolas) by madras.collabora.co.uk (Postfix) with ESMTPSA id 6822766074D3; Wed, 8 Nov 2023 02:45:22 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1699411524; bh=6wXQfetxwy+D5CmT3AkE+ELY/xU4NDY2a0E7Zs38Vz4=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=gVXqAw5QrLvzAZsKe7m0U0ovIcOZJt8Z4Au74SpOcRx71jGcpQiv7/1pyXNvMpIbh EOajx1g7hwDYm+UTOVDrbYRL7z8nACJOlwOLTPGPeVZGzeTiWHwGDLKajM5+W3eRiN hlV2YjksBvR8Te4IXk8RAN9SLJuNmPvxSxyo2v95Q0/r4ObFhvOGIGJHSYcYkzfG8c kzexPDsVjO2tq0azSXENPbe4rt0Epd/T6qEtast7Gw01Cobya/qgbjpFWQ3LNORlGs b38XDz7FckLTyn0lrRElEnEqamKhkWRpnxrd/xB3XINysoqO1pvFgaRcyQ5IEliy5Y wMuzSe/3o1vxA== Message-ID: <02c819bbbaa34342be39cfaed707ddf9a33a9087.camel@collabora.com> Subject: Re: [PATCH v4 01/11] media: v4l2-common: Add helpers to calculate bytesperline and sizeimage From: Nicolas Dufresne To: Jonas Karlman , Ezequiel Garcia , Mauro Carvalho Chehab , Hans Verkuil Cc: Alex Bee , Benjamin Gaignard , Sebastian Fricke , Christopher Obbard , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Date: Tue, 07 Nov 2023 21:45:13 -0500 In-Reply-To: <20231105165521.3592037-2-jonas@kwiboo.se> References: <20231105165521.3592037-1-jonas@kwiboo.se> <20231105165521.3592037-2-jonas@kwiboo.se> User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231107_184525_938708_C8679873 X-CRM114-Status: GOOD ( 17.03 ) 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 TGUgZGltYW5jaGUgMDUgbm92ZW1icmUgMjAyMyDDoCAxNjo1NSArMDAwMCwgSm9uYXMgS2FybG1h biBhIMOpY3JpdMKgOgo+IEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGNhbGN1bGF0ZSBwbGFuZSBi eXRlc3BlcmxpbmUgYW5kIHNpemVpbWFnZSwKPiB0aGVzZSBuZXcgaGVscGVycyBjb25zaWRlciBi cHAgZGl2LCBibG9jayB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4KPiBjYWxjdWxhdGluZyBwbGFuZSBi eXRlc3BlcmxpbmUgYW5kIHNpemVpbWFnZS4KCklzIHRoaXMgb25seSByZWZhY3RvcmluZyB0byBy ZWR1Y2UgZHVwbGljYXRlZCBjb2RlID8gSSBoYXZlbid0IHNlZW4Kd2hhdCBpcyBuZXcgaW4gdGhl cmUgeWV0LCBtYXliZSB0aGUgY29tbWl0IG1lc3NhZ2UgY291bGQgY2xhcmlmeS4KCnJlZ2FyZHMs Ck5pY29sYXMKCj4gCj4gU2lnbmVkLW9mZi1ieTogSm9uYXMgS2FybG1hbiA8am9uYXNAa3dpYm9v LnNlPgo+IC0tLQo+IHY0Ogo+IC0gTm8gY2hhbmdlCj4gCj4gdjM6Cj4gLSBDb25zaWRlciBicHBf ZGl2IGluIGNhbGN1bGF0aW9uCj4gCj4gIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY29t bW9uLmMgfCA3OCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQs IDM5IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWNvbW1vbi5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNv cmUvdjRsMi1jb21tb24uYwo+IGluZGV4IDNhNGIxNWE5OGUwMi4uODM0YjQyNmRhOGIxIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY29tbW9uLmMKPiArKysgYi9k cml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWNvbW1vbi5jCj4gQEAgLTM1MCw2ICszNTAsMzQg QEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdjRsMl9mb3JtYXRfYmxvY2tfaGVpZ2h0KGNv bnN0IHN0cnVjdCB2NGwyX2Zvcm1hdF9pbmYKPiAgCXJldHVybiBpbmZvLT5ibG9ja19oW3BsYW5l XTsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdjRsMl9mb3JtYXRfcGxh bmVfd2lkdGgoY29uc3Qgc3RydWN0IHY0bDJfZm9ybWF0X2luZm8gKmluZm8sIGludCBwbGFuZSwK PiArCQkJCQkJICAgdW5zaWduZWQgaW50IHdpZHRoKQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgaGRp diA9IHBsYW5lID8gaW5mby0+aGRpdiA6IDE7Cj4gKwl1bnNpZ25lZCBpbnQgYWxpZ25lZF93aWR0 aCA9Cj4gKwkJQUxJR04od2lkdGgsIHY0bDJfZm9ybWF0X2Jsb2NrX3dpZHRoKGluZm8sIHBsYW5l KSk7Cj4gKwo+ICsJcmV0dXJuIERJVl9ST1VORF9VUChhbGlnbmVkX3dpZHRoLCBoZGl2KSAqCj4g KwkgICAgICAgaW5mby0+YnBwW3BsYW5lXSAvIGluZm8tPmJwcF9kaXZbcGxhbmVdOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB2NGwyX2Zvcm1hdF9wbGFuZV9oZWlnaHQo Y29uc3Qgc3RydWN0IHY0bDJfZm9ybWF0X2luZm8gKmluZm8sIGludCBwbGFuZSwKPiArCQkJCQkJ ICAgIHVuc2lnbmVkIGludCBoZWlnaHQpCj4gK3sKPiArCXVuc2lnbmVkIGludCB2ZGl2ID0gcGxh bmUgPyBpbmZvLT52ZGl2IDogMTsKPiArCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodCA9Cj4g KwkJQUxJR04oaGVpZ2h0LCB2NGwyX2Zvcm1hdF9ibG9ja19oZWlnaHQoaW5mbywgcGxhbmUpKTsK PiArCj4gKwlyZXR1cm4gRElWX1JPVU5EX1VQKGFsaWduZWRfaGVpZ2h0LCB2ZGl2KTsKPiArfQo+ ICsKPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdjRsMl9mb3JtYXRfcGxhbmVfc2l6ZShj b25zdCBzdHJ1Y3QgdjRsMl9mb3JtYXRfaW5mbyAqaW5mbywgaW50IHBsYW5lLAo+ICsJCQkJCQkg IHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCkKPiArewo+ICsJcmV0dXJu IHY0bDJfZm9ybWF0X3BsYW5lX3dpZHRoKGluZm8sIHBsYW5lLCB3aWR0aCkgKgo+ICsJICAgICAg IHY0bDJfZm9ybWF0X3BsYW5lX2hlaWdodChpbmZvLCBwbGFuZSwgaGVpZ2h0KTsKPiArfQo+ICsK PiAgdm9pZCB2NGwyX2FwcGx5X2ZybXNpemVfY29uc3RyYWludHModTMyICp3aWR0aCwgdTMyICpo ZWlnaHQsCj4gIAkJCQkgICAgY29uc3Qgc3RydWN0IHY0bDJfZnJtc2l6ZV9zdGVwd2lzZSAqZnJt c2l6ZSkKPiAgewo+IEBAIC0zODUsMzcgKzQxMywxOSBAQCBpbnQgdjRsMl9maWxsX3BpeGZtdF9t cChzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0X21wbGFuZSAqcGl4Zm10LAo+ICAKPiAgCWlmIChpbmZv LT5tZW1fcGxhbmVzID09IDEpIHsKPiAgCQlwbGFuZSA9ICZwaXhmbXQtPnBsYW5lX2ZtdFswXTsK PiAtCQlwbGFuZS0+Ynl0ZXNwZXJsaW5lID0gQUxJR04od2lkdGgsIHY0bDJfZm9ybWF0X2Jsb2Nr X3dpZHRoKGluZm8sIDApKSAqIGluZm8tPmJwcFswXSAvIGluZm8tPmJwcF9kaXZbMF07Cj4gKwkJ cGxhbmUtPmJ5dGVzcGVybGluZSA9IHY0bDJfZm9ybWF0X3BsYW5lX3dpZHRoKGluZm8sIDAsIHdp ZHRoKTsKPiAgCQlwbGFuZS0+c2l6ZWltYWdlID0gMDsKPiAgCj4gLQkJZm9yIChpID0gMDsgaSA8 IGluZm8tPmNvbXBfcGxhbmVzOyBpKyspIHsKPiAtCQkJdW5zaWduZWQgaW50IGhkaXYgPSAoaSA9 PSAwKSA/IDEgOiBpbmZvLT5oZGl2Owo+IC0JCQl1bnNpZ25lZCBpbnQgdmRpdiA9IChpID09IDAp ID8gMSA6IGluZm8tPnZkaXY7Cj4gLQkJCXVuc2lnbmVkIGludCBhbGlnbmVkX3dpZHRoOwo+IC0J CQl1bnNpZ25lZCBpbnQgYWxpZ25lZF9oZWlnaHQ7Cj4gLQo+IC0JCQlhbGlnbmVkX3dpZHRoID0g QUxJR04od2lkdGgsIHY0bDJfZm9ybWF0X2Jsb2NrX3dpZHRoKGluZm8sIGkpKTsKPiAtCQkJYWxp Z25lZF9oZWlnaHQgPSBBTElHTihoZWlnaHQsIHY0bDJfZm9ybWF0X2Jsb2NrX2hlaWdodChpbmZv LCBpKSk7Cj4gLQo+IC0JCQlwbGFuZS0+c2l6ZWltYWdlICs9IGluZm8tPmJwcFtpXSAqCj4gLQkJ CQlESVZfUk9VTkRfVVAoYWxpZ25lZF93aWR0aCwgaGRpdikgKgo+IC0JCQkJRElWX1JPVU5EX1VQ KGFsaWduZWRfaGVpZ2h0LCB2ZGl2KSAvIGluZm8tPmJwcF9kaXZbaV07Cj4gLQkJfQo+ICsJCWZv ciAoaSA9IDA7IGkgPCBpbmZvLT5jb21wX3BsYW5lczsgaSsrKQo+ICsJCQlwbGFuZS0+c2l6ZWlt YWdlICs9Cj4gKwkJCQl2NGwyX2Zvcm1hdF9wbGFuZV9zaXplKGluZm8sIGksIHdpZHRoLCBoZWln aHQpOwo+ICAJfSBlbHNlIHsKPiAgCQlmb3IgKGkgPSAwOyBpIDwgaW5mby0+Y29tcF9wbGFuZXM7 IGkrKykgewo+IC0JCQl1bnNpZ25lZCBpbnQgaGRpdiA9IChpID09IDApID8gMSA6IGluZm8tPmhk aXY7Cj4gLQkJCXVuc2lnbmVkIGludCB2ZGl2ID0gKGkgPT0gMCkgPyAxIDogaW5mby0+dmRpdjsK PiAtCQkJdW5zaWduZWQgaW50IGFsaWduZWRfd2lkdGg7Cj4gLQkJCXVuc2lnbmVkIGludCBhbGln bmVkX2hlaWdodDsKPiAtCj4gLQkJCWFsaWduZWRfd2lkdGggPSBBTElHTih3aWR0aCwgdjRsMl9m b3JtYXRfYmxvY2tfd2lkdGgoaW5mbywgaSkpOwo+IC0JCQlhbGlnbmVkX2hlaWdodCA9IEFMSUdO KGhlaWdodCwgdjRsMl9mb3JtYXRfYmxvY2tfaGVpZ2h0KGluZm8sIGkpKTsKPiAtCj4gIAkJCXBs YW5lID0gJnBpeGZtdC0+cGxhbmVfZm10W2ldOwo+ICAJCQlwbGFuZS0+Ynl0ZXNwZXJsaW5lID0K PiAtCQkJCWluZm8tPmJwcFtpXSAqIERJVl9ST1VORF9VUChhbGlnbmVkX3dpZHRoLCBoZGl2KSAv IGluZm8tPmJwcF9kaXZbaV07Cj4gLQkJCXBsYW5lLT5zaXplaW1hZ2UgPQo+IC0JCQkJcGxhbmUt PmJ5dGVzcGVybGluZSAqIERJVl9ST1VORF9VUChhbGlnbmVkX2hlaWdodCwgdmRpdik7Cj4gKwkJ CQl2NGwyX2Zvcm1hdF9wbGFuZV93aWR0aChpbmZvLCBpLCB3aWR0aCk7Cj4gKwkJCXBsYW5lLT5z aXplaW1hZ2UgPSBwbGFuZS0+Ynl0ZXNwZXJsaW5lICoKPiArCQkJCXY0bDJfZm9ybWF0X3BsYW5l X2hlaWdodChpbmZvLCBpLCBoZWlnaHQpOwo+ICAJCX0KPiAgCX0KPiAgCXJldHVybiAwOwo+IEBA IC00MzksMjIgKzQ0OSwxMiBAQCBpbnQgdjRsMl9maWxsX3BpeGZtdChzdHJ1Y3QgdjRsMl9waXhf Zm9ybWF0ICpwaXhmbXQsIHUzMiBwaXhlbGZvcm1hdCwKPiAgCXBpeGZtdC0+d2lkdGggPSB3aWR0 aDsKPiAgCXBpeGZtdC0+aGVpZ2h0ID0gaGVpZ2h0Owo+ICAJcGl4Zm10LT5waXhlbGZvcm1hdCA9 IHBpeGVsZm9ybWF0Owo+IC0JcGl4Zm10LT5ieXRlc3BlcmxpbmUgPSBBTElHTih3aWR0aCwgdjRs Ml9mb3JtYXRfYmxvY2tfd2lkdGgoaW5mbywgMCkpICogaW5mby0+YnBwWzBdIC8gaW5mby0+YnBw X2RpdlswXTsKPiArCXBpeGZtdC0+Ynl0ZXNwZXJsaW5lID0gdjRsMl9mb3JtYXRfcGxhbmVfd2lk dGgoaW5mbywgMCwgd2lkdGgpOwo+ICAJcGl4Zm10LT5zaXplaW1hZ2UgPSAwOwo+ICAKPiAtCWZv ciAoaSA9IDA7IGkgPCBpbmZvLT5jb21wX3BsYW5lczsgaSsrKSB7Cj4gLQkJdW5zaWduZWQgaW50 IGhkaXYgPSAoaSA9PSAwKSA/IDEgOiBpbmZvLT5oZGl2Owo+IC0JCXVuc2lnbmVkIGludCB2ZGl2 ID0gKGkgPT0gMCkgPyAxIDogaW5mby0+dmRpdjsKPiAtCQl1bnNpZ25lZCBpbnQgYWxpZ25lZF93 aWR0aDsKPiAtCQl1bnNpZ25lZCBpbnQgYWxpZ25lZF9oZWlnaHQ7Cj4gLQo+IC0JCWFsaWduZWRf d2lkdGggPSBBTElHTih3aWR0aCwgdjRsMl9mb3JtYXRfYmxvY2tfd2lkdGgoaW5mbywgaSkpOwo+ IC0JCWFsaWduZWRfaGVpZ2h0ID0gQUxJR04oaGVpZ2h0LCB2NGwyX2Zvcm1hdF9ibG9ja19oZWln aHQoaW5mbywgaSkpOwo+IC0KPiAtCQlwaXhmbXQtPnNpemVpbWFnZSArPSBpbmZvLT5icHBbaV0g Kgo+IC0JCQlESVZfUk9VTkRfVVAoYWxpZ25lZF93aWR0aCwgaGRpdikgKgo+IC0JCQlESVZfUk9V TkRfVVAoYWxpZ25lZF9oZWlnaHQsIHZkaXYpIC8gaW5mby0+YnBwX2RpdltpXTsKPiAtCX0KPiAr CWZvciAoaSA9IDA7IGkgPCBpbmZvLT5jb21wX3BsYW5lczsgaSsrKQo+ICsJCXBpeGZtdC0+c2l6 ZWltYWdlICs9Cj4gKwkJCXY0bDJfZm9ybWF0X3BsYW5lX3NpemUoaW5mbywgaSwgd2lkdGgsIGhl aWdodCk7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTCh2NGwyX2ZpbGxf cGl4Zm10KTsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) (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 336D9EA3 for ; Wed, 8 Nov 2023 02:45:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine 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="gVXqAw5Q" Received: from [100.84.166.245] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: nicolas) by madras.collabora.co.uk (Postfix) with ESMTPSA id 6822766074D3; Wed, 8 Nov 2023 02:45:22 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1699411524; bh=6wXQfetxwy+D5CmT3AkE+ELY/xU4NDY2a0E7Zs38Vz4=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=gVXqAw5QrLvzAZsKe7m0U0ovIcOZJt8Z4Au74SpOcRx71jGcpQiv7/1pyXNvMpIbh EOajx1g7hwDYm+UTOVDrbYRL7z8nACJOlwOLTPGPeVZGzeTiWHwGDLKajM5+W3eRiN hlV2YjksBvR8Te4IXk8RAN9SLJuNmPvxSxyo2v95Q0/r4ObFhvOGIGJHSYcYkzfG8c kzexPDsVjO2tq0azSXENPbe4rt0Epd/T6qEtast7Gw01Cobya/qgbjpFWQ3LNORlGs b38XDz7FckLTyn0lrRElEnEqamKhkWRpnxrd/xB3XINysoqO1pvFgaRcyQ5IEliy5Y wMuzSe/3o1vxA== Message-ID: <02c819bbbaa34342be39cfaed707ddf9a33a9087.camel@collabora.com> Subject: Re: [PATCH v4 01/11] media: v4l2-common: Add helpers to calculate bytesperline and sizeimage From: Nicolas Dufresne To: Jonas Karlman , Ezequiel Garcia , Mauro Carvalho Chehab , Hans Verkuil Cc: Alex Bee , Benjamin Gaignard , Sebastian Fricke , Christopher Obbard , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Date: Tue, 07 Nov 2023 21:45:13 -0500 In-Reply-To: <20231105165521.3592037-2-jonas@kwiboo.se> References: <20231105165521.3592037-1-jonas@kwiboo.se> <20231105165521.3592037-2-jonas@kwiboo.se> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Le dimanche 05 novembre 2023 =C3=A0 16:55 +0000, Jonas Karlman a =C3=A9crit= =C2=A0: > 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. Is this only refactoring to reduce duplicated code ? I haven't seen what is new in there yet, maybe the commit message could clarify. regards, Nicolas >=20 > Signed-off-by: Jonas Karlman > --- > v4: > - No change >=20 > v3: > - Consider bpp_div in calculation >=20 > drivers/media/v4l2-core/v4l2-common.c | 78 +++++++++++++-------------- > 1 file changed, 39 insertions(+), 39 deletions(-) >=20 > diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-c= ore/v4l2-common.c > index 3a4b15a98e02..834b426da8b1 100644 > --- a/drivers/media/v4l2-core/v4l2-common.c > +++ b/drivers/media/v4l2-core/v4l2-common.c > @@ -350,6 +350,34 @@ static inline unsigned int v4l2_format_block_height(= const struct v4l2_format_inf > return info->block_h[plane]; > } > =20 > +static inline unsigned int v4l2_format_plane_width(const struct v4l2_for= mat_info *info, int plane, > + unsigned int width) > +{ > + unsigned int hdiv =3D plane ? info->hdiv : 1; > + unsigned int aligned_width =3D > + 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_fo= rmat_info *info, int plane, > + unsigned int height) > +{ > + unsigned int vdiv =3D plane ? info->vdiv : 1; > + unsigned int aligned_height =3D > + 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_form= at_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) > { > @@ -385,37 +413,19 @@ int v4l2_fill_pixfmt_mp(struct v4l2_pix_format_mpla= ne *pixfmt, > =20 > if (info->mem_planes =3D=3D 1) { > plane =3D &pixfmt->plane_fmt[0]; > - plane->bytesperline =3D ALIGN(width, v4l2_format_block_width(info, 0))= * info->bpp[0] / info->bpp_div[0]; > + plane->bytesperline =3D v4l2_format_plane_width(info, 0, width); > plane->sizeimage =3D 0; > =20 > - for (i =3D 0; i < info->comp_planes; i++) { > - unsigned int hdiv =3D (i =3D=3D 0) ? 1 : info->hdiv; > - unsigned int vdiv =3D (i =3D=3D 0) ? 1 : info->vdiv; > - unsigned int aligned_width; > - unsigned int aligned_height; > - > - aligned_width =3D ALIGN(width, v4l2_format_block_width(info, i)); > - aligned_height =3D ALIGN(height, v4l2_format_block_height(info, i)); > - > - plane->sizeimage +=3D info->bpp[i] * > - DIV_ROUND_UP(aligned_width, hdiv) * > - DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i]; > - } > + for (i =3D 0; i < info->comp_planes; i++) > + plane->sizeimage +=3D > + v4l2_format_plane_size(info, i, width, height); > } else { > for (i =3D 0; i < info->comp_planes; i++) { > - unsigned int hdiv =3D (i =3D=3D 0) ? 1 : info->hdiv; > - unsigned int vdiv =3D (i =3D=3D 0) ? 1 : info->vdiv; > - unsigned int aligned_width; > - unsigned int aligned_height; > - > - aligned_width =3D ALIGN(width, v4l2_format_block_width(info, i)); > - aligned_height =3D ALIGN(height, v4l2_format_block_height(info, i)); > - > plane =3D &pixfmt->plane_fmt[i]; > plane->bytesperline =3D > - info->bpp[i] * DIV_ROUND_UP(aligned_width, hdiv) / info->bpp_div[i]; > - plane->sizeimage =3D > - plane->bytesperline * DIV_ROUND_UP(aligned_height, vdiv); > + v4l2_format_plane_width(info, i, width); > + plane->sizeimage =3D plane->bytesperline * > + v4l2_format_plane_height(info, i, height); > } > } > return 0; > @@ -439,22 +449,12 @@ int v4l2_fill_pixfmt(struct v4l2_pix_format *pixfmt= , u32 pixelformat, > pixfmt->width =3D width; > pixfmt->height =3D height; > pixfmt->pixelformat =3D pixelformat; > - pixfmt->bytesperline =3D ALIGN(width, v4l2_format_block_width(info, 0))= * info->bpp[0] / info->bpp_div[0]; > + pixfmt->bytesperline =3D v4l2_format_plane_width(info, 0, width); > pixfmt->sizeimage =3D 0; > =20 > - for (i =3D 0; i < info->comp_planes; i++) { > - unsigned int hdiv =3D (i =3D=3D 0) ? 1 : info->hdiv; > - unsigned int vdiv =3D (i =3D=3D 0) ? 1 : info->vdiv; > - unsigned int aligned_width; > - unsigned int aligned_height; > - > - aligned_width =3D ALIGN(width, v4l2_format_block_width(info, i)); > - aligned_height =3D ALIGN(height, v4l2_format_block_height(info, i)); > - > - pixfmt->sizeimage +=3D info->bpp[i] * > - DIV_ROUND_UP(aligned_width, hdiv) * > - DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i]; > - } > + for (i =3D 0; i < info->comp_planes; i++) > + pixfmt->sizeimage +=3D > + v4l2_format_plane_size(info, i, width, height); > return 0; > } > EXPORT_SYMBOL_GPL(v4l2_fill_pixfmt);