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 5EFB5D149CD 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=u+JAkzjJnpAUVQL15OPEr6vP4qaCxrHEUcONwqIIac4=; b=R5Atybq2GHVk2s N9zs8ENHVseaUUYHYFItl0IQ4dI4khmZLMHDTFBepnMdN5wErBM12b6PhSRB7ughtRqlxfItWMJUv x7ZkKLhQfwQWcmEEfvAuZvSRD47buDyzr5J7YxjgJ/oce0LzNhTmrbkY1N3LWX0iIdYVzr5RtiLTm dPRru9UVj7kcC+6GmmLlfloAOhD415V+YOZPTeG4tKCtPBrF5WsqN3+xxMu2dt/YRd4Z4LMpDKPLo EwbWHXW2cnU4aRukEwxekFvU2cu0QtcjX1e2ZAieVzuInMosDl6wWUTLm8kL2yiL6cFgopC1yec9T jcUPiPXaIsJRmyKNYOSA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t4OwG-00000004mE4-0dgC; Fri, 25 Oct 2024 18:21:32 +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 1t4O9T-00000004bX2-3oos for linux-rockchip@lists.infradead.org; Fri, 25 Oct 2024 17:31:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1729877466; bh=1Z+cK8hK9nZ0+voBqc5inhySWEagtkKPmPLCPfhVY6o=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=AD6i35HFT1g6qyXPeOObREgH9kXm0nSkwjrtvhlGli0aD1dIfQV6uPCnLB0vzzH8T fnKxh90gdt2GpSsjoWXydSTxB1+vhVKnb+870IfWXnzcR3bDZ284AsAk8PcU6yWjHD rDvHjla7DVGbMYA7QBP3tHtC3z1QKKyeneRXsb3NgI4zNAPSeW5Jb7SNsDe+yn4lTA +ZMXuSRRTZ2mTvN3pSa9dWUJP9/y+Ct3bbT7JDSDAoB2qqS5fLfXuBp1o3KLAO01mA Tgs+/I71nThuRN0RhNEQpTTv14JlzHrUjag9VRiDLPUzWF0znemwZLExpQewAhD1Ud 1U3kQt71+Yfaw== 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 7D66917E36AD; Fri, 25 Oct 2024 19:31:04 +0200 (CEST) Message-ID: <0fe86c712839e3dec8ccd0d5ac7b9489a5015f42.camel@collabora.com> Subject: Re: [PATCH v6 02/11] media: v4l2: Add NV15 and NV20 pixel formats 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:31:01 -0400 In-Reply-To: <20240909192522.1076704-3-jonas@kwiboo.se> References: <20240909192522.1076704-1-jonas@kwiboo.se> <20240909192522.1076704-3-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_103108_157888_80115F0D X-CRM114-Status: GOOD ( 21.40 ) 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 TGUgbHVuZGkgMDkgc2VwdGVtYnJlIDIwMjQgw6AgMTk6MjUgKzAwMDAsIEpvbmFzIEthcmxtYW4g YSDDqWNyaXTCoDoKPiBBZGQgTlYxNSBhbmQgTlYyMCBwaXhlbCBmb3JtYXRzIHVzZWQgYnkgdGhl IFJvY2tjaGlwIFZpZGVvIERlY29kZXIgZm9yCj4gMTAtYml0IGJ1ZmZlcnMuCj4gCj4gTlYxNSBh bmQgTlYyMCBpcyAxMC1iaXQgNDoyOjAvNDoyOjIgc2VtaS1wbGFuYXIgWVVWIGZvcm1hdHMgc2lt aWxhciB0bwo+IE5WMTIgYW5kIE5WMTYsIHVzaW5nIDEwLWJpdCBjb21wb25lbnRzIHdpdGggbm8g cGFkZGluZyBiZXR3ZWVuIGVhY2gKPiBjb21wb25lbnQuIEluc3RlYWQsIGEgZ3JvdXAgb2YgNCBs dW1pbmFuY2UvY2hyb21pbmFuY2Ugc2FtcGxlcyBhcmUKPiBzdG9yZWQgb3ZlciA1IGJ5dGVzIGlu IGxpdHRsZSBlbmRpYW4gb3JkZXI6Cj4gCj4gWVlZWSA9IFVWVVYgPSA0ICogMTAgYml0cyA9IDQw IGJpdHMgPSA1IGJ5dGVzCj4gCj4gVGhlICcxNScgYW5kICcyMCcgc3VmZml4IHJlZmVycyB0byB0 aGUgb3B0aW11bSBlZmZlY3RpdmUgYml0cyBwZXIgcGl4ZWwKPiB3aGljaCBpcyBhY2hpZXZlZCB3 aGVuIHRoZSB0b3RhbCBudW1iZXIgb2YgbHVtaW5hbmNlIHNhbXBsZXMgaXMgYQo+IG11bHRpcGxl IG9mIDggZm9yIE5WMTUgYW5kIDQgZm9yIE5WMjAuCj4gCj4gU2lnbmVkLW9mZi1ieTogSm9uYXMg S2FybG1hbiA8am9uYXNAa3dpYm9vLnNlPgo+IFRlc3RlZC1ieTogTmljb2xhcyBEdWZyZXNuZSA8 bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgo+IFRlc3RlZC1ieTogQ2hyaXN0b3BoZXIg T2JiYXJkIDxjaHJpcy5vYmJhcmRAY29sbGFib3JhLmNvbT4KPiAtLS0KPiB2NjoKPiAtIE5vIGNo YW5nZQo+IAo+IHY1Ogo+IC0gQ29sbGVjdCB0LWIgdGFncwo+IAo+IHY0Ogo+IC0gTm8gY2hhbmdl Cj4gCj4gdjM6Cj4gLSBVc2UgYnBwIGFuZCBicHBfZGl2IGluc3RlYWQgb2YgdGhlIG1pc3VzZSBv ZiBibG9ja193L2Jsb2NrX2gKPiAtIFVwZGF0ZSBkb2N1bWVudGF0aW9uLCBleHBhbmQgdG8gdXNl IGZ1bGwgNHg0IHNhbXBsZSBpbWFnZQo+IC0tLQo+ICAuLi4vbWVkaWEvdjRsL3BpeGZtdC15dXYt cGxhbmFyLnJzdCAgICAgICAgICAgfCAxMjggKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMv bWVkaWEvdjRsMi1jb3JlL3Y0bDItY29tbW9uLmMgICAgICAgICB8ICAgMiArCj4gIGRyaXZlcnMv bWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYyAgICAgICAgICB8ICAgMiArCj4gIGluY2x1ZGUv dWFwaS9saW51eC92aWRlb2RldjIuaCAgICAgICAgICAgICAgICB8ICAgMiArCj4gIDQgZmlsZXMg Y2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlv bi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9waXhmbXQteXV2LXBsYW5hci5yc3QgYi9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3BpeGZtdC15dXYtcGxhbmFyLnJzdAo+IGlu ZGV4IGI3ODhmNjkzMzg1NS4uMjJjYWQ4Yzk3MjZiIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRp b24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvcGl4Zm10LXl1di1wbGFuYXIucnN0Cj4gKysrIGIv RG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9waXhmbXQteXV2LXBsYW5hci5y c3QKPiBAQCAtNzksNiArNzksMTMgQEAgQWxsIGNvbXBvbmVudHMgYXJlIHN0b3JlZCB3aXRoIHRo ZSBzYW1lIG51bWJlciBvZiBiaXRzIHBlciBjb21wb25lbnQuCj4gICAgICAgIC0gQ3IsIENiCj4g ICAgICAgIC0gWWVzCj4gICAgICAgIC0gTGluZWFyCj4gKyAgICAqIC0gVjRMMl9QSVhfRk1UX05W MTUKCldoZW4gSSBsb29rIGF0IHRoZSBleGlzdGluZyBncm91cGluZywgYWxsIHRoZSBOVjEyIHZh cmlhbnRzIGFyZSB0b2dldGhlciwgYnV0CnRoaXMgcGF0Y2ggc3BsaXRzIHRoZW0gYXBwYXJ0LCBh bmQgbGVhdmVzIGEgZGlzdGFuY2Ugd2l0aCBpdHMgdGlsZWQgdmFyaWFudApOVjE1XzRMNC4KCkkg dGhpbmsgSSdkIHByZWZlciB0byBzZWUgdGhhdCByaWdodCBiZWZvcmUgTlYxNV80TDQsIGl0IGNh biBhbHNvIGFsbG93IHJlbW92aW5nCnJlZHVuZGFudCB3b3JkaW5ncyBiZXR3ZWVuIHRoZSB0d28u Cgo+ICsgICAgICAtICdOVjE1Jwo+ICsgICAgICAtIDEwCj4gKyAgICAgIC0gNDoyOjAKPiArICAg ICAgLSBDYiwgQ3IKPiArICAgICAgLSBZZXMKPiArICAgICAgLSBMaW5lYXIKPiAgICAgICogLSBW NEwyX1BJWF9GTVRfTlYxMk0KPiAgICAgICAgLSAnTk0xMicKPiAgICAgICAgLSA4Cj4gQEAgLTE3 Miw2ICsxNzksMTMgQEAgQWxsIGNvbXBvbmVudHMgYXJlIHN0b3JlZCB3aXRoIHRoZSBzYW1lIG51 bWJlciBvZiBiaXRzIHBlciBjb21wb25lbnQuCj4gICAgICAgIC0gQ3IsIENiCj4gICAgICAgIC0g WWVzCj4gICAgICAgIC0gTGluZWFyCj4gKyAgICAqIC0gVjRMMl9QSVhfRk1UX05WMjAKPiArICAg ICAgLSAnTlYyMCcKPiArICAgICAgLSAxMAo+ICsgICAgICAtIDQ6MjoyCj4gKyAgICAgIC0gQ2Is IENyCj4gKyAgICAgIC0gWWVzCj4gKyAgICAgIC0gTGluZWFyCgpBZ2FpbiwgZm9sbG93aW5nIHNv bWUgbG9naWMsIEknZCBwbGFjZSB0aGF0IGFmdGVyIFY0TDJfUElYX0ZNVF9OVjYxTSwga2VlcGlu ZwphbGwgOGJpdCA0OjI6MiBmb3JtYXRzIGJlZm9yZSB0aGUgMTBiaXQgb25lcy4KCj4gICAgICAq IC0gVjRMMl9QSVhfRk1UX05WMTZNCj4gICAgICAgIC0gJ05NMTYnCj4gICAgICAgIC0gOAo+IEBA IC0zMDIsNiArMzE2LDU3IEBAIG9mIHRoZSBsdW1hIHBsYW5lLgo+ICAgICAgICAtIENyXCA6c3Vi OmAxMWAKPiAgCj4gIAo+ICsuLiBfVjRMMi1QSVgtRk1ULU5WMTU6Cj4gKwo+ICtOVjE1Cj4gKy0t LS0KPiArCj4gK1NlbWktcGxhbmFyIDEwLWJpdCBZVVYgNDoyOjAgZm9ybWF0IHNpbWlsYXIgdG8g TlYxMiwgdXNpbmcgMTAtYml0IGNvbXBvbmVudHMKPiArd2l0aCBubyBwYWRkaW5nIGJldHdlZW4g ZWFjaCBjb21wb25lbnQuIEEgZ3JvdXAgb2YgNCBjb21wb25lbnRzIGFyZSBzdG9yZWQgb3Zlcgo+ ICs1IGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4gb3JkZXIuCj4gKwo+ICsuLiBmbGF0LXRhYmxlOjog U2FtcGxlIDR4NCBOVjE1IEltYWdlICgxIGJ5dGUgcGVyIGNlbGwpCj4gKyAgICA6aGVhZGVyLXJv d3M6ICAwCj4gKyAgICA6c3R1Yi1jb2x1bW5zOiAwCj4gKwo+ICsgICAgKiAtIHN0YXJ0ICsgMDoK PiArICAgICAgLSBZJ1wgOnN1YjpgMDBbNzowXWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMDFbNTow XWBcIFknXCA6c3ViOmAwMFs5OjhdYAo+ICsgICAgICAtIFknXCA6c3ViOmAwMlszOjBdYFwgWSdc IDpzdWI6YDAxWzk6Nl1gCj4gKyAgICAgIC0gWSdcIDpzdWI6YDAzWzE6MF1gXCBZJ1wgOnN1Yjpg MDJbOTo0XWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMDNbOToyXWAKPiArICAgICogLSBzdGFydCAr IDU6Cj4gKyAgICAgIC0gWSdcIDpzdWI6YDEwWzc6MF1gCj4gKyAgICAgIC0gWSdcIDpzdWI6YDEx WzU6MF1gXCBZJ1wgOnN1YjpgMTBbOTo4XWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMTJbMzowXWBc IFknXCA6c3ViOmAxMVs5OjZdYAo+ICsgICAgICAtIFknXCA6c3ViOmAxM1sxOjBdYFwgWSdcIDpz dWI6YDEyWzk6NF1gCj4gKyAgICAgIC0gWSdcIDpzdWI6YDEzWzk6Ml1gCj4gKyAgICAqIC0gc3Rh cnQgKyAxMDoKPiArICAgICAgLSBZJ1wgOnN1YjpgMjBbNzowXWAKPiArICAgICAgLSBZJ1wgOnN1 YjpgMjFbNTowXWBcIFknXCA6c3ViOmAyMFs5OjhdYAo+ICsgICAgICAtIFknXCA6c3ViOmAyMlsz OjBdYFwgWSdcIDpzdWI6YDIxWzk6Nl1gCj4gKyAgICAgIC0gWSdcIDpzdWI6YDIzWzE6MF1gXCBZ J1wgOnN1YjpgMjJbOTo0XWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMjNbOToyXWAKPiArICAgICog LSBzdGFydCArIDE1Ogo+ICsgICAgICAtIFknXCA6c3ViOmAzMFs3OjBdYAo+ICsgICAgICAtIFkn XCA6c3ViOmAzMVs1OjBdYFwgWSdcIDpzdWI6YDMwWzk6OF1gCj4gKyAgICAgIC0gWSdcIDpzdWI6 YDMyWzM6MF1gXCBZJ1wgOnN1YjpgMzFbOTo2XWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMzNbMTow XWBcIFknXCA6c3ViOmAzMls5OjRdYAo+ICsgICAgICAtIFknXCA6c3ViOmAzM1s5OjJdYAo+ICsg ICAgKiAtIHN0YXJ0ICsgMjA6Cj4gKyAgICAgIC0gQ2JcIDpzdWI6YDAwWzc6MF1gCj4gKyAgICAg IC0gQ3JcIDpzdWI6YDAwWzU6MF1gXCBDYlwgOnN1YjpgMDBbOTo4XWAKPiArICAgICAgLSBDYlwg OnN1YjpgMDFbMzowXWBcIENyXCA6c3ViOmAwMFs5OjZdYAo+ICsgICAgICAtIENyXCA6c3ViOmAw MVsxOjBdYFwgQ2JcIDpzdWI6YDAxWzk6NF1gCj4gKyAgICAgIC0gQ3JcIDpzdWI6YDAxWzk6Ml1g Cj4gKyAgICAqIC0gc3RhcnQgKyAyNToKPiArICAgICAgLSBDYlwgOnN1YjpgMTBbNzowXWAKPiAr ICAgICAgLSBDclwgOnN1YjpgMTBbNTowXWBcIENiXCA6c3ViOmAxMFs5OjhdYAo+ICsgICAgICAt IENiXCA6c3ViOmAxMVszOjBdYFwgQ3JcIDpzdWI6YDEwWzk6Nl1gCj4gKyAgICAgIC0gQ3JcIDpz dWI6YDExWzE6MF1gXCBDYlwgOnN1YjpgMTFbOTo0XWAKPiArICAgICAgLSBDclwgOnN1YjpgMTFb OToyXWAKPiArCj4gKwo+ICAuLiBfVjRMMi1QSVgtRk1ULU5WMTJNVDoKPiAgLi4gX1Y0TDItUElY LUZNVC1OVjEyTVQtMTZYMTY6Cj4gIC4uIF9WNEwyLVBJWC1GTVQtTlYxMi00TDQ6Cj4gQEAgLTYz MSw2ICs2OTYsNjkgQEAgbnVtYmVyIG9mIGxpbmVzIGFzIHRoZSBsdW1hIHBsYW5lLgo+ICAgICAg ICAtIENyXCA6c3ViOmAzMmAKPiAgCj4gIAo+ICsuLiBfVjRMMi1QSVgtRk1ULU5WMjA6Cj4gKwo+ ICtOVjIwCj4gKy0tLS0KPiArCj4gK1NlbWktcGxhbmFyIDEwLWJpdCBZVVYgNDoyOjIgZm9ybWF0 IHNpbWlsYXIgdG8gTlYxNiwgdXNpbmcgMTAtYml0IGNvbXBvbmVudHMKPiArd2l0aCBubyBwYWRk aW5nIGJldHdlZW4gZWFjaCBjb21wb25lbnQuIEEgZ3JvdXAgb2YgNCBjb21wb25lbnRzIGFyZSBz dG9yZWQgb3Zlcgo+ICs1IGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4gb3JkZXIuCj4gKwo+ICsuLiBm bGF0LXRhYmxlOjogU2FtcGxlIDR4NCBOVjIwIEltYWdlICgxIGJ5dGUgcGVyIGNlbGwpCj4gKyAg ICA6aGVhZGVyLXJvd3M6ICAwCj4gKyAgICA6c3R1Yi1jb2x1bW5zOiAwCj4gKwo+ICsgICAgKiAt IHN0YXJ0ICsgMDoKPiArICAgICAgLSBZJ1wgOnN1YjpgMDBbNzowXWAKPiArICAgICAgLSBZJ1wg OnN1YjpgMDFbNTowXWBcIFknXCA6c3ViOmAwMFs5OjhdYAo+ICsgICAgICAtIFknXCA6c3ViOmAw MlszOjBdYFwgWSdcIDpzdWI6YDAxWzk6Nl1gCj4gKyAgICAgIC0gWSdcIDpzdWI6YDAzWzE6MF1g XCBZJ1wgOnN1YjpgMDJbOTo0XWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMDNbOToyXWAKPiArICAg ICogLSBzdGFydCArIDU6Cj4gKyAgICAgIC0gWSdcIDpzdWI6YDEwWzc6MF1gCj4gKyAgICAgIC0g WSdcIDpzdWI6YDExWzU6MF1gXCBZJ1wgOnN1YjpgMTBbOTo4XWAKPiArICAgICAgLSBZJ1wgOnN1 YjpgMTJbMzowXWBcIFknXCA6c3ViOmAxMVs5OjZdYAo+ICsgICAgICAtIFknXCA6c3ViOmAxM1sx OjBdYFwgWSdcIDpzdWI6YDEyWzk6NF1gCj4gKyAgICAgIC0gWSdcIDpzdWI6YDEzWzk6Ml1gCj4g KyAgICAqIC0gc3RhcnQgKyAxMDoKPiArICAgICAgLSBZJ1wgOnN1YjpgMjBbNzowXWAKPiArICAg ICAgLSBZJ1wgOnN1YjpgMjFbNTowXWBcIFknXCA6c3ViOmAyMFs5OjhdYAo+ICsgICAgICAtIFkn XCA6c3ViOmAyMlszOjBdYFwgWSdcIDpzdWI6YDIxWzk6Nl1gCj4gKyAgICAgIC0gWSdcIDpzdWI6 YDIzWzE6MF1gXCBZJ1wgOnN1YjpgMjJbOTo0XWAKPiArICAgICAgLSBZJ1wgOnN1YjpgMjNbOToy XWAKPiArICAgICogLSBzdGFydCArIDE1Ogo+ICsgICAgICAtIFknXCA6c3ViOmAzMFs3OjBdYAo+ ICsgICAgICAtIFknXCA6c3ViOmAzMVs1OjBdYFwgWSdcIDpzdWI6YDMwWzk6OF1gCj4gKyAgICAg IC0gWSdcIDpzdWI6YDMyWzM6MF1gXCBZJ1wgOnN1YjpgMzFbOTo2XWAKPiArICAgICAgLSBZJ1wg OnN1YjpgMzNbMTowXWBcIFknXCA6c3ViOmAzMls5OjRdYAo+ICsgICAgICAtIFknXCA6c3ViOmAz M1s5OjJdYAo+ICsgICAgKiAtIHN0YXJ0ICsgMjA6Cj4gKyAgICAgIC0gQ2JcIDpzdWI6YDAwWzc6 MF1gCj4gKyAgICAgIC0gQ3JcIDpzdWI6YDAwWzU6MF1gXCBDYlwgOnN1YjpgMDBbOTo4XWAKPiAr ICAgICAgLSBDYlwgOnN1YjpgMDFbMzowXWBcIENyXCA6c3ViOmAwMFs5OjZdYAo+ICsgICAgICAt IENyXCA6c3ViOmAwMVsxOjBdYFwgQ2JcIDpzdWI6YDAxWzk6NF1gCj4gKyAgICAgIC0gQ3JcIDpz dWI6YDAxWzk6Ml1gCj4gKyAgICAqIC0gc3RhcnQgKyAyNToKPiArICAgICAgLSBDYlwgOnN1Yjpg MTBbNzowXWAKPiArICAgICAgLSBDclwgOnN1YjpgMTBbNTowXWBcIENiXCA6c3ViOmAxMFs5Ojhd YAo+ICsgICAgICAtIENiXCA6c3ViOmAxMVszOjBdYFwgQ3JcIDpzdWI6YDEwWzk6Nl1gCj4gKyAg ICAgIC0gQ3JcIDpzdWI6YDExWzE6MF1gXCBDYlwgOnN1YjpgMTFbOTo0XWAKPiArICAgICAgLSBD clwgOnN1YjpgMTFbOToyXWAKPiArICAgICogLSBzdGFydCArIDMwOgo+ICsgICAgICAtIENiXCA6 c3ViOmAyMFs3OjBdYAo+ICsgICAgICAtIENyXCA6c3ViOmAyMFs1OjBdYFwgQ2JcIDpzdWI6YDIw Wzk6OF1gCj4gKyAgICAgIC0gQ2JcIDpzdWI6YDIxWzM6MF1gXCBDclwgOnN1YjpgMjBbOTo2XWAK PiArICAgICAgLSBDclwgOnN1YjpgMjFbMTowXWBcIENiXCA6c3ViOmAyMVs5OjRdYAo+ICsgICAg ICAtIENyXCA6c3ViOmAyMVs5OjJdYAo+ICsgICAgKiAtIHN0YXJ0ICsgMzU6Cj4gKyAgICAgIC0g Q2JcIDpzdWI6YDMwWzc6MF1gCj4gKyAgICAgIC0gQ3JcIDpzdWI6YDMwWzU6MF1gXCBDYlwgOnN1 YjpgMzBbOTo4XWAKPiArICAgICAgLSBDYlwgOnN1YjpgMzFbMzowXWBcIENyXCA6c3ViOmAzMFs5 OjZdYAo+ICsgICAgICAtIENyXCA6c3ViOmAzMVsxOjBdYFwgQ2JcIDpzdWI6YDMxWzk6NF1gCj4g KyAgICAgIC0gQ3JcIDpzdWI6YDMxWzk6Ml1gCj4gKwo+ICsKPiAgLi4gX1Y0TDItUElYLUZNVC1O VjI0Ogo+ICAuLiBfVjRMMi1QSVgtRk1ULU5WNDI6Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L21lZGlhL3Y0bDItY29yZS92NGwyLWNvbW1vbi5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUv djRsMi1jb21tb24uYwo+IGluZGV4IDhhZDA0ZDQ4YTAyMy4uNTNiNmZkZmNiNGRkIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY29tbW9uLmMKPiArKysgYi9kcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWNvbW1vbi5jCj4gQEAgLTI3Nyw4ICsyNzcsMTAgQEAg Y29uc3Qgc3RydWN0IHY0bDJfZm9ybWF0X2luZm8gKnY0bDJfZm9ybWF0X2luZm8odTMyIGZvcm1h dCkKPiAgCQkvKiBZVVYgcGxhbmFyIGZvcm1hdHMgKi8KPiAgCQl7IC5mb3JtYXQgPSBWNEwyX1BJ WF9GTVRfTlYxMiwgICAgLnBpeGVsX2VuYyA9IFY0TDJfUElYRUxfRU5DX1lVViwgLm1lbV9wbGFu ZXMgPSAxLCAuY29tcF9wbGFuZXMgPSAyLCAuYnBwID0geyAxLCAyLCAwLCAwIH0sIC5icHBfZGl2 ID0geyAxLCAxLCAxLCAxIH0sIC5oZGl2ID0gMiwgLnZkaXYgPSAyIH0sCj4gIAkJeyAuZm9ybWF0 ID0gVjRMMl9QSVhfRk1UX05WMjEsICAgIC5waXhlbF9lbmMgPSBWNEwyX1BJWEVMX0VOQ19ZVVYs IC5tZW1fcGxhbmVzID0gMSwgLmNvbXBfcGxhbmVzID0gMiwgLmJwcCA9IHsgMSwgMiwgMCwgMCB9 LCAuYnBwX2RpdiA9IHsgMSwgMSwgMSwgMSB9LCAuaGRpdiA9IDIsIC52ZGl2ID0gMiB9LAo+ICsJ CXsgLmZvcm1hdCA9IFY0TDJfUElYX0ZNVF9OVjE1LCAgICAucGl4ZWxfZW5jID0gVjRMMl9QSVhF TF9FTkNfWVVWLCAubWVtX3BsYW5lcyA9IDEsIC5jb21wX3BsYW5lcyA9IDIsIC5icHAgPSB7IDUs IDEwLCAwLCAwIH0sIC5icHBfZGl2ID0geyA0LCA0LCAxLCAxIH0sIC5oZGl2ID0gMiwgLnZkaXYg PSAyIH0sCj4gIAkJeyAuZm9ybWF0ID0gVjRMMl9QSVhfRk1UX05WMTYsICAgIC5waXhlbF9lbmMg PSBWNEwyX1BJWEVMX0VOQ19ZVVYsIC5tZW1fcGxhbmVzID0gMSwgLmNvbXBfcGxhbmVzID0gMiwg LmJwcCA9IHsgMSwgMiwgMCwgMCB9LCAuYnBwX2RpdiA9IHsgMSwgMSwgMSwgMSB9LCAuaGRpdiA9 IDIsIC52ZGl2ID0gMSB9LAo+ICAJCXsgLmZvcm1hdCA9IFY0TDJfUElYX0ZNVF9OVjYxLCAgICAu cGl4ZWxfZW5jID0gVjRMMl9QSVhFTF9FTkNfWVVWLCAubWVtX3BsYW5lcyA9IDEsIC5jb21wX3Bs YW5lcyA9IDIsIC5icHAgPSB7IDEsIDIsIDAsIDAgfSwgLmJwcF9kaXYgPSB7IDEsIDEsIDEsIDEg fSwgLmhkaXYgPSAyLCAudmRpdiA9IDEgfSwKPiArCQl7IC5mb3JtYXQgPSBWNEwyX1BJWF9GTVRf TlYyMCwgICAgLnBpeGVsX2VuYyA9IFY0TDJfUElYRUxfRU5DX1lVViwgLm1lbV9wbGFuZXMgPSAx LCAuY29tcF9wbGFuZXMgPSAyLCAuYnBwID0geyA1LCAxMCwgMCwgMCB9LCAuYnBwX2RpdiA9IHsg NCwgNCwgMSwgMSB9LCAuaGRpdiA9IDIsIC52ZGl2ID0gMSB9LAo+ICAJCXsgLmZvcm1hdCA9IFY0 TDJfUElYX0ZNVF9OVjI0LCAgICAucGl4ZWxfZW5jID0gVjRMMl9QSVhFTF9FTkNfWVVWLCAubWVt X3BsYW5lcyA9IDEsIC5jb21wX3BsYW5lcyA9IDIsIC5icHAgPSB7IDEsIDIsIDAsIDAgfSwgLmJw cF9kaXYgPSB7IDEsIDEsIDEsIDEgfSwgLmhkaXYgPSAxLCAudmRpdiA9IDEgfSwKPiAgCQl7IC5m b3JtYXQgPSBWNEwyX1BJWF9GTVRfTlY0MiwgICAgLnBpeGVsX2VuYyA9IFY0TDJfUElYRUxfRU5D X1lVViwgLm1lbV9wbGFuZXMgPSAxLCAuY29tcF9wbGFuZXMgPSAyLCAuYnBwID0geyAxLCAyLCAw LCAwIH0sIC5icHBfZGl2ID0geyAxLCAxLCAxLCAxIH0sIC5oZGl2ID0gMSwgLnZkaXYgPSAxIH0s Cj4gIAkJeyAuZm9ybWF0ID0gVjRMMl9QSVhfRk1UX1AwMTAsICAgIC5waXhlbF9lbmMgPSBWNEwy X1BJWEVMX0VOQ19ZVVYsIC5tZW1fcGxhbmVzID0gMSwgLmNvbXBfcGxhbmVzID0gMiwgLmJwcCA9 IHsgMiwgMiwgMCwgMCB9LCAuYnBwX2RpdiA9IHsgMSwgMSwgMSwgMSB9LCAuaGRpdiA9IDIsIC52 ZGl2ID0gMSB9LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlv Y3RsLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmMKPiBpbmRleCBlMTRk YjY3YmU5N2MuLjlmMDlmNWNmM2UzZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDIt Y29yZS92NGwyLWlvY3RsLmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlv Y3RsLmMKPiBAQCAtMTM2MCw4ICsxMzYwLDEwIEBAIHN0YXRpYyB2b2lkIHY0bF9maWxsX2ZtdGRl c2Moc3RydWN0IHY0bDJfZm10ZGVzYyAqZm10KQo+ICAJY2FzZSBWNEwyX1BJWF9GTVRfWVVWNDhf MTI6CWRlc2NyID0gIjEyLWJpdCBZVVYgNDo0OjQgUGFja2VkIjsgYnJlYWs7Cj4gIAljYXNlIFY0 TDJfUElYX0ZNVF9OVjEyOgkJZGVzY3IgPSAiWS9VViA0OjI6MCI7IGJyZWFrOwo+ICAJY2FzZSBW NEwyX1BJWF9GTVRfTlYyMToJCWRlc2NyID0gIlkvVlUgNDoyOjAiOyBicmVhazsKPiArCWNhc2Ug VjRMMl9QSVhfRk1UX05WMTU6CQlkZXNjciA9ICIxMC1iaXQgWS9VViA0OjI6MCAoUGFja2VkKSI7 IGJyZWFrOwo+ICAJY2FzZSBWNEwyX1BJWF9GTVRfTlYxNjoJCWRlc2NyID0gIlkvVVYgNDoyOjIi OyBicmVhazsKPiAgCWNhc2UgVjRMMl9QSVhfRk1UX05WNjE6CQlkZXNjciA9ICJZL1ZVIDQ6Mjoy IjsgYnJlYWs7Cj4gKwljYXNlIFY0TDJfUElYX0ZNVF9OVjIwOgkJZGVzY3IgPSAiMTAtYml0IFkv VVYgNDoyOjIgKFBhY2tlZCkiOyBicmVhazsKPiAgCWNhc2UgVjRMMl9QSVhfRk1UX05WMjQ6CQlk ZXNjciA9ICJZL1VWIDQ6NDo0IjsgYnJlYWs7Cj4gIAljYXNlIFY0TDJfUElYX0ZNVF9OVjQyOgkJ ZGVzY3IgPSAiWS9WVSA0OjQ6NCI7IGJyZWFrOwo+ICAJY2FzZSBWNEwyX1BJWF9GTVRfUDAxMDoJ CWRlc2NyID0gIjEwLWJpdCBZL1VWIDQ6MjowIjsgYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIu aAo+IGluZGV4IDcyNWU4NmM0YmJiZC4uOTQxYTk2YjgxNjcyIDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRl b2RldjIuaAo+IEBAIC02NDIsOCArNjQyLDEwIEBAIHN0cnVjdCB2NGwyX3BpeF9mb3JtYXQgewo+ ICAvKiB0d28gcGxhbmVzIC0tIG9uZSBZLCBvbmUgQ3IgKyBDYiBpbnRlcmxlYXZlZCAgKi8KPiAg I2RlZmluZSBWNEwyX1BJWF9GTVRfTlYxMiAgICB2NGwyX2ZvdXJjYygnTicsICdWJywgJzEnLCAn MicpIC8qIDEyICBZL0NiQ3IgNDoyOjAgICovCj4gICNkZWZpbmUgVjRMMl9QSVhfRk1UX05WMjEg ICAgdjRsMl9mb3VyY2MoJ04nLCAnVicsICcyJywgJzEnKSAvKiAxMiAgWS9DckNiIDQ6MjowICAq Lwo+ICsjZGVmaW5lIFY0TDJfUElYX0ZNVF9OVjE1ICAgIHY0bDJfZm91cmNjKCdOJywgJ1YnLCAn MScsICc1JykgLyogMTUgIFkvQ2JDciA0OjI6MCAxMC1iaXQgcGFja2VkICovCj4gICNkZWZpbmUg VjRMMl9QSVhfRk1UX05WMTYgICAgdjRsMl9mb3VyY2MoJ04nLCAnVicsICcxJywgJzYnKSAvKiAx NiAgWS9DYkNyIDQ6MjoyICAqLwo+ICAjZGVmaW5lIFY0TDJfUElYX0ZNVF9OVjYxICAgIHY0bDJf Zm91cmNjKCdOJywgJ1YnLCAnNicsICcxJykgLyogMTYgIFkvQ3JDYiA0OjI6MiAgKi8KPiArI2Rl ZmluZSBWNEwyX1BJWF9GTVRfTlYyMCAgICB2NGwyX2ZvdXJjYygnTicsICdWJywgJzInLCAnMCcp IC8qIDIwICBZL0NiQ3IgNDoyOjIgMTAtYml0IHBhY2tlZCAqLwo+ICAjZGVmaW5lIFY0TDJfUElY X0ZNVF9OVjI0ICAgIHY0bDJfZm91cmNjKCdOJywgJ1YnLCAnMicsICc0JykgLyogMjQgIFkvQ2JD ciA0OjQ6NCAgKi8KPiAgI2RlZmluZSBWNEwyX1BJWF9GTVRfTlY0MiAgICB2NGwyX2ZvdXJjYygn TicsICdWJywgJzQnLCAnMicpIC8qIDI0ICBZL0NyQ2IgNDo0OjQgICovCj4gICNkZWZpbmUgVjRM Ml9QSVhfRk1UX1AwMTAgICAgdjRsMl9mb3VyY2MoJ1AnLCAnMCcsICcxJywgJzAnKSAvKiAyNCAg WS9DYkNyIDQ6MjowIDEwLWJpdCBwZXIgY29tcG9uZW50ICovCgoKQXBwYXJ0IGZyb20gdGhlIGxv Y2F0aW9uLCBJJ20gaGFwcHkgd2l0aCB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRoZQpkb2N1bWVu dGF0aW9uLgoKUmV2aWV3ZWQtYnk6IE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVA Y29sbGFib3JhLmNvbT4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJvY2tjaGlwCg== 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 3718E2033A for ; Fri, 25 Oct 2024 17:31:08 +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=1729877471; cv=none; b=E/bX2XhzX3U1iiKsilT94Sp+8xVrmkwGIFE0YrvXOmYQz0Db7Of3MIxfz5YXV4jiMGavoP7WlMparikX7o37dr2YXi1XW3d0rfXqr30hnDEAbUOLrsleV0MLeqlsGXZd7XU+W8gsQrHr53/fdbIOTjHwhIKgFoL3KkGExw2RPRQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729877471; c=relaxed/simple; bh=1Z+cK8hK9nZ0+voBqc5inhySWEagtkKPmPLCPfhVY6o=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=QOnbKQBHOcxz4rYFzKV4uW+IsKtSUZ0w1B+isibQ8Lg8sCu9/OtBydqB8///PLlXu/m3LmkQL+YDfFqB9I373tLOFR90KDfldqdDU+wAX3jh2kCUWOL9CsnHUAElLztCW1bwosa5ySXCXqPVZnfANVD6/fFAqAIknTkhz4CGmI8= 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=AD6i35HF; 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="AD6i35HF" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1729877466; bh=1Z+cK8hK9nZ0+voBqc5inhySWEagtkKPmPLCPfhVY6o=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=AD6i35HFT1g6qyXPeOObREgH9kXm0nSkwjrtvhlGli0aD1dIfQV6uPCnLB0vzzH8T fnKxh90gdt2GpSsjoWXydSTxB1+vhVKnb+870IfWXnzcR3bDZ284AsAk8PcU6yWjHD rDvHjla7DVGbMYA7QBP3tHtC3z1QKKyeneRXsb3NgI4zNAPSeW5Jb7SNsDe+yn4lTA +ZMXuSRRTZ2mTvN3pSa9dWUJP9/y+Ct3bbT7JDSDAoB2qqS5fLfXuBp1o3KLAO01mA Tgs+/I71nThuRN0RhNEQpTTv14JlzHrUjag9VRiDLPUzWF0znemwZLExpQewAhD1Ud 1U3kQt71+Yfaw== 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 7D66917E36AD; Fri, 25 Oct 2024 19:31:04 +0200 (CEST) Message-ID: <0fe86c712839e3dec8ccd0d5ac7b9489a5015f42.camel@collabora.com> Subject: Re: [PATCH v6 02/11] media: v4l2: Add NV15 and NV20 pixel formats 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:31:01 -0400 In-Reply-To: <20240909192522.1076704-3-jonas@kwiboo.se> References: <20240909192522.1076704-1-jonas@kwiboo.se> <20240909192522.1076704-3-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:25 +0000, Jonas Karlman a écrit : > Add NV15 and NV20 pixel formats used by the Rockchip Video Decoder for > 10-bit buffers. > > NV15 and NV20 is 10-bit 4:2:0/4:2:2 semi-planar YUV formats similar to > NV12 and NV16, using 10-bit components with no padding between each > component. Instead, a group of 4 luminance/chrominance samples are > stored over 5 bytes in little endian order: > > YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes > > The '15' and '20' suffix refers to the optimum effective bits per pixel > which is achieved when the total number of luminance samples is a > multiple of 8 for NV15 and 4 for NV20. > > 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: > - Use bpp and bpp_div instead of the misuse of block_w/block_h > - Update documentation, expand to use full 4x4 sample image > --- > .../media/v4l/pixfmt-yuv-planar.rst | 128 ++++++++++++++++++ > drivers/media/v4l2-core/v4l2-common.c | 2 + > drivers/media/v4l2-core/v4l2-ioctl.c | 2 + > include/uapi/linux/videodev2.h | 2 + > 4 files changed, 134 insertions(+) > > diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst > index b788f6933855..22cad8c9726b 100644 > --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst > +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst > @@ -79,6 +79,13 @@ All components are stored with the same number of bits per component. > - Cr, Cb > - Yes > - Linear > + * - V4L2_PIX_FMT_NV15 When I look at the existing grouping, all the NV12 variants are together, but this patch splits them appart, and leaves a distance with its tiled variant NV15_4L4. I think I'd prefer to see that right before NV15_4L4, it can also allow removing redundant wordings between the two. > + - 'NV15' > + - 10 > + - 4:2:0 > + - Cb, Cr > + - Yes > + - Linear > * - V4L2_PIX_FMT_NV12M > - 'NM12' > - 8 > @@ -172,6 +179,13 @@ All components are stored with the same number of bits per component. > - Cr, Cb > - Yes > - Linear > + * - V4L2_PIX_FMT_NV20 > + - 'NV20' > + - 10 > + - 4:2:2 > + - Cb, Cr > + - Yes > + - Linear Again, following some logic, I'd place that after V4L2_PIX_FMT_NV61M, keeping all 8bit 4:2:2 formats before the 10bit ones. > * - V4L2_PIX_FMT_NV16M > - 'NM16' > - 8 > @@ -302,6 +316,57 @@ of the luma plane. > - Cr\ :sub:`11` > > > +.. _V4L2-PIX-FMT-NV15: > + > +NV15 > +---- > + > +Semi-planar 10-bit YUV 4:2:0 format similar to NV12, using 10-bit components > +with no padding between each component. A group of 4 components are stored over > +5 bytes in little endian order. > + > +.. flat-table:: Sample 4x4 NV15 Image (1 byte per cell) > + :header-rows: 0 > + :stub-columns: 0 > + > + * - start + 0: > + - Y'\ :sub:`00[7:0]` > + - Y'\ :sub:`01[5:0]`\ Y'\ :sub:`00[9:8]` > + - Y'\ :sub:`02[3:0]`\ Y'\ :sub:`01[9:6]` > + - Y'\ :sub:`03[1:0]`\ Y'\ :sub:`02[9:4]` > + - Y'\ :sub:`03[9:2]` > + * - start + 5: > + - Y'\ :sub:`10[7:0]` > + - Y'\ :sub:`11[5:0]`\ Y'\ :sub:`10[9:8]` > + - Y'\ :sub:`12[3:0]`\ Y'\ :sub:`11[9:6]` > + - Y'\ :sub:`13[1:0]`\ Y'\ :sub:`12[9:4]` > + - Y'\ :sub:`13[9:2]` > + * - start + 10: > + - Y'\ :sub:`20[7:0]` > + - Y'\ :sub:`21[5:0]`\ Y'\ :sub:`20[9:8]` > + - Y'\ :sub:`22[3:0]`\ Y'\ :sub:`21[9:6]` > + - Y'\ :sub:`23[1:0]`\ Y'\ :sub:`22[9:4]` > + - Y'\ :sub:`23[9:2]` > + * - start + 15: > + - Y'\ :sub:`30[7:0]` > + - Y'\ :sub:`31[5:0]`\ Y'\ :sub:`30[9:8]` > + - Y'\ :sub:`32[3:0]`\ Y'\ :sub:`31[9:6]` > + - Y'\ :sub:`33[1:0]`\ Y'\ :sub:`32[9:4]` > + - Y'\ :sub:`33[9:2]` > + * - start + 20: > + - Cb\ :sub:`00[7:0]` > + - Cr\ :sub:`00[5:0]`\ Cb\ :sub:`00[9:8]` > + - Cb\ :sub:`01[3:0]`\ Cr\ :sub:`00[9:6]` > + - Cr\ :sub:`01[1:0]`\ Cb\ :sub:`01[9:4]` > + - Cr\ :sub:`01[9:2]` > + * - start + 25: > + - Cb\ :sub:`10[7:0]` > + - Cr\ :sub:`10[5:0]`\ Cb\ :sub:`10[9:8]` > + - Cb\ :sub:`11[3:0]`\ Cr\ :sub:`10[9:6]` > + - Cr\ :sub:`11[1:0]`\ Cb\ :sub:`11[9:4]` > + - Cr\ :sub:`11[9:2]` > + > + > .. _V4L2-PIX-FMT-NV12MT: > .. _V4L2-PIX-FMT-NV12MT-16X16: > .. _V4L2-PIX-FMT-NV12-4L4: > @@ -631,6 +696,69 @@ number of lines as the luma plane. > - Cr\ :sub:`32` > > > +.. _V4L2-PIX-FMT-NV20: > + > +NV20 > +---- > + > +Semi-planar 10-bit YUV 4:2:2 format similar to NV16, using 10-bit components > +with no padding between each component. A group of 4 components are stored over > +5 bytes in little endian order. > + > +.. flat-table:: Sample 4x4 NV20 Image (1 byte per cell) > + :header-rows: 0 > + :stub-columns: 0 > + > + * - start + 0: > + - Y'\ :sub:`00[7:0]` > + - Y'\ :sub:`01[5:0]`\ Y'\ :sub:`00[9:8]` > + - Y'\ :sub:`02[3:0]`\ Y'\ :sub:`01[9:6]` > + - Y'\ :sub:`03[1:0]`\ Y'\ :sub:`02[9:4]` > + - Y'\ :sub:`03[9:2]` > + * - start + 5: > + - Y'\ :sub:`10[7:0]` > + - Y'\ :sub:`11[5:0]`\ Y'\ :sub:`10[9:8]` > + - Y'\ :sub:`12[3:0]`\ Y'\ :sub:`11[9:6]` > + - Y'\ :sub:`13[1:0]`\ Y'\ :sub:`12[9:4]` > + - Y'\ :sub:`13[9:2]` > + * - start + 10: > + - Y'\ :sub:`20[7:0]` > + - Y'\ :sub:`21[5:0]`\ Y'\ :sub:`20[9:8]` > + - Y'\ :sub:`22[3:0]`\ Y'\ :sub:`21[9:6]` > + - Y'\ :sub:`23[1:0]`\ Y'\ :sub:`22[9:4]` > + - Y'\ :sub:`23[9:2]` > + * - start + 15: > + - Y'\ :sub:`30[7:0]` > + - Y'\ :sub:`31[5:0]`\ Y'\ :sub:`30[9:8]` > + - Y'\ :sub:`32[3:0]`\ Y'\ :sub:`31[9:6]` > + - Y'\ :sub:`33[1:0]`\ Y'\ :sub:`32[9:4]` > + - Y'\ :sub:`33[9:2]` > + * - start + 20: > + - Cb\ :sub:`00[7:0]` > + - Cr\ :sub:`00[5:0]`\ Cb\ :sub:`00[9:8]` > + - Cb\ :sub:`01[3:0]`\ Cr\ :sub:`00[9:6]` > + - Cr\ :sub:`01[1:0]`\ Cb\ :sub:`01[9:4]` > + - Cr\ :sub:`01[9:2]` > + * - start + 25: > + - Cb\ :sub:`10[7:0]` > + - Cr\ :sub:`10[5:0]`\ Cb\ :sub:`10[9:8]` > + - Cb\ :sub:`11[3:0]`\ Cr\ :sub:`10[9:6]` > + - Cr\ :sub:`11[1:0]`\ Cb\ :sub:`11[9:4]` > + - Cr\ :sub:`11[9:2]` > + * - start + 30: > + - Cb\ :sub:`20[7:0]` > + - Cr\ :sub:`20[5:0]`\ Cb\ :sub:`20[9:8]` > + - Cb\ :sub:`21[3:0]`\ Cr\ :sub:`20[9:6]` > + - Cr\ :sub:`21[1:0]`\ Cb\ :sub:`21[9:4]` > + - Cr\ :sub:`21[9:2]` > + * - start + 35: > + - Cb\ :sub:`30[7:0]` > + - Cr\ :sub:`30[5:0]`\ Cb\ :sub:`30[9:8]` > + - Cb\ :sub:`31[3:0]`\ Cr\ :sub:`30[9:6]` > + - Cr\ :sub:`31[1:0]`\ Cb\ :sub:`31[9:4]` > + - Cr\ :sub:`31[9:2]` > + > + > .. _V4L2-PIX-FMT-NV24: > .. _V4L2-PIX-FMT-NV42: > > diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c > index 8ad04d48a023..53b6fdfcb4dd 100644 > --- a/drivers/media/v4l2-core/v4l2-common.c > +++ b/drivers/media/v4l2-core/v4l2-common.c > @@ -277,8 +277,10 @@ const struct v4l2_format_info *v4l2_format_info(u32 format) > /* YUV planar formats */ > { .format = V4L2_PIX_FMT_NV12, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 2 }, > { .format = V4L2_PIX_FMT_NV21, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 2 }, > + { .format = V4L2_PIX_FMT_NV15, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 10, 0, 0 }, .bpp_div = { 4, 4, 1, 1 }, .hdiv = 2, .vdiv = 2 }, > { .format = V4L2_PIX_FMT_NV16, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 }, > { .format = V4L2_PIX_FMT_NV61, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 }, > + { .format = V4L2_PIX_FMT_NV20, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 10, 0, 0 }, .bpp_div = { 4, 4, 1, 1 }, .hdiv = 2, .vdiv = 1 }, > { .format = V4L2_PIX_FMT_NV24, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 1, .vdiv = 1 }, > { .format = V4L2_PIX_FMT_NV42, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 1, .vdiv = 1 }, > { .format = V4L2_PIX_FMT_P010, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 2, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 }, > diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c > index e14db67be97c..9f09f5cf3e3e 100644 > --- a/drivers/media/v4l2-core/v4l2-ioctl.c > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c > @@ -1360,8 +1360,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) > case V4L2_PIX_FMT_YUV48_12: descr = "12-bit YUV 4:4:4 Packed"; break; > case V4L2_PIX_FMT_NV12: descr = "Y/UV 4:2:0"; break; > case V4L2_PIX_FMT_NV21: descr = "Y/VU 4:2:0"; break; > + case V4L2_PIX_FMT_NV15: descr = "10-bit Y/UV 4:2:0 (Packed)"; break; > case V4L2_PIX_FMT_NV16: descr = "Y/UV 4:2:2"; break; > case V4L2_PIX_FMT_NV61: descr = "Y/VU 4:2:2"; break; > + case V4L2_PIX_FMT_NV20: descr = "10-bit Y/UV 4:2:2 (Packed)"; break; > case V4L2_PIX_FMT_NV24: descr = "Y/UV 4:4:4"; break; > case V4L2_PIX_FMT_NV42: descr = "Y/VU 4:4:4"; break; > case V4L2_PIX_FMT_P010: descr = "10-bit Y/UV 4:2:0"; break; > diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h > index 725e86c4bbbd..941a96b81672 100644 > --- a/include/uapi/linux/videodev2.h > +++ b/include/uapi/linux/videodev2.h > @@ -642,8 +642,10 @@ struct v4l2_pix_format { > /* two planes -- one Y, one Cr + Cb interleaved */ > #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ > #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ > +#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/CbCr 4:2:0 10-bit packed */ > #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ > #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ > +#define V4L2_PIX_FMT_NV20 v4l2_fourcc('N', 'V', '2', '0') /* 20 Y/CbCr 4:2:2 10-bit packed */ > #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ > #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ > #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/CbCr 4:2:0 10-bit per component */ Appart from the location, I'm happy with the implementation and the documentation. Reviewed-by: Nicolas Dufresne