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 AEC4DC433EF for ; Wed, 30 Mar 2022 15:26:16 +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=FYJwmDy55oiUj42yFncNUALNj2MnrXfZ8HLhGNfwBWQ=; b=gN1CGDez8uLGGq hFjqtXaZnL83/gTImxAK5qlOJ9cCDE3BuW9Mu3h9JFecCtw3BVmo+t05kio52iPEHFFukerRsL5tI +IxsnL8YOshb//lRoD5mHkPU1ouFvHa9lsgqzh8OzvA9JAQBPhnSODAWDLyh/pxmBIkbAz1vUnl/c 8oZwVKU9AaKg9R0roC+eeK8fkFVyyghI1b847ixoEOD1wIGC8ZQTulCx2x05E1QoBRbqjzRt3Mxrb MfFNW4f7I/yOP4GPM07jnzp1V+gW0Ao7NTHeOt1JpwBEtEg8b/5CyAbhGQkMJNTyaU0RTx7resNyn lFozxIdi3Iomb4lXlDNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nZaD5-00GYqi-5k; Wed, 30 Mar 2022 15:26:11 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nZaCz-00GYnL-Bv for linux-rockchip@lists.infradead.org; Wed, 30 Mar 2022 15:26:07 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: nicolas) with ESMTPSA id D0C5C1F422A5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1648653964; bh=BG8siRAN82v+w8F/ZIVjguEaZ9A/MnFMwINvZvy6sDw=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=hR3Bzqvbqrhf5B/MPfTULES4Qqe6nLiJdtWkNlmolsaCaOdSgnraPfFFE5RSHhDb/ 9AyZJNx80mvOysTf8IAomlcegAU7ypLiIQsfDnMrqM6JwpNPCy+SIxMICZ6Uz5GgZX 5SYPaBeKLkRZ+sfFYXL0PBOu2pacUhNTL7TphrjzLS1uTSuZwboJAbOhrkmHp1HjKc DPzwpfwGIjMG3UON8ktdyx8P58Owby9DEha/qMHvNHsPg+AdyzSZjNqJmPtyPmPHFu ZGnv1zsqrYf2FVjfVwv1Yg67JtIZbWulOKTdM67xI4Gd+mmEEvzZospY50BEmPI7Lr GYXB0cAug7uuA== Message-ID: <5ccf5e2924ff9609ee37a4eed73705380e8cce94.camel@collabora.com> Subject: Re: [PATCH v1 23/24] media: hantro: Add H.264 field decoding support From: Nicolas Dufresne To: Sebastian Fricke Cc: Ezequiel Garcia , Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman , kernel@collabora.com, Jonas Karlman , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Date: Wed, 30 Mar 2022 11:25:53 -0400 In-Reply-To: <20220330090345.pxx54emtalz6vgqt@basti-XPS-13-9310> References: <20220328195936.82552-1-nicolas.dufresne@collabora.com> <20220328195936.82552-24-nicolas.dufresne@collabora.com> <20220330090345.pxx54emtalz6vgqt@basti-XPS-13-9310> User-Agent: Evolution 3.44.0 (3.44.0-1.fc36) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220330_082605_710788_D1B3BD68 X-CRM114-Status: GOOD ( 40.12 ) 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 TGUgbWVyY3JlZGkgMzAgbWFycyAyMDIyIMOgIDExOjAzICswMjAwLCBTZWJhc3RpYW4gRnJpY2tl IGEgw6ljcml0wqA6Cj4gSGV5IE5pY29sYXMsCj4gCj4gT24gMjguMDMuMjAyMiAxNTo1OSwgTmlj b2xhcyBEdWZyZXNuZSB3cm90ZToKPiA+IFRoaXMgYWRkcyB0aGUgcmVxdWlyZWQgY29kZSB0byBz dXBwb3J0IGZpZWxkIGRlY29kaW5nLiBXaGlsZSBtb3N0IG9mCj4gPiB0aGUgY29kZSBpcyBkZXJp dmVkIGZyb20gUm9ja2NoaXAgYW5kIFZTSSByZWZlcmVuY2UgY29kZSwgdGhlCj4gPiByZWR1Y3Rp b24gb2YgdGhlIHJlZmVyZW5jZSBsaXN0IHRvIDE2IGVudHJpZXMgaGFzIGJlZW4gZm91bmQgYnkK PiAKPiBzL2hhcyBiZWVuL3dhcy8KPiAKPiA+IHRyaWFsIGFuZCBlcnJvcnMuIFRoZSBsaXN0IGNv bnNpc3Qgb2YgYWxsIHRoZSByZWZlcmVuY2VzIHdpdGggdGhlCj4gCj4gcy9jb25zaXN0L2NvbnNp c3RzLwo+IAo+ID4gb3Bwb3NpdGUgZmllbGQgcGFyaXR5Lgo+ID4gCj4gPiBUaGUgc3RyYXRlZ3kg YmVpbmcgdG8gZGVkdXBsaWNhdGUgdGhlIHJlZmVyZW5jZSBwaWN0dXJlIHRoYXQgcG9pbnRzCj4g Cj4gcy9zdHJhdGVneSBiZWluZyB0by9zdHJhdGVneSBpcyB0by8KPiAKPiA+IHRvIHRoZSBzYW1l IHN0b3JhZ2UgKHNhbWUgaW5kZXgpLiBUaGUgY2hvaWNlIG9mIG9wcG9zaXRlIHBhcml0eSBoYXMK PiA+IGJlZW4gbWFkZSB0byBrZWVwIHRoZSBvdGhlciBmaWVsZCBvciBhIGZpZWxkIHBhaXIgdG8g YmUga2VwdCBpbiB0aGUKPiAKPiBEbyB5b3UgbWVhbj8KPiAKPiBzL2tlZXAgdGhlIG90aGVyIGZp ZWxkIG9yIGEgZmllbGQgcGFpciB0byBiZSBrZXB0Lwo+ICAgIGtlZXAgdGhlIG90aGVyIGZpZWxk IG9mIGEgZmllbGQgcGFpci8KPiAKPiA+IGxpc3QuIFRoaXMgbWV0aG9kIG1heSBub3QgYmUgcm9i dXN0IGlmIGEgZmllbGQgd2FzIGxvc3QuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEpvbmFzIEth cmxtYW4gPGpvbmFzQGt3aWJvby5zZT4KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgRHVmcmVz bmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KPiA+IC0tLQo+ID4gZHJpdmVycy9z dGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faDI2NC5jIHwgMTA3ICsrKysrKysrKysrKysrKysr Ky0tLQo+ID4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaCAgIHwgICAx ICsKPiA+IDIgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRy b19oMjY0LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19oMjY0LmMKPiA+ IGluZGV4IDczNzdmYzI2Zjc4MC4uZjZmYzkzOWFhNzI2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faDI2NC5jCj4gPiArKysgYi9kcml2ZXJzL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19oMjY0LmMKPiA+IEBAIC0yMiw2ICsyMiwxMSBAQAo+ ID4gI2RlZmluZSBQT0NfQlVGRkVSX1NJWkUJCQkzNAo+ID4gI2RlZmluZSBTQ0FMSU5HX0xJU1Rf U0laRQkJKDYgKiAxNiArIDIgKiA2NCkKPiA+IAo+ID4gKy8qIEZvciB2YWxpZCBhbmQgbG9uZyB0 ZXJtIHJlZmVyZW5jZSBtYXJraW5nLCBpbmRleCBhcmUgcmV2ZXJzZWQsIHNvIGJpdCAzMQo+IAo+ IHMvaW5kZXgvaW5kZWNlcy8KPiAKPiA+ICsgKiBpbmRpY2F0ZXMgdGhlIHN0YXR1cyBvZiB0aGUg cGljdHVyZSAwLgo+ID4gKyAqLwo+ID4gKyNkZWZpbmUgUkVGX0JJVChpKQkJCUJJVCgzMiAtIDEg LSAoaSkpCj4gPiArCj4gPiAvKiBEYXRhIHN0cnVjdHVyZSBkZXNjcmliaW5nIGF1eGlsaWFyeSBi dWZmZXIgZm9ybWF0LiAqLwo+ID4gc3RydWN0IGhhbnRyb19oMjY0X2RlY19wcml2X3RibCB7Cj4g PiAJdTMyIGNhYmFjX3RhYmxlW0NBQkFDX0lOSVRfQlVGRkVSX1NJWkVdOwo+ID4gQEAgLTIyNyw2 ICsyMzIsNyBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlX3RhYmxlKHN0cnVjdCBoYW50cm9fY3R4ICpj dHgpCj4gPiB7Cj4gPiAJY29uc3Qgc3RydWN0IGhhbnRyb19oMjY0X2RlY19jdHJscyAqY3RybHMg PSAmY3R4LT5oMjY0X2RlYy5jdHJsczsKPiA+IAljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2gyNjRf ZGVjb2RlX3BhcmFtcyAqZGVjX3BhcmFtID0gY3RybHMtPmRlY29kZTsKPiA+ICsJY29uc3Qgc3Ry dWN0IHY0bDJfY3RybF9oMjY0X3NwcyAqc3BzID0gY3RybHMtPnNwczsKPiA+IAlzdHJ1Y3QgaGFu dHJvX2gyNjRfZGVjX3ByaXZfdGJsICp0YmwgPSBjdHgtPmgyNjRfZGVjLnByaXYuY3B1Owo+ID4g CWNvbnN0IHN0cnVjdCB2NGwyX2gyNjRfZHBiX2VudHJ5ICpkcGIgPSBjdHgtPmgyNjRfZGVjLmRw YjsKPiA+IAl1MzIgZHBiX2xvbmd0ZXJtID0gMDsKPiA+IEBAIC0yMzcsMjAgKzI0Myw0NSBAQCBz dGF0aWMgdm9pZCBwcmVwYXJlX3RhYmxlKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAJCXRi bC0+cG9jW2kgKiAyXSA9IGRwYltpXS50b3BfZmllbGRfb3JkZXJfY250Owo+ID4gCQl0YmwtPnBv Y1tpICogMiArIDFdID0gZHBiW2ldLmJvdHRvbV9maWVsZF9vcmRlcl9jbnQ7Cj4gPiAKPiA+ICsJ CWlmICghKGRwYltpXS5mbGFncyAmIFY0TDJfSDI2NF9EUEJfRU5UUllfRkxBR19WQUxJRCkpCj4g PiArCQkJY29udGludWU7Cj4gPiArCj4gPiAJCS8qCj4gPiAJCSAqIFNldCB1cCBiaXQgbWFwcyBv ZiB2YWxpZCBhbmQgbG9uZyB0ZXJtIERQQnMuCj4gPiAtCQkgKiBOT1RFOiBUaGUgYml0cyBhcmUg cmV2ZXJzZWQsIGkuZS4gTVNiIGlzIERQQiAwLgo+ID4gKwkJICogTk9URTogVGhlIGJpdHMgYXJl IHJldmVyc2VkLCBpLmUuIE1TYiBpcyBEUEIgMC4gRm9yIGZyYW1lCj4gPiArCQkgKiBkZWNvZGlu ZywgYml0IDMxIHRvIDE1IGFyZSB1c2VkLCB3aGlsZSBmb3IgZmllbGQgZGVjb2RpbmcsCj4gCj4g cy9iaXQgMzEvYml0cyAzMS8KPiAKPiA+ICsJCSAqIGFsbCBiaXRzIGFyZSB1c2VkLCB3aXRoIGJp dCAzMSBiZWluZyBhIHRvcCBmaWVsZCwgMzAgYSBib3R0b20KPiA+ICsJCSAqIGZpZWxkIGFuZCBz byBvbi4KPiA+IAkJICovCj4gPiAtCQlpZiAoZHBiW2ldLmZsYWdzICYgVjRMMl9IMjY0X0RQQl9F TlRSWV9GTEFHX0FDVElWRSkKPiA+IC0JCQlkcGJfdmFsaWQgfD0gQklUKEhBTlRST19IMjY0X0RQ Ql9TSVpFIC0gMSAtIGkpOwo+ID4gLQkJaWYgKGRwYltpXS5mbGFncyAmIFY0TDJfSDI2NF9EUEJf RU5UUllfRkxBR19MT05HX1RFUk0pCj4gPiAtCQkJZHBiX2xvbmd0ZXJtIHw9IEJJVChIQU5UUk9f SDI2NF9EUEJfU0laRSAtIDEgLSBpKTsKPiA+ICsJCWlmIChkZWNfcGFyYW0tPmZsYWdzICYgVjRM Ml9IMjY0X0RFQ09ERV9QQVJBTV9GTEFHX0ZJRUxEX1BJQykgewo+ID4gKwkJCWlmIChkcGJbaV0u ZmllbGRzICYgVjRMMl9IMjY0X1RPUF9GSUVMRF9SRUYpCj4gPiArCQkJCWRwYl92YWxpZCB8PSBS RUZfQklUKGkgKiAyKTsKPiA+ICsKPiA+ICsJCQlpZiAoZHBiW2ldLmZpZWxkcyAmIFY0TDJfSDI2 NF9CT1RUT01fRklFTERfUkVGKQo+ID4gKwkJCQlkcGJfdmFsaWQgfD0gUkVGX0JJVChpICogMiAr IDEpOwo+ID4gKwo+ID4gKwkJCWlmIChkcGJbaV0uZmxhZ3MgJiBWNEwyX0gyNjRfRFBCX0VOVFJZ X0ZMQUdfTE9OR19URVJNKSB7Cj4gPiArCQkJCWRwYl9sb25ndGVybSB8PSBSRUZfQklUKGkgKiAy KTsKPiA+ICsJCQkJZHBiX2xvbmd0ZXJtIHw9IFJFRl9CSVQoaSAqIDIgKyAxKTsKPiA+ICsJCQl9 Cj4gPiArCQl9IGVsc2Ugewo+ID4gKwkJCWRwYl92YWxpZCB8PSBSRUZfQklUKGkpOwo+ID4gKwo+ ID4gKwkJCWlmIChkcGJbaV0uZmxhZ3MgJiBWNEwyX0gyNjRfRFBCX0VOVFJZX0ZMQUdfTE9OR19U RVJNKQo+ID4gKwkJCQlkcGJfbG9uZ3Rlcm0gfD0gUkVGX0JJVChpKTsKPiA+ICsJCX0KPiA+ICsJ fQo+ID4gKwljdHgtPmgyNjRfZGVjLmRwYl92YWxpZCA9IGRwYl92YWxpZDsKPiA+ICsJY3R4LT5o MjY0X2RlYy5kcGJfbG9uZ3Rlcm0gPSBkcGJfbG9uZ3Rlcm07Cj4gPiArCj4gPiArCWlmICgoZGVj X3BhcmFtLT5mbGFncyAmIFY0TDJfSDI2NF9ERUNPREVfUEFSQU1fRkxBR19GSUVMRF9QSUMpIHx8 Cj4gPiArCSAgICAhKHNwcy0+ZmxhZ3MgJiBWNEwyX0gyNjRfU1BTX0ZMQUdfTUJfQURBUFRJVkVf RlJBTUVfRklFTEQpKSB7Cj4gPiArCQl0YmwtPnBvY1szMl0gPSBjdHgtPmgyNjRfZGVjLmN1cl9w b2M7Cj4gPiArCQl0YmwtPnBvY1szM10gPSAwOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJdGJsLT5w b2NbMzJdID0gZGVjX3BhcmFtLT50b3BfZmllbGRfb3JkZXJfY250Owo+ID4gKwkJdGJsLT5wb2Nb MzNdID0gZGVjX3BhcmFtLT5ib3R0b21fZmllbGRfb3JkZXJfY250Owo+ID4gCX0KPiA+IC0JY3R4 LT5oMjY0X2RlYy5kcGJfdmFsaWQgPSBkcGJfdmFsaWQgPDwgMTY7Cj4gPiAtCWN0eC0+aDI2NF9k ZWMuZHBiX2xvbmd0ZXJtID0gZHBiX2xvbmd0ZXJtIDw8IDE2Owo+ID4gLQo+ID4gLQl0YmwtPnBv Y1szMl0gPSBkZWNfcGFyYW0tPnRvcF9maWVsZF9vcmRlcl9jbnQ7Cj4gPiAtCXRibC0+cG9jWzMz XSA9IGRlY19wYXJhbS0+Ym90dG9tX2ZpZWxkX29yZGVyX2NudDsKPiA+IAo+ID4gCWFzc2VtYmxl X3NjYWxpbmdfbGlzdChjdHgpOwo+ID4gfQo+ID4gQEAgLTMyNiw2ICszNTcsOCBAQCBkbWFfYWRk cl90IGhhbnRyb19oMjY0X2dldF9yZWZfYnVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgsCj4gPiB7 Cj4gPiAJc3RydWN0IHY0bDJfaDI2NF9kcGJfZW50cnkgKmRwYiA9IGN0eC0+aDI2NF9kZWMuZHBi Owo+ID4gCWRtYV9hZGRyX3QgZG1hX2FkZHIgPSAwOwo+ID4gKwlzMzIgY3VyX3BvYyA9IGN0eC0+ aDI2NF9kZWMuY3VyX3BvYzsKPiA+ICsJdTMyIGZsYWdzOwo+ID4gCj4gPiAJaWYgKGRwYltkcGJf aWR4XS5mbGFncyAmIFY0TDJfSDI2NF9EUEJfRU5UUllfRkxBR19BQ1RJVkUpCj4gPiAJCWRtYV9h ZGRyID0gaGFudHJvX2dldF9yZWYoY3R4LCBkcGJbZHBiX2lkeF0ucmVmZXJlbmNlX3RzKTsKPiA+ IEBAIC0zNDMsNyArMzc2LDEyIEBAIGRtYV9hZGRyX3QgaGFudHJvX2gyNjRfZ2V0X3JlZl9idWYo c3RydWN0IGhhbnRyb19jdHggKmN0eCwKPiA+IAkJZG1hX2FkZHIgPSBoYW50cm9fZ2V0X2RlY19i dWZfYWRkcihjdHgsIGJ1Zik7Cj4gPiAJfQo+ID4gCj4gPiAtCXJldHVybiBkbWFfYWRkcjsKPiA+ ICsJZmxhZ3MgPSBkcGJbZHBiX2lkeF0uZmxhZ3MgJiBWNEwyX0gyNjRfRFBCX0VOVFJZX0ZMQUdf RklFTEQgPyAweDIgOiAwOwo+IAo+ID4gKwlmbGFncyB8PSBhYnMoZHBiW2RwYl9pZHhdLnRvcF9m aWVsZF9vcmRlcl9jbnQgLSBjdXJfcG9jKSA8Cj4gPiArCQkgYWJzKGRwYltkcGJfaWR4XS5ib3R0 b21fZmllbGRfb3JkZXJfY250IC0gY3VyX3BvYykgPwo+ID4gKwkJIDB4MSA6IDA7Cj4gCj4gWW91 IHVzZSB0aGUgbWFnaWMgdmFsdWVzIGAweDFgICYgYDB4MmAgaGVyZSwgY2FuIHlvdSByZXBsYWNl IHRob3NlIHdpdGgKPiBtYWNyb3M/Cj4gCj4gSXQgbG9va3MgMHgyIGluZGljYXRlcyB0aGF0IHdl IGhhdmUgYSBmaWVsZCBhbmQgMHgxIGluZGljYXRlcyB0aGUKPiBkaXN0YW5jZSBvZiB0aGUgY3Vy cmVudCBwaWN0dXJlIHRvIHRoZSBib3R0b20gZmllbGQgaXMgZ3JlYXRlciB0aGFuCj4gdGhlIGRp c3RhbmNlIG9mIHRoZSBjdXJyZW50IHBpY3R1cmUgdG8gdGhlIHRvcCBmaWVsZC4gKGluaWRpY2F0 aW5nIHRoYXQKPiB0aGUgb3JkZXIgaXMgY29ycmVjdD8pCj4gCj4gU28gbWF5YmU6Cj4gYGBgCj4g I2RlZmluZSBIQU5UUk9fSDI2NF9GSUVMRF9ETUFfQUREUiAgICAgICAgICAgICAgMHgxCj4gI2Rl ZmluZSBIQU5UUk9fSDI2NF9DT1JSRUNUX0ZJRUxEX09SREVSICAgICAgICAgMHgyCj4gYGBgCgpX aWxsIGRvLCBJIG5lZWQgdG8gY2hlY2sgYWdhaW4gaW4gdGhlIHJlZiBjb2RlIGZvciB0aGUgYXBw cm9wcmlhdGUgd29yZGluZyBmb3IKdGhlIG1lYW5pbmcgb2YgdGhlc2UgYml0cy4gSSBkb24ndCBs aWtlIG11Y2ggRklFTERfRE1BX0FERFIsIGFzIGl0cyBub3QgYW4KYWRkcmVzcywgb3IgYW4gb2Zm c2V0IHRvIGFuIGFkZHJlc3MuIEhlcmUgdGhlIGFkZHJlc3MgbXVzdCBiZSBhbGlnbmVkLCB3aGlj aApyZXN1bHRzIGluIHRoZXNlIGJpdHMgYWx3YXlzIGJlaW5nIDAsIHNvIHRoZXkgcmV1c2UgaXQg dG8gcGFzcyBwZXItcmVmZXJlbmNlCmluZm9ybWF0aW9uLgoKPiAKPiAKPiA+ICsKPiA+ICsJcmV0 dXJuIGRtYV9hZGRyIHwgZmxhZ3M7Cj4gPiB9Cj4gPiAKPiA+IHUxNiBoYW50cm9faDI2NF9nZXRf cmVmX25icihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4LCB1bnNpZ25lZCBpbnQgZHBiX2lkeCkKPiA+ IEBAIC0zNTUsNiArMzkzLDM0IEBAIHUxNiBoYW50cm9faDI2NF9nZXRfcmVmX25icihzdHJ1Y3Qg aGFudHJvX2N0eCAqY3R4LCB1bnNpZ25lZCBpbnQgZHBiX2lkeCkKPiA+IAlyZXR1cm4gZHBiLT5m cmFtZV9udW07Cj4gPiB9Cj4gPiAKPiA+ICtzdGF0aWMgdm9pZCBkZWR1cGxpY2F0ZV9yZWZsaXN0 KHN0cnVjdCB2NGwyX2gyNjRfcmVmbGlzdF9idWlsZGVyICpiLAo+ID4gKwkJCQlzdHJ1Y3QgdjRs Ml9oMjY0X3JlZmVyZW5jZSAqcmVmbGlzdCkKPiAKPiBDYW4geW91IGFkZCBhIGNvbW1lbnQgZGVz Y3JpYmluZyB3aHkgd2UgbmVlZCB0byBkZWR1cGxpY2F0ZSB0aGUKPiByZWZlcmVuY2UgbGlzdD8g QW5kIG1heWJlIGFsc28gd2h5IHdlIGdldCBkdXBsaWNhdGlvbnMgaW4gdGhlIGZpcnN0Cj4gcGxh Y2U/IFdoeSBtdXN0IHdlIGxpbWl0IHRoZSBzaXplIHRvIDE2Pwo+IFRoaXMgd291bGQgaW5jcmVh c2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlIGEgbG90LgoKRm9yIHJlYWRlcnMgdGhhdCBk aWQgdW5kZXJzdGFuZCB0aGUgSC4yNjQgc3BlY2lmaWNhdGlvbiwgdGhhdCBhIGZpZWxkIHJlZmxp c3QKaGFzIDMyIGVudHJ5IHNob3VsZCBiZSBvYnZpb3VzLiBUaGF0IGhhbnRybyB1c2VzIDE2IGVu dHJ5IG9ubHkgaXMgYW4KdW5kb2N1bWVudGVkIHRyaWNrZXJ5LCBJJ2xsIHdyaXRlIHNvbWV0aGlu ZyB0byB0aGUgYmVzdCBvZiBteSBrbm93bGVkZ2UsIGJ1dAp0aGlzIGhhcyBiZWVuIHJldmVyc2Vk LCBzbyBkb24ndCBleHBlY3QgdGhlIGhpZ2hlc3QgcmF0aW9uYWxlLiBJIHdpbGwgdGhvdWdoCmRv Y3VtZW50IGhlcmUgd2hhdCBJIHNheSBpbiB0aGUgY29tbWl0LCBlLmcuIHdoeSB0aGlzIG1ldGhv ZCBtaWdodCBub3QgYmUKcm9idXN0LCBzbyBzb21lb25lIGNhbiBnaXZlIGl0IGEgdHJ5IGFuZCBt YWtlIGl0IG1vcmUgcm9idXN0IGluIHRoZSBmdXR1cmUuCgo+IAo+ID4gK3sKPiA+ICsJaW50IHdy aXRlX2lkeCA9IDA7Cj4gPiArCWludCBpOwo+ID4gKwo+ID4gKwlpZiAoYi0+Y3VyX3BpY19maWVs ZHMgPT0gVjRMMl9IMjY0X0ZSQU1FX1JFRikgewo+ID4gKwkJd3JpdGVfaWR4ID0gYi0+bnVtX3Zh bGlkOwo+ID4gKwkJZ290byBkb25lOwo+ID4gKwl9Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkg PCBiLT5udW1fdmFsaWQ7IGkrKykgewo+ID4gKwkJaWYgKCEoYi0+Y3VyX3BpY19maWVsZHMgPT0g cmVmbGlzdFtpXS5maWVsZHMpKSB7Cj4gPiArCQkJcmVmbGlzdFt3cml0ZV9pZHgrK10gPSByZWZs aXN0W2ldOwo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArZG9u ZToKPiA+ICsJLyogU2hvdWxkIG5vdCBoYXBwZW4gdW5sZXNzIHdlIGhhdmUgYSBidWcgaW4gdGhl IHJlZmxpc3QgYnVpbGRlci4gKi8KPiA+ICsJaWYgKFdBUk5fT04od3JpdGVfaWR4ID4gMTYpKQo+ ID4gKwkJd3JpdGVfaWR4ID0gMTY7Cj4gPiArCj4gPiArCS8qIENsZWFyIHRoZSByZW1haW5pbmcs IHNvbWUgc3RyZWFtcyBmYWlscyBvdGhlcndpc2UgKi8KPiAKPiBzL3RoZSByZW1haW5pbmcvdGhl IHJlbWFpbmluZyBlbnRyaWVzLwo+IHMvZmFpbHMvZmFpbC8KPiAKPiA+ICsJZm9yICg7IHdyaXRl X2lkeCA8IDE2OyB3cml0ZV9pZHgrKykKPiA+ICsJCXJlZmxpc3Rbd3JpdGVfaWR4XS5pbmRleCA9 IDE1Owo+ID4gK30KPiA+ICsKPiA+IGludCBoYW50cm9faDI2NF9kZWNfcHJlcGFyZV9ydW4oc3Ry dWN0IGhhbnRyb19jdHggKmN0eCkKPiA+IHsKPiA+IAlzdHJ1Y3QgaGFudHJvX2gyNjRfZGVjX2h3 X2N0eCAqaDI2NF9jdHggPSAmY3R4LT5oMjY0X2RlYzsKPiA+IEBAIC0zODYsMTUgKzQ1MiwyOCBA QCBpbnQgaGFudHJvX2gyNjRfZGVjX3ByZXBhcmVfcnVuKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgp Cj4gPiAJLyogVXBkYXRlIHRoZSBEUEIgd2l0aCBuZXcgcmVmcy4gKi8KPiA+IAl1cGRhdGVfZHBi KGN0eCk7Cj4gPiAKPiA+IC0JLyogUHJlcGFyZSBkYXRhIGluIG1lbW9yeS4gKi8KPiA+IC0JcHJl cGFyZV90YWJsZShjdHgpOwo+ID4gLQo+ID4gCS8qIEJ1aWxkIHRoZSBQL0J7MCwxfSByZWYgbGlz dHMuICovCj4gPiAJdjRsMl9oMjY0X2luaXRfcmVmbGlzdF9idWlsZGVyKCZyZWZsaXN0X2J1aWxk ZXIsIGN0cmxzLT5kZWNvZGUsCj4gPiAJCQkJICAgICAgIGN0cmxzLT5zcHMsIGN0eC0+aDI2NF9k ZWMuZHBiKTsKPiA+ICsJaDI2NF9jdHgtPmN1cl9wb2MgPSByZWZsaXN0X2J1aWxkZXIuY3VyX3Bp Y19vcmRlcl9jb3VudDsKPiA+ICsKPiA+ICsJLyogUHJlcGFyZSBkYXRhIGluIG1lbW9yeS4gKi8K PiA+ICsJcHJlcGFyZV90YWJsZShjdHgpOwo+ID4gKwo+ID4gCXY0bDJfaDI2NF9idWlsZF9wX3Jl Zl9saXN0KCZyZWZsaXN0X2J1aWxkZXIsIGgyNjRfY3R4LT5yZWZsaXN0cy5wKTsKPiA+IAl2NGwy X2gyNjRfYnVpbGRfYl9yZWZfbGlzdHMoJnJlZmxpc3RfYnVpbGRlciwgaDI2NF9jdHgtPnJlZmxp c3RzLmIwLAo+ID4gCQkJCSAgICBoMjY0X2N0eC0+cmVmbGlzdHMuYjEpOwo+ID4gKwo+ID4gKwkv KiBSZWR1Y2UgcmVmIGxpc3RzIHRvIGF0IG1vc3QgMTYgZW50cmllcywgSGFudHJvIGhhcmR3YXJl IHdpbGwgZGVkdWNlCj4gPiArCSAqIHRoZSBhY3R1YWwgcGljdHVyZSBsaXN0cyBpbiBmaWVsZCB0 aHJvdWdoIHRoZSBkcGJfdmFsaWQsCj4gCj4gcy9pbiBmaWVsZC9pbiBhIGZpZWxkLwo+IAo+ID4g KwkgKiBkcGJfbG9uZ3Rlcm0gYml0bWFwIGFsb25nIHdpdGggdGhlIGN1cnJlbnQgZnJhbWUgcGFy aXR5Lgo+IAo+IHMvYml0bWFwL2JpdG1hcHMvCj4gCj4gR3JlZXRpbmdzLAo+IFNlYmFzdGlhbgo+ IAo+ID4gKwkgKi8KPiA+ICsJaWYgKHJlZmxpc3RfYnVpbGRlci5jdXJfcGljX2ZpZWxkcyAhPSBW NEwyX0gyNjRfRlJBTUVfUkVGKSB7Cj4gPiArCQlkZWR1cGxpY2F0ZV9yZWZsaXN0KCZyZWZsaXN0 X2J1aWxkZXIsIGgyNjRfY3R4LT5yZWZsaXN0cy5wKTsKPiA+ICsJCWRlZHVwbGljYXRlX3JlZmxp c3QoJnJlZmxpc3RfYnVpbGRlciwgaDI2NF9jdHgtPnJlZmxpc3RzLmIwKTsKPiA+ICsJCWRlZHVw bGljYXRlX3JlZmxpc3QoJnJlZmxpc3RfYnVpbGRlciwgaDI2NF9jdHgtPnJlZmxpc3RzLmIxKTsK PiA+ICsJfQo+ID4gKwo+ID4gCXJldHVybiAwOwo+ID4gfQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaCBiL2RyaXZlcnMvc3RhZ2lu Zy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPiA+IGluZGV4IDI5MmFhYWFiYWYyNC4uZmQ4Njkz NjlmYjk3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50 cm9faHcuaAo+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcu aAo+ID4gQEAgLTkxLDYgKzkxLDcgQEAgc3RydWN0IGhhbnRyb19oMjY0X2RlY19od19jdHggewo+ ID4gCXN0cnVjdCBoYW50cm9faDI2NF9kZWNfY3RybHMgY3RybHM7Cj4gPiAJdTMyIGRwYl9sb25n dGVybTsKPiA+IAl1MzIgZHBiX3ZhbGlkOwo+ID4gKwlzMzIgY3VyX3BvYzsKPiA+IH07Cj4gPiAK PiA+IC8qKgo+ID4gLS0gCj4gPiAyLjM0LjEKPiA+IAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51 eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK