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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2F7EC433EF for ; Wed, 20 Oct 2021 15:28:08 +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 B43A861373 for ; Wed, 20 Oct 2021 15:28:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B43A861373 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=brYCbdRchRdHHUFYn9ZJjQTIaMNPet1QSjosbwcKZB4=; b=UZtxoHLJcWUdWt Yyr9hly15Z+UzXSkB2oQUxq79aGIkAUDgEB5GxJDshnSpjL++cfNxd/PdY9fYfVgUXpeXVcRjAiwB CV8MlW5Rf4EY8dBH2sQVzDm385lPve3RFxhi0zHvqhZoHFk+ftAQHJYtTjsvzKox6W+ip+PRk8wWb VC98re8yCXwc1jZ897c8EDUoOEstAe1+laQxyubxKZjNjjImwPlf+gYAH47tUe6ZiHFB/F8nACCZR SiVTcTpqfOuc5fVQyQxhg7fsfTRVc1dNwvJq/D3z7lYohzM38O+utEwwVxh/BTg6gHaDDWewvwMr5 d5pkMRP1271+WPTBaVpA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mdDVb-0051N1-BQ; Wed, 20 Oct 2021 15:28:03 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mdD95-004tnv-E4; Wed, 20 Oct 2021 15:04:49 +0000 Received: by mail-wm1-x336.google.com with SMTP id z11-20020a1c7e0b000000b0030db7b70b6bso2506856wmc.1; Wed, 20 Oct 2021 08:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iSI/ddQ6s8uFsqLKqgX7/KMZvCDEF1sF+QLFOwBijVo=; b=WSm/g6FJplp5819Ycmp7EY5PXwMqWIT80+Dfw1Bzdwjs+gcuSenIDggXdBNm9ELwaf am0FTewPLikgh806CvWSBxcCwpaIU4wBWzBj+lp+CQXRAyxnIsdnPzuUSKQPh8UpLNdf Ye6t8eTDDuVQT3Gxog2cTfYWSTXyHADlWbP7qYbqsfdvqRYyMwdivigB0iM+eGHwrfSR NmRPDAx90ouHf+vCm93C9NXSH6MXY0s4MugoIBPNDCOkPdwlJ08o/NdWfpLFFDKEIbfL T6OT+/UHeGkQXbn1hJU5vI/534YQlGHzNFqa38reEJvVCdgdhffHzeiD2IRxWhHO+cdu r4sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iSI/ddQ6s8uFsqLKqgX7/KMZvCDEF1sF+QLFOwBijVo=; b=B5B7x5G55VWb+9DG/LBDY5rbGgq1hFocSnUopxMUMVGda0TAuTbdauJboaMV+wXDFU VbL+mXUgSmi0qlBKjA2VFI0Ty6PrKJtz4t7YjnYtOR9sFxRKY4ZsnDsFcGaNH7849m0q 3u5XFWhUFYclO8bYafpNJ2c/bwKuEBSBKekur0J5jyUsk0I30qUhF14XKUZdAT3usTu3 RkowmNqtM2aAXFjQFDqy05GVDWHZfvcbFnJ5gfOphGQZDF79E59cFrG+E6txAHV1pcGZ SMqZSLOMTkC4AbCAaUh0VPW4jgZQBT2IgvNH3invjcJEczJqatMovWpnh5l2mMBXzBYg Z5mA== X-Gm-Message-State: AOAM5317ls8hwBc1eZfjHGzs4hC0D/DurzjhuVgl713xtZxavrgJKAi+ H7asOoEZQSLtCmvGDamso3c= X-Google-Smtp-Source: ABdhPJw64D36JEnPwgRzr7aOlj86IE7a8hmJHL9NuiHWy+N92KexNY7aIB/3nMuRzNPy/cl0iT3n4w== X-Received: by 2002:a1c:7415:: with SMTP id p21mr14082917wmc.159.1634742285129; Wed, 20 Oct 2021 08:04:45 -0700 (PDT) Received: from kista.localnet (cpe-86-58-29-253.static.triera.net. [86.58.29.253]) by smtp.gmail.com with ESMTPSA id r17sm2604269wmq.47.2021.10.20.08.04.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Oct 2021 08:04:44 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Ezequiel Garcia Cc: linux-media , linux-arm-kernel , Linux Kernel Mailing List , "open list:ARM/Rockchip SoC..." , "open list:STAGING SUBSYSTEM" , Andrzej Pietrasiewicz , Benjamin Gaignard , Boris Brezillon , Fabio Estevam , Greg Kroah-Hartman , Hans Verkuil , Heiko Stuebner , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , Collabora Kernel ML , Ezequiel Garcia Subject: Re: Re: Re: [PATCH v7 11/11] media: hantro: Support NV12 on the G2 core Date: Wed, 20 Oct 2021 17:04:43 +0200 Message-ID: <4350097.LvFx2qVVIh@kista> In-Reply-To: References: <20210929160439.6601-1-andrzej.p@collabora.com> <11847752.O9o76ZdvQC@kista> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211020_080447_544611_88CF8D55 X-CRM114-Status: GOOD ( 46.01 ) 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 RG5lIHNyZWRhLCAyMC4gb2t0b2JlciAyMDIxIG9iIDEzOjA2OjU5IENFU1QgamUgRXplcXVpZWwg R2FyY2lhIG5hcGlzYWwoYSk6Cj4gSGkgSmVybmVqLAo+IAo+IE9uIFR1ZSwgMTkgT2N0IDIwMjEg YXQgMTM6MzgsIEplcm5laiDFoGtyYWJlYyA8amVybmVqLnNrcmFiZWNAZ21haWwuY29tPiAKd3Jv dGU6Cj4gPgo+ID4gSGkgQW5kcnplaiEKPiA+Cj4gPiBEbmUgcGV0ZWssIDE1LiBva3RvYmVyIDIw MjEgb2IgMTk6MTk6NDcgQ0VTVCBqZSBBbmRyemVqIFBpZXRyYXNpZXdpY3oKPiA+IG5hcGlzYWwo YSk6Cj4gPiA+IEhpIEplcm5laiwKPiA+ID4KPiA+ID4gVyBkbml1IDE0LjEwLjIwMjEgbyAxOTo0 MiwgSmVybmVqIMWga3JhYmVjIHBpc3plOgo+ID4gPiA+IEhpIEFuZHJ6ZWohCj4gPiA+ID4KPiA+ ID4gPiBEbmUgc3JlZGEsIDI5LiBzZXB0ZW1iZXIgMjAyMSBvYiAxODowNDozOSBDRVNUIGplIEFu ZHJ6ZWogClBpZXRyYXNpZXdpY3oKPiA+ID4gPiBuYXBpc2FsKGEpOgo+ID4gPiA+PiBUaGUgRzIg ZGVjb2RlciBibG9jayBwcm9kdWNlcyBOVjEyIDR4NCB0aWxlZCBmb3JtYXQgKE5WMTJfNEw0KS4K PiA+ID4gPj4gRW5hYmxlIHRoZSBHMiBwb3N0LXByb2Nlc3NvciBibG9jaywgaW4gb3JkZXIgdG8g cHJvZHVjZSByZWd1bGFyIE5WMTIuCj4gPiA+ID4+Cj4gPiA+ID4+IFRoZSBsb2dpYyBpbiBoYW50 cm9fcG9zdHByb2MuYyBpcyBsZXZlcmFnZWQgdG8gdGFrZSBjYXJlIG9mIAphbGxvY2F0aW5nCj4g PiA+ID4+IHRoZSBleHRyYSBidWZmZXJzIGFuZCBjb25maWd1cmUgdGhlIHBvc3QtcHJvY2Vzc29y LCB3aGljaCBpcwo+ID4gPiA+PiBzaWduaWZpY2FudGx5IHNpbXBsZXIgdGhhbiB0aGUgb25lIG9u IHRoZSBHMS4KPiA+ID4gPgo+ID4gPiA+IFF1aWNrIHN1bW1hcnkgb2YgZGlzY3Vzc2lvbiBvbiBM aWJyZUVMRUMgU2xhY2s6Cj4gPiA+ID4gV2hlbiB1c2luZyBOVjEyIGZvcm1hdCBvbiBBbGx3aW5u ZXIgSDYgdmFyaWFudCBvZiBHMiAobmVlZHMgc29tZSAKZHJpdmVyCj4gPiA+ID4gY2hhbmdlcyks IEkgZ2V0IGZyYW1lcyBvdXQgb2Ygb3JkZXIuIElmIEkgdXNlIG5hdGl2ZSBOVjEyIHRpbGVkIApm b3JtYXQsCj4gPiBmcmFtZXMKPiA+ID4gPiBhcmUgb3JkZXJlZCBjb3JyZWN0bHkuCj4gPiA+ID4K PiA+ID4gPiBDdXJyZW50bHkgSSdtIG5vdCBzdXJlIGlmIHRoaXMgaXMgaXNzdWUgd2l0aCBteSBj aGFuZ2VzIG9yIGlzIHRoaXMgCmdlbmVyYWwKPiA+ID4gPiBpc3N1ZS4KPiA+ID4gPgo+ID4gPiA+ IEkgd291bGQgYmUgZ3JhdGVmdWwgaWYgYW55b25lIGNhbiB0ZXN0IGZyYW1lIG9yZGVyIHdpdGgg YW5kIHdpdGhvdXQKPiA+ID4gPiBwb3N0cHJvY2Vzc2luZyBlbmFibGVkIG9uIGlteDguIFRha2Ug c29tZSBkeW5hbWljIHZpZGVvIHdpdGggYSBsb3Qgb2YKPiA+IHNob3J0Cj4gPiA+ID4gc2NlbmVz LiBJdCdzIHByZXR0eSBvYnZpb3VzIHdoZW4gZnJhbWVzIGFyZSBvdXQgb2Ygb3JkZXIuCj4gPiA+ ID4KPiA+ID4KPiA+ID4gSSBjaGVja2VkIG9uIGlteDggYW5kIGNhbm5vdCBvYnNlcnZlIGFueSBz dWNoIGFydGlmYWN0cy4KPiA+Cj4gPiBJIGZpbmFsbHkgZm91bmQgdGhlIGlzc3VlLiBBcyB5b3Ug bWVudGlvbmVkIG9uIFNsYWNrLCByZWdpc3RlciB3cml0ZSBvcmRlciAKb25jZQo+ID4gYWxyZWFk eSBhZmZlY3RlZCBkZWNvZGluZy4gV2VsbCwgaXQncyB0aGUgY2FzZSBhZ2Fpbi4gSSBtYWRlIGhh Y2t5IHRlc3QgYW5kCj4gPiBtb3ZlZCBwb3N0cHJvYyBlbmFibGUgY2FsbCBhZnRlciBvdXRwdXQg YnVmZmVycyBhcmUgc2V0IGFuZCBpdCB3b3JrZWQuIFNvLCAKdGhpcwo+ID4gaXMgYWN0dWFsbHkg Y29yZSBxdWlyayB3aGljaCBpcyBvYnZpb3VzbHkgZml4ZWQgaW4gbmV3ZXIgdmFyaWFudHMuCj4g Pgo+IAo+IFVnaCwgZ29vZCBjYXRjaC4KPiAKPiBXaGF0IGhhcHBlbnMgaWYgeW91IG1vdmUgYWxs IHRoZSBjYWxscyB0byBIQU5UUk9fUFBfUkVHX1dSSVRFX1MKPiAoSEFOVFJPX1BQX1JFR19XUklU RSBkb2VzIGEgcmVsYXhlZCB3cml0ZSk/Cj4gCj4gT3Igd2hhdCBoYXBwZW5zIGlmIHRoZSBIQU5U Uk9fUFBfUkVHX1dSSVRFKHZwdSwgb3V0X2x1bWFfYmFzZSwgZHN0X2RtYSkKPiBpcyBtb3ZlZCB0 byBiZSBkb25lIGFmdGVyIGFsbCB0aGUgb3RoZXIgcmVnaXN0ZXJzPwoKVGhvc2UgdHdvIG1hY3Jv cyBhcmVuJ3QgdXNlZCBvbiBHMi4gQW5kcnplaiBpbnRyb2R1Y2VkIG5ldyBwb3N0cHJvYyBoZWxw ZXJzIApmb3IgRzIuCgpUaGlzIGNvbW1pdCBzb2x2ZXMgaXNzdWUgZm9yIEg2OgpodHRwczovL2dp dGh1Yi5jb20vamVybmVqc2svbGludXgtMS9jb21taXQvCmE3ODNhOTc3YzA4NDNiYjRiNTU1ZGM5 ZDBiNWQ2NDkxNWNkMjE5ZTcKCj4gCj4gPiBUaGlzIG1ha2VzIHRoaXMgc2VyaWVzIHdpdGggbWlu b3IgYWRhcHRhdGlvbnMgY29tcGxldGVseSB3b3JraW5nIG9uIEg2LiBJIApzZWUKPiA+IG5vIHJl YXNvbiBub3QgdG8gbWVyZ2Ugd2hvbGUgc2VyaWVzLgo+ID4KPiAKPiBEbyB5b3UgaGF2ZSBwbGFu cyB0byBzdWJtaXQgeW91ciBINiB3b3JrIG9uIHRvcCBvZiB0aGlzPwoKT2YgY291cnNlLCB3aHkg d291bGQgSSB3b3JrIG9uIHRoaXMgb3RoZXJ3aXNlPyA6KSBCdXQgYmVmb3JlIEkgZG8gdGhhdCwg SSBoYXZlIAp0byBjbGVhbiB1cCBhbmQgc3BsaXQgb25lIGNvbW1pdCwgd2hpY2ggYWRhcHRzIFZQ OSBHMiBjb2RlIGZvciBINiB2YXJpYW50LgoKSWYgeW91J3JlIGludGVyZXN0ZWQgaW4gY2hhbmdl cywgdGFrZSBhIGxvb2sgaGVyZToKaHR0cHM6Ly9naXRodWIuY29tL2plcm5lanNrL2xpbnV4LTEv Y29tbWl0cy92cDkKCkJlc3QgcmVnYXJkcywKSmVybmVqCgo+IAo+IFRoYW5rcywKPiBFemVxdWll bAo+IAo+IAo+ID4gVGhhbmtzIGZvciB0ZXN0aW5nLgo+ID4KPiA+IEJlc3QgcmVnYXJkcywKPiA+ IEplcm5lago+ID4KPiA+ID4KPiA+ID4gQW5kcnplago+ID4gPgo+ID4gPiA+IEhvd2V2ZXIsIGdp dmVuIHRoYXQgZnJhbWVzIHRoZW1zZWxmIGFyZSBjb3JyZWN0bHkgZGVjb2RlZCBhbmQgd2l0aG91 dAo+ID4gPiA+IHBvc3Rwcm9jZXNzaW5nIGluIHJpZ2h0IG9yZGVyLCB0aGF0IHNob3VsZG4ndCBi bG9jayBtZXJnaW5nIHByZXZpb3VzCj4gPiBwYXRjaGVzLgo+ID4gPiA+IEkgdHJpZWQgZmV3IGRp ZmZlcmVudCB2aWRlb3MgYW5kIGZyYW1lcyB3ZXJlIGFsbCBkZWNvZGVkIGNvcnJlY3RseS4KPiA+ ID4gPgo+ID4gPiA+IEJlc3QgcmVnYXJkcywKPiA+ID4gPiBKZXJuZWoKPiA+ID4gPgo+ID4gPiA+ Pgo+ID4gPiA+PiBTaWduZWQtb2ZmLWJ5OiBFemVxdWllbCBHYXJjaWEgPGV6ZXF1aWVsQGNvbGxh Ym9yYS5jb20+Cj4gPiA+ID4+IFNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWogUGlldHJhc2lld2ljeiA8 YW5kcnplai5wQGNvbGxhYm9yYS5jb20+Cj4gPiA+ID4+IC0tLQo+ID4gPiA+PiAgIC4uLi9zdGFn aW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJfdnA5X2RlYy5jICB8ICA2ICsrLS0KPiA+ID4gPj4g ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oICAgICAgfCAgMSArCj4g PiA+ID4+ICAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19wb3N0cHJvYy5jICAgIHwg MzEgKysrKysrKysrKysrKysrKworKysKPiA+ID4gPj4gICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2lteDhtX3ZwdV9ody5jICAgfCAxMSArKysrKysrCj4gPiA+ID4+ICAgNCBmaWxlcyBj aGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ID4gPiA+Pgo+ID4gPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJfdnA5 X2RlYy5jIGIvCmRyaXZlcnMvCj4gPiA+ID4gc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cy X3ZwOV9kZWMuYwo+ID4gPiA+PiBpbmRleCA3ZjgyN2I5ZjAxMzMuLjFhMjZiZTcyYzg3OCAxMDA2 NDQKPiA+ID4gPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJf dnA5X2RlYy5jCj4gPiA+ID4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX2cyX3ZwOV9kZWMuYwo+ID4gPiA+PiBAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyB2b2lk IGNvbmZpZ19vdXRwdXQoc3RydWN0IGhhbnRyb19jdHggKmN0eCwKPiA+ID4gPj4gICAgaGFudHJv X3JlZ193cml0ZShjdHgtPmRldiwgJmcyX291dF9kaXMsIDApOwo+ID4gPiA+PiAgICBoYW50cm9f cmVnX3dyaXRlKGN0eC0+ZGV2LCAmZzJfb3V0cHV0X2Zvcm1hdCwgMCk7Cj4gPiA+ID4+Cj4gPiA+ ID4+IC0gIGx1bWFfYWRkciA9IHZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRyKCZkc3QtPmJh c2UudmIudmIyX2J1ZiwKPiA+ID4gPiAwKTsKPiA+ID4gPj4gKyAgbHVtYV9hZGRyID0gaGFudHJv X2dldF9kZWNfYnVmX2FkZHIoY3R4LCAmZHN0LT5iYXNlLnZiLnZiMl9idWYpOwo+ID4gPiA+PiAg ICBoYW50cm9fd3JpdGVfYWRkcihjdHgtPmRldiwgRzJfT1VUX0xVTUFfQUREUiwgbHVtYV9hZGRy KTsKPiA+ID4gPj4KPiA+ID4gPj4gICAgY2hyb21hX2FkZHIgPSBsdW1hX2FkZHIgKyBjaHJvbWFf b2Zmc2V0KGN0eCwgZGVjX3BhcmFtcyk7Cj4gPiA+ID4+IEBAIC0xOTEsNyArMTkxLDcgQEAgc3Rh dGljIHZvaWQgY29uZmlnX3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4LAo+ID4gPiA+PiAgICBo YW50cm9fcmVnX3dyaXRlKGN0eC0+ZGV2LCAmcmVmX3JlZy0+aG9yX3NjYWxlLCAocmVmdyA8PCAx NCkgLwo+ID4gPiA+IGRzdC0+dnA5LndpZHRoKTsKPiA+ID4gPj4gICAgaGFudHJvX3JlZ193cml0 ZShjdHgtPmRldiwgJnJlZl9yZWctPnZlcl9zY2FsZSwgKHJlZmggPDwgMTQpIC8KPiA+ID4gPiBk c3QtPnZwOS5oZWlnaHQpOwo+ID4gPiA+Pgo+ID4gPiA+PiAtICBsdW1hX2FkZHIgPSB2YjJfZG1h X2NvbnRpZ19wbGFuZV9kbWFfYWRkcigmYnVmLT5iYXNlLnZiLnZiMl9idWYsCj4gPiA+ID4gMCk7 Cj4gPiA+ID4+ICsgIGx1bWFfYWRkciA9IGhhbnRyb19nZXRfZGVjX2J1Zl9hZGRyKGN0eCwgJmJ1 Zi0+YmFzZS52Yi52YjJfYnVmKTsKPiA+ID4gPj4gICAgaGFudHJvX3dyaXRlX2FkZHIoY3R4LT5k ZXYsIHJlZl9yZWctPnlfYmFzZSwgbHVtYV9hZGRyKTsKPiA+ID4gPj4KPiA+ID4gPj4gICAgY2hy b21hX2FkZHIgPSBsdW1hX2FkZHIgKyBjaHJvbWFfb2Zmc2V0KGN0eCwgZGVjX3BhcmFtcyk7Cj4g PiA+ID4+IEBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIHZvaWQgY29uZmlnX3JlZl9yZWdpc3Rl cnMoc3RydWN0IGhhbnRyb19jdHgKPiA+ICpjdHgsCj4gPiA+ID4+ICAgIGNvbmZpZ19yZWYoY3R4 LCBkc3QsICZyZWZfcmVnc1sxXSwgZGVjX3BhcmFtcywgZGVjX3BhcmFtcy0KPiA+ID4gPj4gZ29s ZGVuX2ZyYW1lX3RzKTsKPiA+ID4gPj4gICAgY29uZmlnX3JlZihjdHgsIGRzdCwgJnJlZl9yZWdz WzJdLCBkZWNfcGFyYW1zLCBkZWNfcGFyYW1zLQo+ID4gPiA+PiBhbHRfZnJhbWVfdHMpOwo+ID4g PiA+Pgo+ID4gPiA+PiAtICBtdl9hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIo Jm12X3JlZi0+YmFzZS52Yi52YjJfYnVmLAo+ID4gPiA+IDApICsKPiA+ID4gPj4gKyAgbXZfYWRk ciA9IGhhbnRyb19nZXRfZGVjX2J1Zl9hZGRyKGN0eCwgJm12X3JlZi0+YmFzZS52Yi52YjJfYnVm KSArCj4gPiA+ID4+ICAgICAgICAgICAgICBtdl9vZmZzZXQoY3R4LCBkZWNfcGFyYW1zKTsKPiA+ ID4gPj4gICAgaGFudHJvX3dyaXRlX2FkZHIoY3R4LT5kZXYsIEcyX1JFRl9NVl9BRERSKDApLCBt dl9hZGRyKTsKPiA+ID4gPj4KPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2h3LmggYi9kcml2ZXJzLwpzdGFnaW5nLwo+ID4gPiA+IG1lZGlh L2hhbnRyby9oYW50cm9faHcuaAo+ID4gPiA+PiBpbmRleCAyOTYxZDM5OWZkNjAuLjNkNGE1ZGMx ZTZkNSAxMDA2NDQKPiA+ID4gPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9o YW50cm9faHcuaAo+ID4gPiA+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19ody5oCj4gPiA+ID4+IEBAIC0yNzQsNiArMjc0LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVj dCBoYW50cm9fdmFyaWFudAo+ID4gcmszMzk5X3ZwdV92YXJpYW50Owo+ID4gPiA+PiAgIGV4dGVy biBjb25zdCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgc2FtYTVkNF92ZGVjX3ZhcmlhbnQ7Cj4gPiA+ ID4+Cj4gPiA+ID4+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBoYW50cm9fcG9zdHByb2Nfb3BzIGhh bnRyb19nMV9wb3N0cHJvY19vcHM7Cj4gPiA+ID4+ICtleHRlcm4gY29uc3Qgc3RydWN0IGhhbnRy b19wb3N0cHJvY19vcHMgaGFudHJvX2cyX3Bvc3Rwcm9jX29wczsKPiA+ID4gPj4KPiA+ID4gPj4g ICBleHRlcm4gY29uc3QgdTMyIGhhbnRyb192cDhfZGVjX21jX2ZpbHRlcls4XVs2XTsKPiA+ID4g Pj4KPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX3Bvc3Rwcm9jLmMgYi9kcml2ZXJzLwo+ID4gPiA+IHN0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19wb3N0cHJvYy5jCj4gPiA+ID4+IGluZGV4IDQ1NDlhZWMwOGZlYi4uNzlhNjZkMDAxNzM4 IDEwMDY0NAo+ID4gPiA+PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRy b19wb3N0cHJvYy5jCj4gPiA+ID4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8v aGFudHJvX3Bvc3Rwcm9jLmMKPiA+ID4gPj4gQEAgLTExLDYgKzExLDcgQEAKPiA+ID4gPj4gICAj aW5jbHVkZSAiaGFudHJvLmgiCj4gPiA+ID4+ICAgI2luY2x1ZGUgImhhbnRyb19ody5oIgo+ID4g PiA+PiAgICNpbmNsdWRlICJoYW50cm9fZzFfcmVncy5oIgo+ID4gPiA+PiArI2luY2x1ZGUgImhh bnRyb19nMl9yZWdzLmgiCj4gPiA+ID4+Cj4gPiA+ID4+ICAgI2RlZmluZSBIQU5UUk9fUFBfUkVH X1dSSVRFKHZwdSwgcmVnX25hbWUsIHZhbCkgXAo+ID4gPiA+PiAgIHsgXAo+ID4gPiA+PiBAQCAt OTksNiArMTAwLDIxIEBAIHN0YXRpYyB2b2lkIGhhbnRyb19wb3N0cHJvY19nMV9lbmFibGUoc3Ry dWN0Cj4gPiBoYW50cm9fY3R4Cj4gPiA+ID4gKmN0eCkKPiA+ID4gPj4gICAgSEFOVFJPX1BQX1JF R19XUklURSh2cHUsIGRpc3BsYXlfd2lkdGgsIGN0eC0+ZHN0X2ZtdC53aWR0aCk7Cj4gPiA+ID4+ ICAgfQo+ID4gPiA+Pgo+ID4gPiA+PiArc3RhdGljIHZvaWQgaGFudHJvX3Bvc3Rwcm9jX2cyX2Vu YWJsZShzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4gPiA+PiArewo+ID4gPiA+PiArICBzdHJ1 Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5kZXY7Cj4gPiA+ID4+ICsgIHN0cnVjdCB2YjJfdjRs Ml9idWZmZXIgKmRzdF9idWY7Cj4gPiA+ID4+ICsgIHNpemVfdCBjaHJvbWFfb2Zmc2V0ID0gY3R4 LT5kc3RfZm10LndpZHRoICogY3R4LT5kc3RfZm10LmhlaWdodDsKPiA+ID4gPj4gKyAgZG1hX2Fk ZHJfdCBkc3RfZG1hOwo+ID4gPiA+PiArCj4gPiA+ID4+ICsgIGRzdF9idWYgPSBoYW50cm9fZ2V0 X2RzdF9idWYoY3R4KTsKPiA+ID4gPj4gKyAgZHN0X2RtYSA9IHZiMl9kbWFfY29udGlnX3BsYW5l X2RtYV9hZGRyKCZkc3RfYnVmLT52YjJfYnVmLCAwKTsKPiA+ID4gPj4gKwo+ID4gPiA+PiArICBo YW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX1JTX09VVF9MVU1BX0FERFIsIGRzdF9kbWEpOwo+ID4g PiA+PiArICBoYW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX1JTX09VVF9DSFJPTUFfQUREUiwgZHN0 X2RtYSArCj4gPiA+ID4gY2hyb21hX29mZnNldCk7Cj4gPiA+ID4+ICsgIGhhbnRyb19yZWdfd3Jp dGUodnB1LCAmZzJfb3V0X3JzX2UsIDEpOwo+ID4gPiA+PiArfQo+ID4gPiA+PiArCj4gPiA+ID4+ ICAgdm9pZCBoYW50cm9fcG9zdHByb2NfZnJlZShzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4g PiA+PiAgIHsKPiA+ID4gPj4gICAgc3RydWN0IGhhbnRyb19kZXYgKnZwdSA9IGN0eC0+ZGV2Owo+ ID4gPiA+PiBAQCAtMTI3LDYgKzE0Myw5IEBAIGludCBoYW50cm9fcG9zdHByb2NfYWxsb2Moc3Ry dWN0IGhhbnRyb19jdHggKmN0eCkKPiA+ID4gPj4gICAgaWYgKGN0eC0+dnB1X3NyY19mbXQtPmZv dXJjYyA9PSBWNEwyX1BJWF9GTVRfSDI2NF9TTElDRSkKPiA+ID4gPj4gICAgICAgICAgICBidWZf c2l6ZSArPSBoYW50cm9faDI2NF9tdl9zaXplKGN0eC0+ZHN0X2ZtdC53aWR0aCwKPiA+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0KPiA+ID4gPj4g ZHN0X2ZtdC5oZWlnaHQpOwo+ID4gPiA+PiArICBlbHNlIGlmIChjdHgtPnZwdV9zcmNfZm10LT5m b3VyY2MgPT0gVjRMMl9QSVhfRk1UX1ZQOV9GUkFNRSkKPiA+ID4gPj4gKyAgICAgICAgICBidWZf c2l6ZSArPSBoYW50cm9fdnA5X212X3NpemUoY3R4LT5kc3RfZm10LndpZHRoLAo+ID4gPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtCj4gPiA+ID4+IGRz dF9mbXQuaGVpZ2h0KTsKPiA+ID4gPj4KPiA+ID4gPj4gICAgZm9yIChpID0gMDsgaSA8IG51bV9i dWZmZXJzOyArK2kpIHsKPiA+ID4gPj4gICAgICAgICAgICBzdHJ1Y3QgaGFudHJvX2F1eF9idWYg KnByaXYgPSAmY3R4LT5wb3N0cHJvYy5kZWNfcVtpXTsKPiA+ID4gPj4gQEAgLTE1Miw2ICsxNzEs MTMgQEAgc3RhdGljIHZvaWQgaGFudHJvX3Bvc3Rwcm9jX2cxX2Rpc2FibGUoc3RydWN0Cj4gPiA+ ID4gaGFudHJvX2N0eCAqY3R4KQo+ID4gPiA+PiAgICBIQU5UUk9fUFBfUkVHX1dSSVRFX1ModnB1 LCBwaXBlbGluZV9lbiwgMHgwKTsKPiA+ID4gPj4gICB9Cj4gPiA+ID4+Cj4gPiA+ID4+ICtzdGF0 aWMgdm9pZCBoYW50cm9fcG9zdHByb2NfZzJfZGlzYWJsZShzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4 KQo+ID4gPiA+PiArewo+ID4gPiA+PiArICBzdHJ1Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5k ZXY7Cj4gPiA+ID4+ICsKPiA+ID4gPj4gKyAgaGFudHJvX3JlZ193cml0ZSh2cHUsICZnMl9vdXRf cnNfZSwgMCk7Cj4gPiA+ID4+ICt9Cj4gPiA+ID4+ICsKPiA+ID4gPj4gICB2b2lkIGhhbnRyb19w b3N0cHJvY19kaXNhYmxlKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiA+ID4+ICAgewo+ID4g PiA+PiAgICBzdHJ1Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5kZXY7Cj4gPiA+ID4+IEBAIC0x NzIsMyArMTk4LDggQEAgY29uc3Qgc3RydWN0IGhhbnRyb19wb3N0cHJvY19vcHMKPiA+IGhhbnRy b19nMV9wb3N0cHJvY19vcHMKPiA+ID4gPiA9IHsKPiA+ID4gPj4gICAgLmVuYWJsZSA9IGhhbnRy b19wb3N0cHJvY19nMV9lbmFibGUsCj4gPiA+ID4+ICAgIC5kaXNhYmxlID0gaGFudHJvX3Bvc3Rw cm9jX2cxX2Rpc2FibGUsCj4gPiA+ID4+ICAgfTsKPiA+ID4gPj4gKwo+ID4gPiA+PiArY29uc3Qg c3RydWN0IGhhbnRyb19wb3N0cHJvY19vcHMgaGFudHJvX2cyX3Bvc3Rwcm9jX29wcyA9IHsKPiA+ ID4gPj4gKyAgLmVuYWJsZSA9IGhhbnRyb19wb3N0cHJvY19nMl9lbmFibGUsCj4gPiA+ID4+ICsg IC5kaXNhYmxlID0gaGFudHJvX3Bvc3Rwcm9jX2cyX2Rpc2FibGUsCj4gPiA+ID4+ICt9Owo+ID4g PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9pbXg4bV92cHVf aHcuYyBiL2RyaXZlcnMvCj4gPiBzdGFnaW5nLwo+ID4gPiA+IG1lZGlhL2hhbnRyby9pbXg4bV92 cHVfaHcuYwo+ID4gPiA+PiBpbmRleCA0NTVhMTA3ZmZiMDIuLjFhNDNmNmZjZWVmOSAxMDA2NDQK PiA+ID4gPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9pbXg4bV92cHVfaHcu Ywo+ID4gPiA+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9o dy5jCj4gPiA+ID4+IEBAIC0xMzIsNiArMTMyLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGFu dHJvX2ZtdCAKaW14OG1fdnB1X2RlY19mbXRzW10KPiA+ID0gewo+ID4gPiA+PiAgICB9LAo+ID4g PiA+PiAgIH07Cj4gPiA+ID4+Cj4gPiA+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGhhbnRyb19m bXQgaW14OG1fdnB1X2cyX3Bvc3Rwcm9jX2ZtdHNbXSA9IHsKPiA+ID4gPj4gKyAgewo+ID4gPiA+ PiArICAgICAgICAgIC5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTlYxMiwKPiA+ID4gPj4gKyAgICAg ICAgICAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05PTkUsCj4gPiA+ID4+ICsgICAgICAgICAg LnBvc3Rwcm9jZXNzZWQgPSB0cnVlLAo+ID4gPiA+PiArICB9LAo+ID4gPiA+PiArfTsKPiA+ID4g Pj4gKwo+ID4gPiA+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGFudHJvX2ZtdCBpbXg4bV92cHVf ZzJfZGVjX2ZtdHNbXSA9IHsKPiA+ID4gPj4gICAgewo+ID4gPiA+PiAgICAgICAgICAgIC5mb3Vy Y2MgPSBWNEwyX1BJWF9GTVRfTlYxMl80TDQsCj4gPiA+ID4+IEBAIC0zMDEsNiArMzA5LDkgQEAg Y29uc3Qgc3RydWN0IGhhbnRyb192YXJpYW50IGlteDhtcV92cHVfZzJfdmFyaWFudCAKPSB7Cj4g PiA+ID4+ICAgIC5kZWNfb2Zmc2V0ID0gMHgwLAo+ID4gPiA+PiAgICAuZGVjX2ZtdHMgPSBpbXg4 bV92cHVfZzJfZGVjX2ZtdHMsCj4gPiA+ID4+ICAgIC5udW1fZGVjX2ZtdHMgPSBBUlJBWV9TSVpF KGlteDhtX3ZwdV9nMl9kZWNfZm10cyksCj4gPiA+ID4+ICsgIC5wb3N0cHJvY19mbXRzID0gaW14 OG1fdnB1X2cyX3Bvc3Rwcm9jX2ZtdHMsCj4gPiA+ID4+ICsgIC5udW1fcG9zdHByb2NfZm10cyA9 IEFSUkFZX1NJWkUoaW14OG1fdnB1X2cyX3Bvc3Rwcm9jX2ZtdHMpLAo+ID4gPiA+PiArICAucG9z dHByb2Nfb3BzID0gJmhhbnRyb19nMl9wb3N0cHJvY19vcHMsCj4gPiA+ID4+ICAgIC5jb2RlYyA9 IEhBTlRST19IRVZDX0RFQ09ERVIgfCBIQU5UUk9fVlA5X0RFQ09ERVIsCj4gPiA+ID4+ICAgIC5j b2RlY19vcHMgPSBpbXg4bXFfdnB1X2cyX2NvZGVjX29wcywKPiA+ID4gPj4gICAgLmluaXQgPSBp bXg4bXFfdnB1X2h3X2luaXQsCj4gPiA+ID4+IC0tCj4gPiA+ID4+IDIuMTcuMQo+ID4gPiA+Pgo+ ID4gPiA+Pgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4KPiA+ID4KPiA+Cj4gPgo+IAoKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBt YWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AB6C2C80 for ; Wed, 20 Oct 2021 15:04:47 +0000 (UTC) Received: by mail-wm1-f44.google.com with SMTP id j15-20020a1c230f000000b00322f53b9bbfso786477wmj.3 for ; Wed, 20 Oct 2021 08:04:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iSI/ddQ6s8uFsqLKqgX7/KMZvCDEF1sF+QLFOwBijVo=; b=WSm/g6FJplp5819Ycmp7EY5PXwMqWIT80+Dfw1Bzdwjs+gcuSenIDggXdBNm9ELwaf am0FTewPLikgh806CvWSBxcCwpaIU4wBWzBj+lp+CQXRAyxnIsdnPzuUSKQPh8UpLNdf Ye6t8eTDDuVQT3Gxog2cTfYWSTXyHADlWbP7qYbqsfdvqRYyMwdivigB0iM+eGHwrfSR NmRPDAx90ouHf+vCm93C9NXSH6MXY0s4MugoIBPNDCOkPdwlJ08o/NdWfpLFFDKEIbfL T6OT+/UHeGkQXbn1hJU5vI/534YQlGHzNFqa38reEJvVCdgdhffHzeiD2IRxWhHO+cdu r4sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iSI/ddQ6s8uFsqLKqgX7/KMZvCDEF1sF+QLFOwBijVo=; b=b93eFzXvwjDPJ3+VBlNav4f/Z8xXpS+TcNyv2ziNB27YGvQtKyb3cm6n1ZfPKIYOZx ZufLwuhfNUaVn7IUkN/5JRbzmM+dYyWNLCyVGff12pF/NUoz5nwaT0UNGBNnhSodVM+t gwB5/XDYwOhwATdzl3h1M1H5YCtMMYGni/HwJeLR94IshIi9aHr42DyUTy54CcHwDmZG eXFSbPRtdjfpBlj0RtTFr4q1gh17JTRyQTV4uRm49r9Q9a1/1IcQcOt8rHlwrmZeI5Kq lVc1Ynu2t1WbFPzypMClCLvI4gkfgi3AyaM9LB7Z1PEc2zw640S9n9g1dFsDd9d40a23 61sA== X-Gm-Message-State: AOAM532+cDmnxC7gDPorEkc8BSPgBJv58YKQOcW8+bOieAdnGJDw9jSw D2IEV13jl95ZJOgkvViOWB8= X-Google-Smtp-Source: ABdhPJw64D36JEnPwgRzr7aOlj86IE7a8hmJHL9NuiHWy+N92KexNY7aIB/3nMuRzNPy/cl0iT3n4w== X-Received: by 2002:a1c:7415:: with SMTP id p21mr14082917wmc.159.1634742285129; Wed, 20 Oct 2021 08:04:45 -0700 (PDT) Received: from kista.localnet (cpe-86-58-29-253.static.triera.net. [86.58.29.253]) by smtp.gmail.com with ESMTPSA id r17sm2604269wmq.47.2021.10.20.08.04.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Oct 2021 08:04:44 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Ezequiel Garcia Cc: linux-media , linux-arm-kernel , Linux Kernel Mailing List , "open list:ARM/Rockchip SoC..." , "open list:STAGING SUBSYSTEM" , Andrzej Pietrasiewicz , Benjamin Gaignard , Boris Brezillon , Fabio Estevam , Greg Kroah-Hartman , Hans Verkuil , Heiko Stuebner , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , Collabora Kernel ML , Ezequiel Garcia Subject: Re: Re: Re: [PATCH v7 11/11] media: hantro: Support NV12 on the G2 core Date: Wed, 20 Oct 2021 17:04:43 +0200 Message-ID: <4350097.LvFx2qVVIh@kista> In-Reply-To: References: <20210929160439.6601-1-andrzej.p@collabora.com> <11847752.O9o76ZdvQC@kista> Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Dne sreda, 20. oktober 2021 ob 13:06:59 CEST je Ezequiel Garcia napisal(a): > Hi Jernej, >=20 > On Tue, 19 Oct 2021 at 13:38, Jernej =C5=A0krabec =20 wrote: > > > > Hi Andrzej! > > > > Dne petek, 15. oktober 2021 ob 19:19:47 CEST je Andrzej Pietrasiewicz > > napisal(a): > > > Hi Jernej, > > > > > > W dniu 14.10.2021 o 19:42, Jernej =C5=A0krabec pisze: > > > > Hi Andrzej! > > > > > > > > Dne sreda, 29. september 2021 ob 18:04:39 CEST je Andrzej=20 Pietrasiewicz > > > > napisal(a): > > > >> The G2 decoder block produces NV12 4x4 tiled format (NV12_4L4). > > > >> Enable the G2 post-processor block, in order to produce regular NV= 12. > > > >> > > > >> The logic in hantro_postproc.c is leveraged to take care of=20 allocating > > > >> the extra buffers and configure the post-processor, which is > > > >> significantly simpler than the one on the G1. > > > > > > > > Quick summary of discussion on LibreELEC Slack: > > > > When using NV12 format on Allwinner H6 variant of G2 (needs some=20 driver > > > > changes), I get frames out of order. If I use native NV12 tiled=20 format, > > frames > > > > are ordered correctly. > > > > > > > > Currently I'm not sure if this is issue with my changes or is this= =20 general > > > > issue. > > > > > > > > I would be grateful if anyone can test frame order with and without > > > > postprocessing enabled on imx8. Take some dynamic video with a lot = of > > short > > > > scenes. It's pretty obvious when frames are out of order. > > > > > > > > > > I checked on imx8 and cannot observe any such artifacts. > > > > I finally found the issue. As you mentioned on Slack, register write or= der=20 once > > already affected decoding. Well, it's the case again. I made hacky test= and > > moved postproc enable call after output buffers are set and it worked. = So,=20 this > > is actually core quirk which is obviously fixed in newer variants. > > >=20 > Ugh, good catch. >=20 > What happens if you move all the calls to HANTRO_PP_REG_WRITE_S > (HANTRO_PP_REG_WRITE does a relaxed write)? >=20 > Or what happens if the HANTRO_PP_REG_WRITE(vpu, out_luma_base, dst_dma) > is moved to be done after all the other registers? Those two macros aren't used on G2. Andrzej introduced new postproc helpers= =20 for G2. This commit solves issue for H6: https://github.com/jernejsk/linux-1/commit/ a783a977c0843bb4b555dc9d0b5d64915cd219e7 >=20 > > This makes this series with minor adaptations completely working on H6.= I=20 see > > no reason not to merge whole series. > > >=20 > Do you have plans to submit your H6 work on top of this? Of course, why would I work on this otherwise? :) But before I do that, I h= ave=20 to clean up and split one commit, which adapts VP9 G2 code for H6 variant. If you're interested in changes, take a look here: https://github.com/jernejsk/linux-1/commits/vp9 Best regards, Jernej >=20 > Thanks, > Ezequiel >=20 >=20 > > Thanks for testing. > > > > Best regards, > > Jernej > > > > > > > > Andrzej > > > > > > > However, given that frames themself are correctly decoded and witho= ut > > > > postprocessing in right order, that shouldn't block merging previous > > patches. > > > > I tried few different videos and frames were all decoded correctly. > > > > > > > > Best regards, > > > > Jernej > > > > > > > >> > > > >> Signed-off-by: Ezequiel Garcia > > > >> Signed-off-by: Andrzej Pietrasiewicz > > > >> --- > > > >> .../staging/media/hantro/hantro_g2_vp9_dec.c | 6 ++-- > > > >> drivers/staging/media/hantro/hantro_hw.h | 1 + > > > >> .../staging/media/hantro/hantro_postproc.c | 31 +++++++++++++= +++ +++ > > > >> drivers/staging/media/hantro/imx8m_vpu_hw.c | 11 +++++++ > > > >> 4 files changed, 46 insertions(+), 3 deletions(-) > > > >> > > > >> diff --git a/drivers/staging/media/hantro/hantro_g2_vp9_dec.c b/ drivers/ > > > > staging/media/hantro/hantro_g2_vp9_dec.c > > > >> index 7f827b9f0133..1a26be72c878 100644 > > > >> --- a/drivers/staging/media/hantro/hantro_g2_vp9_dec.c > > > >> +++ b/drivers/staging/media/hantro/hantro_g2_vp9_dec.c > > > >> @@ -152,7 +152,7 @@ static void config_output(struct hantro_ctx *c= tx, > > > >> hantro_reg_write(ctx->dev, &g2_out_dis, 0); > > > >> hantro_reg_write(ctx->dev, &g2_output_format, 0); > > > >> > > > >> - luma_addr =3D vb2_dma_contig_plane_dma_addr(&dst->base.vb.vb2_b= uf, > > > > 0); > > > >> + luma_addr =3D hantro_get_dec_buf_addr(ctx, &dst->base.vb.vb2_bu= f); > > > >> hantro_write_addr(ctx->dev, G2_OUT_LUMA_ADDR, luma_addr); > > > >> > > > >> chroma_addr =3D luma_addr + chroma_offset(ctx, dec_params); > > > >> @@ -191,7 +191,7 @@ static void config_ref(struct hantro_ctx *ctx, > > > >> hantro_reg_write(ctx->dev, &ref_reg->hor_scale, (refw << 14) / > > > > dst->vp9.width); > > > >> hantro_reg_write(ctx->dev, &ref_reg->ver_scale, (refh << 14) / > > > > dst->vp9.height); > > > >> > > > >> - luma_addr =3D vb2_dma_contig_plane_dma_addr(&buf->base.vb.vb2_b= uf, > > > > 0); > > > >> + luma_addr =3D hantro_get_dec_buf_addr(ctx, &buf->base.vb.vb2_bu= f); > > > >> hantro_write_addr(ctx->dev, ref_reg->y_base, luma_addr); > > > >> > > > >> chroma_addr =3D luma_addr + chroma_offset(ctx, dec_params); > > > >> @@ -236,7 +236,7 @@ static void config_ref_registers(struct hantro= _ctx > > *ctx, > > > >> config_ref(ctx, dst, &ref_regs[1], dec_params, dec_params- > > > >> golden_frame_ts); > > > >> config_ref(ctx, dst, &ref_regs[2], dec_params, dec_params- > > > >> alt_frame_ts); > > > >> > > > >> - mv_addr =3D vb2_dma_contig_plane_dma_addr(&mv_ref->base.vb.vb2_= buf, > > > > 0) + > > > >> + mv_addr =3D hantro_get_dec_buf_addr(ctx, &mv_ref->base.vb.vb2_b= uf) + > > > >> mv_offset(ctx, dec_params); > > > >> hantro_write_addr(ctx->dev, G2_REF_MV_ADDR(0), mv_addr); > > > >> > > > >> diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/ staging/ > > > > media/hantro/hantro_hw.h > > > >> index 2961d399fd60..3d4a5dc1e6d5 100644 > > > >> --- a/drivers/staging/media/hantro/hantro_hw.h > > > >> +++ b/drivers/staging/media/hantro/hantro_hw.h > > > >> @@ -274,6 +274,7 @@ extern const struct hantro_variant > > rk3399_vpu_variant; > > > >> extern const struct hantro_variant sama5d4_vdec_variant; > > > >> > > > >> extern const struct hantro_postproc_ops hantro_g1_postproc_ops; > > > >> +extern const struct hantro_postproc_ops hantro_g2_postproc_ops; > > > >> > > > >> extern const u32 hantro_vp8_dec_mc_filter[8][6]; > > > >> > > > >> diff --git a/drivers/staging/media/hantro/hantro_postproc.c b/driv= ers/ > > > > staging/media/hantro/hantro_postproc.c > > > >> index 4549aec08feb..79a66d001738 100644 > > > >> --- a/drivers/staging/media/hantro/hantro_postproc.c > > > >> +++ b/drivers/staging/media/hantro/hantro_postproc.c > > > >> @@ -11,6 +11,7 @@ > > > >> #include "hantro.h" > > > >> #include "hantro_hw.h" > > > >> #include "hantro_g1_regs.h" > > > >> +#include "hantro_g2_regs.h" > > > >> > > > >> #define HANTRO_PP_REG_WRITE(vpu, reg_name, val) \ > > > >> { \ > > > >> @@ -99,6 +100,21 @@ static void hantro_postproc_g1_enable(struct > > hantro_ctx > > > > *ctx) > > > >> HANTRO_PP_REG_WRITE(vpu, display_width, ctx->dst_fmt.width); > > > >> } > > > >> > > > >> +static void hantro_postproc_g2_enable(struct hantro_ctx *ctx) > > > >> +{ > > > >> + struct hantro_dev *vpu =3D ctx->dev; > > > >> + struct vb2_v4l2_buffer *dst_buf; > > > >> + size_t chroma_offset =3D ctx->dst_fmt.width * ctx->dst_fmt.heig= ht; > > > >> + dma_addr_t dst_dma; > > > >> + > > > >> + dst_buf =3D hantro_get_dst_buf(ctx); > > > >> + dst_dma =3D vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); > > > >> + > > > >> + hantro_write_addr(vpu, G2_RS_OUT_LUMA_ADDR, dst_dma); > > > >> + hantro_write_addr(vpu, G2_RS_OUT_CHROMA_ADDR, dst_dma + > > > > chroma_offset); > > > >> + hantro_reg_write(vpu, &g2_out_rs_e, 1); > > > >> +} > > > >> + > > > >> void hantro_postproc_free(struct hantro_ctx *ctx) > > > >> { > > > >> struct hantro_dev *vpu =3D ctx->dev; > > > >> @@ -127,6 +143,9 @@ int hantro_postproc_alloc(struct hantro_ctx *c= tx) > > > >> if (ctx->vpu_src_fmt->fourcc =3D=3D V4L2_PIX_FMT_H264_SLICE) > > > >> buf_size +=3D hantro_h264_mv_size(ctx->dst_fmt.width, > > > >> ctx- > > > >> dst_fmt.height); > > > >> + else if (ctx->vpu_src_fmt->fourcc =3D=3D V4L2_PIX_FMT_VP9_FRAME) > > > >> + buf_size +=3D hantro_vp9_mv_size(ctx->dst_fmt.width, > > > >> + ctx- > > > >> dst_fmt.height); > > > >> > > > >> for (i =3D 0; i < num_buffers; ++i) { > > > >> struct hantro_aux_buf *priv =3D &ctx->postproc.dec_q[i]; > > > >> @@ -152,6 +171,13 @@ static void hantro_postproc_g1_disable(struct > > > > hantro_ctx *ctx) > > > >> HANTRO_PP_REG_WRITE_S(vpu, pipeline_en, 0x0); > > > >> } > > > >> > > > >> +static void hantro_postproc_g2_disable(struct hantro_ctx *ctx) > > > >> +{ > > > >> + struct hantro_dev *vpu =3D ctx->dev; > > > >> + > > > >> + hantro_reg_write(vpu, &g2_out_rs_e, 0); > > > >> +} > > > >> + > > > >> void hantro_postproc_disable(struct hantro_ctx *ctx) > > > >> { > > > >> struct hantro_dev *vpu =3D ctx->dev; > > > >> @@ -172,3 +198,8 @@ const struct hantro_postproc_ops > > hantro_g1_postproc_ops > > > > =3D { > > > >> .enable =3D hantro_postproc_g1_enable, > > > >> .disable =3D hantro_postproc_g1_disable, > > > >> }; > > > >> + > > > >> +const struct hantro_postproc_ops hantro_g2_postproc_ops =3D { > > > >> + .enable =3D hantro_postproc_g2_enable, > > > >> + .disable =3D hantro_postproc_g2_disable, > > > >> +}; > > > >> diff --git a/drivers/staging/media/hantro/imx8m_vpu_hw.c b/drivers/ > > staging/ > > > > media/hantro/imx8m_vpu_hw.c > > > >> index 455a107ffb02..1a43f6fceef9 100644 > > > >> --- a/drivers/staging/media/hantro/imx8m_vpu_hw.c > > > >> +++ b/drivers/staging/media/hantro/imx8m_vpu_hw.c > > > >> @@ -132,6 +132,14 @@ static const struct hantro_fmt=20 imx8m_vpu_dec_fmts[] > > =3D { > > > >> }, > > > >> }; > > > >> > > > >> +static const struct hantro_fmt imx8m_vpu_g2_postproc_fmts[] =3D { > > > >> + { > > > >> + .fourcc =3D V4L2_PIX_FMT_NV12, > > > >> + .codec_mode =3D HANTRO_MODE_NONE, > > > >> + .postprocessed =3D true, > > > >> + }, > > > >> +}; > > > >> + > > > >> static const struct hantro_fmt imx8m_vpu_g2_dec_fmts[] =3D { > > > >> { > > > >> .fourcc =3D V4L2_PIX_FMT_NV12_4L4, > > > >> @@ -301,6 +309,9 @@ const struct hantro_variant imx8mq_vpu_g2_vari= ant=20 =3D { > > > >> .dec_offset =3D 0x0, > > > >> .dec_fmts =3D imx8m_vpu_g2_dec_fmts, > > > >> .num_dec_fmts =3D ARRAY_SIZE(imx8m_vpu_g2_dec_fmts), > > > >> + .postproc_fmts =3D imx8m_vpu_g2_postproc_fmts, > > > >> + .num_postproc_fmts =3D ARRAY_SIZE(imx8m_vpu_g2_postproc_fmts), > > > >> + .postproc_ops =3D &hantro_g2_postproc_ops, > > > >> .codec =3D HANTRO_HEVC_DECODER | HANTRO_VP9_DECODER, > > > >> .codec_ops =3D imx8mq_vpu_g2_codec_ops, > > > >> .init =3D imx8mq_vpu_hw_init, > > > >> -- > > > >> 2.17.1 > > > >> > > > >> > > > > > > > > > > > > > > > > > > >=20 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1FA4C433F5 for ; Wed, 20 Oct 2021 15:29:17 +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 674626137C for ; Wed, 20 Oct 2021 15:29:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 674626137C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5okwv/frUtkikavqAmXd759ZwBR60KpYptC7PI317H4=; b=1LCa2muuHdVwAf CAdsFY6bNHtYvgmhFqTBA8GufgBR84+vnwghx371nXMz+ap0mn6nW1P0ICUI0RGUVjr6SZkl1Hm7V noTaU1LhoJPotaFvpd6c7bbRqJUoa8hj/S/odh4TFlsdDgOKDTuEa/WPsk4gKlp5wtLD/Rsbi4HhC 1c8oE1uicCgWzhCyYyMH2nm4tr+OcXAGqZ5CjrZb4W07Vqf3EwCUuT6UEk84Mp9DGCVrhH4FNNW7C NTYh2Cwau0ZUlxBM4iL4GTmNIa1/5oeqbc25t/ykoPqljlldTiO+iAUaVa70UfUlxO6AoVpGCtUHe W9UbLpscUgTpKyKSkCoA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mdDUz-00513j-Mu; Wed, 20 Oct 2021 15:27:26 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mdD95-004tnv-E4; Wed, 20 Oct 2021 15:04:49 +0000 Received: by mail-wm1-x336.google.com with SMTP id z11-20020a1c7e0b000000b0030db7b70b6bso2506856wmc.1; Wed, 20 Oct 2021 08:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iSI/ddQ6s8uFsqLKqgX7/KMZvCDEF1sF+QLFOwBijVo=; b=WSm/g6FJplp5819Ycmp7EY5PXwMqWIT80+Dfw1Bzdwjs+gcuSenIDggXdBNm9ELwaf am0FTewPLikgh806CvWSBxcCwpaIU4wBWzBj+lp+CQXRAyxnIsdnPzuUSKQPh8UpLNdf Ye6t8eTDDuVQT3Gxog2cTfYWSTXyHADlWbP7qYbqsfdvqRYyMwdivigB0iM+eGHwrfSR NmRPDAx90ouHf+vCm93C9NXSH6MXY0s4MugoIBPNDCOkPdwlJ08o/NdWfpLFFDKEIbfL T6OT+/UHeGkQXbn1hJU5vI/534YQlGHzNFqa38reEJvVCdgdhffHzeiD2IRxWhHO+cdu r4sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iSI/ddQ6s8uFsqLKqgX7/KMZvCDEF1sF+QLFOwBijVo=; b=B5B7x5G55VWb+9DG/LBDY5rbGgq1hFocSnUopxMUMVGda0TAuTbdauJboaMV+wXDFU VbL+mXUgSmi0qlBKjA2VFI0Ty6PrKJtz4t7YjnYtOR9sFxRKY4ZsnDsFcGaNH7849m0q 3u5XFWhUFYclO8bYafpNJ2c/bwKuEBSBKekur0J5jyUsk0I30qUhF14XKUZdAT3usTu3 RkowmNqtM2aAXFjQFDqy05GVDWHZfvcbFnJ5gfOphGQZDF79E59cFrG+E6txAHV1pcGZ SMqZSLOMTkC4AbCAaUh0VPW4jgZQBT2IgvNH3invjcJEczJqatMovWpnh5l2mMBXzBYg Z5mA== X-Gm-Message-State: AOAM5317ls8hwBc1eZfjHGzs4hC0D/DurzjhuVgl713xtZxavrgJKAi+ H7asOoEZQSLtCmvGDamso3c= X-Google-Smtp-Source: ABdhPJw64D36JEnPwgRzr7aOlj86IE7a8hmJHL9NuiHWy+N92KexNY7aIB/3nMuRzNPy/cl0iT3n4w== X-Received: by 2002:a1c:7415:: with SMTP id p21mr14082917wmc.159.1634742285129; Wed, 20 Oct 2021 08:04:45 -0700 (PDT) Received: from kista.localnet (cpe-86-58-29-253.static.triera.net. [86.58.29.253]) by smtp.gmail.com with ESMTPSA id r17sm2604269wmq.47.2021.10.20.08.04.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Oct 2021 08:04:44 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Ezequiel Garcia Cc: linux-media , linux-arm-kernel , Linux Kernel Mailing List , "open list:ARM/Rockchip SoC..." , "open list:STAGING SUBSYSTEM" , Andrzej Pietrasiewicz , Benjamin Gaignard , Boris Brezillon , Fabio Estevam , Greg Kroah-Hartman , Hans Verkuil , Heiko Stuebner , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , Collabora Kernel ML , Ezequiel Garcia Subject: Re: Re: Re: [PATCH v7 11/11] media: hantro: Support NV12 on the G2 core Date: Wed, 20 Oct 2021 17:04:43 +0200 Message-ID: <4350097.LvFx2qVVIh@kista> In-Reply-To: References: <20210929160439.6601-1-andrzej.p@collabora.com> <11847752.O9o76ZdvQC@kista> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211020_080447_544611_88CF8D55 X-CRM114-Status: GOOD ( 46.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RG5lIHNyZWRhLCAyMC4gb2t0b2JlciAyMDIxIG9iIDEzOjA2OjU5IENFU1QgamUgRXplcXVpZWwg R2FyY2lhIG5hcGlzYWwoYSk6Cj4gSGkgSmVybmVqLAo+IAo+IE9uIFR1ZSwgMTkgT2N0IDIwMjEg YXQgMTM6MzgsIEplcm5laiDFoGtyYWJlYyA8amVybmVqLnNrcmFiZWNAZ21haWwuY29tPiAKd3Jv dGU6Cj4gPgo+ID4gSGkgQW5kcnplaiEKPiA+Cj4gPiBEbmUgcGV0ZWssIDE1LiBva3RvYmVyIDIw MjEgb2IgMTk6MTk6NDcgQ0VTVCBqZSBBbmRyemVqIFBpZXRyYXNpZXdpY3oKPiA+IG5hcGlzYWwo YSk6Cj4gPiA+IEhpIEplcm5laiwKPiA+ID4KPiA+ID4gVyBkbml1IDE0LjEwLjIwMjEgbyAxOTo0 MiwgSmVybmVqIMWga3JhYmVjIHBpc3plOgo+ID4gPiA+IEhpIEFuZHJ6ZWohCj4gPiA+ID4KPiA+ ID4gPiBEbmUgc3JlZGEsIDI5LiBzZXB0ZW1iZXIgMjAyMSBvYiAxODowNDozOSBDRVNUIGplIEFu ZHJ6ZWogClBpZXRyYXNpZXdpY3oKPiA+ID4gPiBuYXBpc2FsKGEpOgo+ID4gPiA+PiBUaGUgRzIg ZGVjb2RlciBibG9jayBwcm9kdWNlcyBOVjEyIDR4NCB0aWxlZCBmb3JtYXQgKE5WMTJfNEw0KS4K PiA+ID4gPj4gRW5hYmxlIHRoZSBHMiBwb3N0LXByb2Nlc3NvciBibG9jaywgaW4gb3JkZXIgdG8g cHJvZHVjZSByZWd1bGFyIE5WMTIuCj4gPiA+ID4+Cj4gPiA+ID4+IFRoZSBsb2dpYyBpbiBoYW50 cm9fcG9zdHByb2MuYyBpcyBsZXZlcmFnZWQgdG8gdGFrZSBjYXJlIG9mIAphbGxvY2F0aW5nCj4g PiA+ID4+IHRoZSBleHRyYSBidWZmZXJzIGFuZCBjb25maWd1cmUgdGhlIHBvc3QtcHJvY2Vzc29y LCB3aGljaCBpcwo+ID4gPiA+PiBzaWduaWZpY2FudGx5IHNpbXBsZXIgdGhhbiB0aGUgb25lIG9u IHRoZSBHMS4KPiA+ID4gPgo+ID4gPiA+IFF1aWNrIHN1bW1hcnkgb2YgZGlzY3Vzc2lvbiBvbiBM aWJyZUVMRUMgU2xhY2s6Cj4gPiA+ID4gV2hlbiB1c2luZyBOVjEyIGZvcm1hdCBvbiBBbGx3aW5u ZXIgSDYgdmFyaWFudCBvZiBHMiAobmVlZHMgc29tZSAKZHJpdmVyCj4gPiA+ID4gY2hhbmdlcyks IEkgZ2V0IGZyYW1lcyBvdXQgb2Ygb3JkZXIuIElmIEkgdXNlIG5hdGl2ZSBOVjEyIHRpbGVkIApm b3JtYXQsCj4gPiBmcmFtZXMKPiA+ID4gPiBhcmUgb3JkZXJlZCBjb3JyZWN0bHkuCj4gPiA+ID4K PiA+ID4gPiBDdXJyZW50bHkgSSdtIG5vdCBzdXJlIGlmIHRoaXMgaXMgaXNzdWUgd2l0aCBteSBj aGFuZ2VzIG9yIGlzIHRoaXMgCmdlbmVyYWwKPiA+ID4gPiBpc3N1ZS4KPiA+ID4gPgo+ID4gPiA+ IEkgd291bGQgYmUgZ3JhdGVmdWwgaWYgYW55b25lIGNhbiB0ZXN0IGZyYW1lIG9yZGVyIHdpdGgg YW5kIHdpdGhvdXQKPiA+ID4gPiBwb3N0cHJvY2Vzc2luZyBlbmFibGVkIG9uIGlteDguIFRha2Ug c29tZSBkeW5hbWljIHZpZGVvIHdpdGggYSBsb3Qgb2YKPiA+IHNob3J0Cj4gPiA+ID4gc2NlbmVz LiBJdCdzIHByZXR0eSBvYnZpb3VzIHdoZW4gZnJhbWVzIGFyZSBvdXQgb2Ygb3JkZXIuCj4gPiA+ ID4KPiA+ID4KPiA+ID4gSSBjaGVja2VkIG9uIGlteDggYW5kIGNhbm5vdCBvYnNlcnZlIGFueSBz dWNoIGFydGlmYWN0cy4KPiA+Cj4gPiBJIGZpbmFsbHkgZm91bmQgdGhlIGlzc3VlLiBBcyB5b3Ug bWVudGlvbmVkIG9uIFNsYWNrLCByZWdpc3RlciB3cml0ZSBvcmRlciAKb25jZQo+ID4gYWxyZWFk eSBhZmZlY3RlZCBkZWNvZGluZy4gV2VsbCwgaXQncyB0aGUgY2FzZSBhZ2Fpbi4gSSBtYWRlIGhh Y2t5IHRlc3QgYW5kCj4gPiBtb3ZlZCBwb3N0cHJvYyBlbmFibGUgY2FsbCBhZnRlciBvdXRwdXQg YnVmZmVycyBhcmUgc2V0IGFuZCBpdCB3b3JrZWQuIFNvLCAKdGhpcwo+ID4gaXMgYWN0dWFsbHkg Y29yZSBxdWlyayB3aGljaCBpcyBvYnZpb3VzbHkgZml4ZWQgaW4gbmV3ZXIgdmFyaWFudHMuCj4g Pgo+IAo+IFVnaCwgZ29vZCBjYXRjaC4KPiAKPiBXaGF0IGhhcHBlbnMgaWYgeW91IG1vdmUgYWxs IHRoZSBjYWxscyB0byBIQU5UUk9fUFBfUkVHX1dSSVRFX1MKPiAoSEFOVFJPX1BQX1JFR19XUklU RSBkb2VzIGEgcmVsYXhlZCB3cml0ZSk/Cj4gCj4gT3Igd2hhdCBoYXBwZW5zIGlmIHRoZSBIQU5U Uk9fUFBfUkVHX1dSSVRFKHZwdSwgb3V0X2x1bWFfYmFzZSwgZHN0X2RtYSkKPiBpcyBtb3ZlZCB0 byBiZSBkb25lIGFmdGVyIGFsbCB0aGUgb3RoZXIgcmVnaXN0ZXJzPwoKVGhvc2UgdHdvIG1hY3Jv cyBhcmVuJ3QgdXNlZCBvbiBHMi4gQW5kcnplaiBpbnRyb2R1Y2VkIG5ldyBwb3N0cHJvYyBoZWxw ZXJzIApmb3IgRzIuCgpUaGlzIGNvbW1pdCBzb2x2ZXMgaXNzdWUgZm9yIEg2OgpodHRwczovL2dp dGh1Yi5jb20vamVybmVqc2svbGludXgtMS9jb21taXQvCmE3ODNhOTc3YzA4NDNiYjRiNTU1ZGM5 ZDBiNWQ2NDkxNWNkMjE5ZTcKCj4gCj4gPiBUaGlzIG1ha2VzIHRoaXMgc2VyaWVzIHdpdGggbWlu b3IgYWRhcHRhdGlvbnMgY29tcGxldGVseSB3b3JraW5nIG9uIEg2LiBJIApzZWUKPiA+IG5vIHJl YXNvbiBub3QgdG8gbWVyZ2Ugd2hvbGUgc2VyaWVzLgo+ID4KPiAKPiBEbyB5b3UgaGF2ZSBwbGFu cyB0byBzdWJtaXQgeW91ciBINiB3b3JrIG9uIHRvcCBvZiB0aGlzPwoKT2YgY291cnNlLCB3aHkg d291bGQgSSB3b3JrIG9uIHRoaXMgb3RoZXJ3aXNlPyA6KSBCdXQgYmVmb3JlIEkgZG8gdGhhdCwg SSBoYXZlIAp0byBjbGVhbiB1cCBhbmQgc3BsaXQgb25lIGNvbW1pdCwgd2hpY2ggYWRhcHRzIFZQ OSBHMiBjb2RlIGZvciBINiB2YXJpYW50LgoKSWYgeW91J3JlIGludGVyZXN0ZWQgaW4gY2hhbmdl cywgdGFrZSBhIGxvb2sgaGVyZToKaHR0cHM6Ly9naXRodWIuY29tL2plcm5lanNrL2xpbnV4LTEv Y29tbWl0cy92cDkKCkJlc3QgcmVnYXJkcywKSmVybmVqCgo+IAo+IFRoYW5rcywKPiBFemVxdWll bAo+IAo+IAo+ID4gVGhhbmtzIGZvciB0ZXN0aW5nLgo+ID4KPiA+IEJlc3QgcmVnYXJkcywKPiA+ IEplcm5lago+ID4KPiA+ID4KPiA+ID4gQW5kcnplago+ID4gPgo+ID4gPiA+IEhvd2V2ZXIsIGdp dmVuIHRoYXQgZnJhbWVzIHRoZW1zZWxmIGFyZSBjb3JyZWN0bHkgZGVjb2RlZCBhbmQgd2l0aG91 dAo+ID4gPiA+IHBvc3Rwcm9jZXNzaW5nIGluIHJpZ2h0IG9yZGVyLCB0aGF0IHNob3VsZG4ndCBi bG9jayBtZXJnaW5nIHByZXZpb3VzCj4gPiBwYXRjaGVzLgo+ID4gPiA+IEkgdHJpZWQgZmV3IGRp ZmZlcmVudCB2aWRlb3MgYW5kIGZyYW1lcyB3ZXJlIGFsbCBkZWNvZGVkIGNvcnJlY3RseS4KPiA+ ID4gPgo+ID4gPiA+IEJlc3QgcmVnYXJkcywKPiA+ID4gPiBKZXJuZWoKPiA+ID4gPgo+ID4gPiA+ Pgo+ID4gPiA+PiBTaWduZWQtb2ZmLWJ5OiBFemVxdWllbCBHYXJjaWEgPGV6ZXF1aWVsQGNvbGxh Ym9yYS5jb20+Cj4gPiA+ID4+IFNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWogUGlldHJhc2lld2ljeiA8 YW5kcnplai5wQGNvbGxhYm9yYS5jb20+Cj4gPiA+ID4+IC0tLQo+ID4gPiA+PiAgIC4uLi9zdGFn aW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJfdnA5X2RlYy5jICB8ICA2ICsrLS0KPiA+ID4gPj4g ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oICAgICAgfCAgMSArCj4g PiA+ID4+ICAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19wb3N0cHJvYy5jICAgIHwg MzEgKysrKysrKysrKysrKysrKworKysKPiA+ID4gPj4gICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2lteDhtX3ZwdV9ody5jICAgfCAxMSArKysrKysrCj4gPiA+ID4+ICAgNCBmaWxlcyBj aGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ID4gPiA+Pgo+ID4gPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJfdnA5 X2RlYy5jIGIvCmRyaXZlcnMvCj4gPiA+ID4gc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cy X3ZwOV9kZWMuYwo+ID4gPiA+PiBpbmRleCA3ZjgyN2I5ZjAxMzMuLjFhMjZiZTcyYzg3OCAxMDA2 NDQKPiA+ID4gPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJf dnA5X2RlYy5jCj4gPiA+ID4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX2cyX3ZwOV9kZWMuYwo+ID4gPiA+PiBAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyB2b2lk IGNvbmZpZ19vdXRwdXQoc3RydWN0IGhhbnRyb19jdHggKmN0eCwKPiA+ID4gPj4gICAgaGFudHJv X3JlZ193cml0ZShjdHgtPmRldiwgJmcyX291dF9kaXMsIDApOwo+ID4gPiA+PiAgICBoYW50cm9f cmVnX3dyaXRlKGN0eC0+ZGV2LCAmZzJfb3V0cHV0X2Zvcm1hdCwgMCk7Cj4gPiA+ID4+Cj4gPiA+ ID4+IC0gIGx1bWFfYWRkciA9IHZiMl9kbWFfY29udGlnX3BsYW5lX2RtYV9hZGRyKCZkc3QtPmJh c2UudmIudmIyX2J1ZiwKPiA+ID4gPiAwKTsKPiA+ID4gPj4gKyAgbHVtYV9hZGRyID0gaGFudHJv X2dldF9kZWNfYnVmX2FkZHIoY3R4LCAmZHN0LT5iYXNlLnZiLnZiMl9idWYpOwo+ID4gPiA+PiAg ICBoYW50cm9fd3JpdGVfYWRkcihjdHgtPmRldiwgRzJfT1VUX0xVTUFfQUREUiwgbHVtYV9hZGRy KTsKPiA+ID4gPj4KPiA+ID4gPj4gICAgY2hyb21hX2FkZHIgPSBsdW1hX2FkZHIgKyBjaHJvbWFf b2Zmc2V0KGN0eCwgZGVjX3BhcmFtcyk7Cj4gPiA+ID4+IEBAIC0xOTEsNyArMTkxLDcgQEAgc3Rh dGljIHZvaWQgY29uZmlnX3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4LAo+ID4gPiA+PiAgICBo YW50cm9fcmVnX3dyaXRlKGN0eC0+ZGV2LCAmcmVmX3JlZy0+aG9yX3NjYWxlLCAocmVmdyA8PCAx NCkgLwo+ID4gPiA+IGRzdC0+dnA5LndpZHRoKTsKPiA+ID4gPj4gICAgaGFudHJvX3JlZ193cml0 ZShjdHgtPmRldiwgJnJlZl9yZWctPnZlcl9zY2FsZSwgKHJlZmggPDwgMTQpIC8KPiA+ID4gPiBk c3QtPnZwOS5oZWlnaHQpOwo+ID4gPiA+Pgo+ID4gPiA+PiAtICBsdW1hX2FkZHIgPSB2YjJfZG1h X2NvbnRpZ19wbGFuZV9kbWFfYWRkcigmYnVmLT5iYXNlLnZiLnZiMl9idWYsCj4gPiA+ID4gMCk7 Cj4gPiA+ID4+ICsgIGx1bWFfYWRkciA9IGhhbnRyb19nZXRfZGVjX2J1Zl9hZGRyKGN0eCwgJmJ1 Zi0+YmFzZS52Yi52YjJfYnVmKTsKPiA+ID4gPj4gICAgaGFudHJvX3dyaXRlX2FkZHIoY3R4LT5k ZXYsIHJlZl9yZWctPnlfYmFzZSwgbHVtYV9hZGRyKTsKPiA+ID4gPj4KPiA+ID4gPj4gICAgY2hy b21hX2FkZHIgPSBsdW1hX2FkZHIgKyBjaHJvbWFfb2Zmc2V0KGN0eCwgZGVjX3BhcmFtcyk7Cj4g PiA+ID4+IEBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIHZvaWQgY29uZmlnX3JlZl9yZWdpc3Rl cnMoc3RydWN0IGhhbnRyb19jdHgKPiA+ICpjdHgsCj4gPiA+ID4+ICAgIGNvbmZpZ19yZWYoY3R4 LCBkc3QsICZyZWZfcmVnc1sxXSwgZGVjX3BhcmFtcywgZGVjX3BhcmFtcy0KPiA+ID4gPj4gZ29s ZGVuX2ZyYW1lX3RzKTsKPiA+ID4gPj4gICAgY29uZmlnX3JlZihjdHgsIGRzdCwgJnJlZl9yZWdz WzJdLCBkZWNfcGFyYW1zLCBkZWNfcGFyYW1zLQo+ID4gPiA+PiBhbHRfZnJhbWVfdHMpOwo+ID4g PiA+Pgo+ID4gPiA+PiAtICBtdl9hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIo Jm12X3JlZi0+YmFzZS52Yi52YjJfYnVmLAo+ID4gPiA+IDApICsKPiA+ID4gPj4gKyAgbXZfYWRk ciA9IGhhbnRyb19nZXRfZGVjX2J1Zl9hZGRyKGN0eCwgJm12X3JlZi0+YmFzZS52Yi52YjJfYnVm KSArCj4gPiA+ID4+ICAgICAgICAgICAgICBtdl9vZmZzZXQoY3R4LCBkZWNfcGFyYW1zKTsKPiA+ ID4gPj4gICAgaGFudHJvX3dyaXRlX2FkZHIoY3R4LT5kZXYsIEcyX1JFRl9NVl9BRERSKDApLCBt dl9hZGRyKTsKPiA+ID4gPj4KPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2h3LmggYi9kcml2ZXJzLwpzdGFnaW5nLwo+ID4gPiA+IG1lZGlh L2hhbnRyby9oYW50cm9faHcuaAo+ID4gPiA+PiBpbmRleCAyOTYxZDM5OWZkNjAuLjNkNGE1ZGMx ZTZkNSAxMDA2NDQKPiA+ID4gPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9o YW50cm9faHcuaAo+ID4gPiA+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19ody5oCj4gPiA+ID4+IEBAIC0yNzQsNiArMjc0LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVj dCBoYW50cm9fdmFyaWFudAo+ID4gcmszMzk5X3ZwdV92YXJpYW50Owo+ID4gPiA+PiAgIGV4dGVy biBjb25zdCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgc2FtYTVkNF92ZGVjX3ZhcmlhbnQ7Cj4gPiA+ ID4+Cj4gPiA+ID4+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBoYW50cm9fcG9zdHByb2Nfb3BzIGhh bnRyb19nMV9wb3N0cHJvY19vcHM7Cj4gPiA+ID4+ICtleHRlcm4gY29uc3Qgc3RydWN0IGhhbnRy b19wb3N0cHJvY19vcHMgaGFudHJvX2cyX3Bvc3Rwcm9jX29wczsKPiA+ID4gPj4KPiA+ID4gPj4g ICBleHRlcm4gY29uc3QgdTMyIGhhbnRyb192cDhfZGVjX21jX2ZpbHRlcls4XVs2XTsKPiA+ID4g Pj4KPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX3Bvc3Rwcm9jLmMgYi9kcml2ZXJzLwo+ID4gPiA+IHN0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19wb3N0cHJvYy5jCj4gPiA+ID4+IGluZGV4IDQ1NDlhZWMwOGZlYi4uNzlhNjZkMDAxNzM4 IDEwMDY0NAo+ID4gPiA+PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRy b19wb3N0cHJvYy5jCj4gPiA+ID4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8v aGFudHJvX3Bvc3Rwcm9jLmMKPiA+ID4gPj4gQEAgLTExLDYgKzExLDcgQEAKPiA+ID4gPj4gICAj aW5jbHVkZSAiaGFudHJvLmgiCj4gPiA+ID4+ICAgI2luY2x1ZGUgImhhbnRyb19ody5oIgo+ID4g PiA+PiAgICNpbmNsdWRlICJoYW50cm9fZzFfcmVncy5oIgo+ID4gPiA+PiArI2luY2x1ZGUgImhh bnRyb19nMl9yZWdzLmgiCj4gPiA+ID4+Cj4gPiA+ID4+ICAgI2RlZmluZSBIQU5UUk9fUFBfUkVH X1dSSVRFKHZwdSwgcmVnX25hbWUsIHZhbCkgXAo+ID4gPiA+PiAgIHsgXAo+ID4gPiA+PiBAQCAt OTksNiArMTAwLDIxIEBAIHN0YXRpYyB2b2lkIGhhbnRyb19wb3N0cHJvY19nMV9lbmFibGUoc3Ry dWN0Cj4gPiBoYW50cm9fY3R4Cj4gPiA+ID4gKmN0eCkKPiA+ID4gPj4gICAgSEFOVFJPX1BQX1JF R19XUklURSh2cHUsIGRpc3BsYXlfd2lkdGgsIGN0eC0+ZHN0X2ZtdC53aWR0aCk7Cj4gPiA+ID4+ ICAgfQo+ID4gPiA+Pgo+ID4gPiA+PiArc3RhdGljIHZvaWQgaGFudHJvX3Bvc3Rwcm9jX2cyX2Vu YWJsZShzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4gPiA+PiArewo+ID4gPiA+PiArICBzdHJ1 Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5kZXY7Cj4gPiA+ID4+ICsgIHN0cnVjdCB2YjJfdjRs Ml9idWZmZXIgKmRzdF9idWY7Cj4gPiA+ID4+ICsgIHNpemVfdCBjaHJvbWFfb2Zmc2V0ID0gY3R4 LT5kc3RfZm10LndpZHRoICogY3R4LT5kc3RfZm10LmhlaWdodDsKPiA+ID4gPj4gKyAgZG1hX2Fk ZHJfdCBkc3RfZG1hOwo+ID4gPiA+PiArCj4gPiA+ID4+ICsgIGRzdF9idWYgPSBoYW50cm9fZ2V0 X2RzdF9idWYoY3R4KTsKPiA+ID4gPj4gKyAgZHN0X2RtYSA9IHZiMl9kbWFfY29udGlnX3BsYW5l X2RtYV9hZGRyKCZkc3RfYnVmLT52YjJfYnVmLCAwKTsKPiA+ID4gPj4gKwo+ID4gPiA+PiArICBo YW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX1JTX09VVF9MVU1BX0FERFIsIGRzdF9kbWEpOwo+ID4g PiA+PiArICBoYW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX1JTX09VVF9DSFJPTUFfQUREUiwgZHN0 X2RtYSArCj4gPiA+ID4gY2hyb21hX29mZnNldCk7Cj4gPiA+ID4+ICsgIGhhbnRyb19yZWdfd3Jp dGUodnB1LCAmZzJfb3V0X3JzX2UsIDEpOwo+ID4gPiA+PiArfQo+ID4gPiA+PiArCj4gPiA+ID4+ ICAgdm9pZCBoYW50cm9fcG9zdHByb2NfZnJlZShzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4g PiA+PiAgIHsKPiA+ID4gPj4gICAgc3RydWN0IGhhbnRyb19kZXYgKnZwdSA9IGN0eC0+ZGV2Owo+ ID4gPiA+PiBAQCAtMTI3LDYgKzE0Myw5IEBAIGludCBoYW50cm9fcG9zdHByb2NfYWxsb2Moc3Ry dWN0IGhhbnRyb19jdHggKmN0eCkKPiA+ID4gPj4gICAgaWYgKGN0eC0+dnB1X3NyY19mbXQtPmZv dXJjYyA9PSBWNEwyX1BJWF9GTVRfSDI2NF9TTElDRSkKPiA+ID4gPj4gICAgICAgICAgICBidWZf c2l6ZSArPSBoYW50cm9faDI2NF9tdl9zaXplKGN0eC0+ZHN0X2ZtdC53aWR0aCwKPiA+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0KPiA+ID4gPj4g ZHN0X2ZtdC5oZWlnaHQpOwo+ID4gPiA+PiArICBlbHNlIGlmIChjdHgtPnZwdV9zcmNfZm10LT5m b3VyY2MgPT0gVjRMMl9QSVhfRk1UX1ZQOV9GUkFNRSkKPiA+ID4gPj4gKyAgICAgICAgICBidWZf c2l6ZSArPSBoYW50cm9fdnA5X212X3NpemUoY3R4LT5kc3RfZm10LndpZHRoLAo+ID4gPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtCj4gPiA+ID4+IGRz dF9mbXQuaGVpZ2h0KTsKPiA+ID4gPj4KPiA+ID4gPj4gICAgZm9yIChpID0gMDsgaSA8IG51bV9i dWZmZXJzOyArK2kpIHsKPiA+ID4gPj4gICAgICAgICAgICBzdHJ1Y3QgaGFudHJvX2F1eF9idWYg KnByaXYgPSAmY3R4LT5wb3N0cHJvYy5kZWNfcVtpXTsKPiA+ID4gPj4gQEAgLTE1Miw2ICsxNzEs MTMgQEAgc3RhdGljIHZvaWQgaGFudHJvX3Bvc3Rwcm9jX2cxX2Rpc2FibGUoc3RydWN0Cj4gPiA+ ID4gaGFudHJvX2N0eCAqY3R4KQo+ID4gPiA+PiAgICBIQU5UUk9fUFBfUkVHX1dSSVRFX1ModnB1 LCBwaXBlbGluZV9lbiwgMHgwKTsKPiA+ID4gPj4gICB9Cj4gPiA+ID4+Cj4gPiA+ID4+ICtzdGF0 aWMgdm9pZCBoYW50cm9fcG9zdHByb2NfZzJfZGlzYWJsZShzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4 KQo+ID4gPiA+PiArewo+ID4gPiA+PiArICBzdHJ1Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5k ZXY7Cj4gPiA+ID4+ICsKPiA+ID4gPj4gKyAgaGFudHJvX3JlZ193cml0ZSh2cHUsICZnMl9vdXRf cnNfZSwgMCk7Cj4gPiA+ID4+ICt9Cj4gPiA+ID4+ICsKPiA+ID4gPj4gICB2b2lkIGhhbnRyb19w b3N0cHJvY19kaXNhYmxlKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiA+ID4+ICAgewo+ID4g PiA+PiAgICBzdHJ1Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5kZXY7Cj4gPiA+ID4+IEBAIC0x NzIsMyArMTk4LDggQEAgY29uc3Qgc3RydWN0IGhhbnRyb19wb3N0cHJvY19vcHMKPiA+IGhhbnRy b19nMV9wb3N0cHJvY19vcHMKPiA+ID4gPiA9IHsKPiA+ID4gPj4gICAgLmVuYWJsZSA9IGhhbnRy b19wb3N0cHJvY19nMV9lbmFibGUsCj4gPiA+ID4+ICAgIC5kaXNhYmxlID0gaGFudHJvX3Bvc3Rw cm9jX2cxX2Rpc2FibGUsCj4gPiA+ID4+ICAgfTsKPiA+ID4gPj4gKwo+ID4gPiA+PiArY29uc3Qg c3RydWN0IGhhbnRyb19wb3N0cHJvY19vcHMgaGFudHJvX2cyX3Bvc3Rwcm9jX29wcyA9IHsKPiA+ ID4gPj4gKyAgLmVuYWJsZSA9IGhhbnRyb19wb3N0cHJvY19nMl9lbmFibGUsCj4gPiA+ID4+ICsg IC5kaXNhYmxlID0gaGFudHJvX3Bvc3Rwcm9jX2cyX2Rpc2FibGUsCj4gPiA+ID4+ICt9Owo+ID4g PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9pbXg4bV92cHVf aHcuYyBiL2RyaXZlcnMvCj4gPiBzdGFnaW5nLwo+ID4gPiA+IG1lZGlhL2hhbnRyby9pbXg4bV92 cHVfaHcuYwo+ID4gPiA+PiBpbmRleCA0NTVhMTA3ZmZiMDIuLjFhNDNmNmZjZWVmOSAxMDA2NDQK PiA+ID4gPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9pbXg4bV92cHVfaHcu Ywo+ID4gPiA+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9o dy5jCj4gPiA+ID4+IEBAIC0xMzIsNiArMTMyLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGFu dHJvX2ZtdCAKaW14OG1fdnB1X2RlY19mbXRzW10KPiA+ID0gewo+ID4gPiA+PiAgICB9LAo+ID4g PiA+PiAgIH07Cj4gPiA+ID4+Cj4gPiA+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGhhbnRyb19m bXQgaW14OG1fdnB1X2cyX3Bvc3Rwcm9jX2ZtdHNbXSA9IHsKPiA+ID4gPj4gKyAgewo+ID4gPiA+ PiArICAgICAgICAgIC5mb3VyY2MgPSBWNEwyX1BJWF9GTVRfTlYxMiwKPiA+ID4gPj4gKyAgICAg ICAgICAuY29kZWNfbW9kZSA9IEhBTlRST19NT0RFX05PTkUsCj4gPiA+ID4+ICsgICAgICAgICAg LnBvc3Rwcm9jZXNzZWQgPSB0cnVlLAo+ID4gPiA+PiArICB9LAo+ID4gPiA+PiArfTsKPiA+ID4g Pj4gKwo+ID4gPiA+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGFudHJvX2ZtdCBpbXg4bV92cHVf ZzJfZGVjX2ZtdHNbXSA9IHsKPiA+ID4gPj4gICAgewo+ID4gPiA+PiAgICAgICAgICAgIC5mb3Vy Y2MgPSBWNEwyX1BJWF9GTVRfTlYxMl80TDQsCj4gPiA+ID4+IEBAIC0zMDEsNiArMzA5LDkgQEAg Y29uc3Qgc3RydWN0IGhhbnRyb192YXJpYW50IGlteDhtcV92cHVfZzJfdmFyaWFudCAKPSB7Cj4g PiA+ID4+ICAgIC5kZWNfb2Zmc2V0ID0gMHgwLAo+ID4gPiA+PiAgICAuZGVjX2ZtdHMgPSBpbXg4 bV92cHVfZzJfZGVjX2ZtdHMsCj4gPiA+ID4+ICAgIC5udW1fZGVjX2ZtdHMgPSBBUlJBWV9TSVpF KGlteDhtX3ZwdV9nMl9kZWNfZm10cyksCj4gPiA+ID4+ICsgIC5wb3N0cHJvY19mbXRzID0gaW14 OG1fdnB1X2cyX3Bvc3Rwcm9jX2ZtdHMsCj4gPiA+ID4+ICsgIC5udW1fcG9zdHByb2NfZm10cyA9 IEFSUkFZX1NJWkUoaW14OG1fdnB1X2cyX3Bvc3Rwcm9jX2ZtdHMpLAo+ID4gPiA+PiArICAucG9z dHByb2Nfb3BzID0gJmhhbnRyb19nMl9wb3N0cHJvY19vcHMsCj4gPiA+ID4+ICAgIC5jb2RlYyA9 IEhBTlRST19IRVZDX0RFQ09ERVIgfCBIQU5UUk9fVlA5X0RFQ09ERVIsCj4gPiA+ID4+ICAgIC5j b2RlY19vcHMgPSBpbXg4bXFfdnB1X2cyX2NvZGVjX29wcywKPiA+ID4gPj4gICAgLmluaXQgPSBp bXg4bXFfdnB1X2h3X2luaXQsCj4gPiA+ID4+IC0tCj4gPiA+ID4+IDIuMTcuMQo+ID4gPiA+Pgo+ ID4gPiA+Pgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4KPiA+ID4KPiA+Cj4gPgo+IAoKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==