From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anusha Srivatsa Subject: [PATCH 3/8] drm/i915/huc: Add HuC fw loading support Date: Fri, 13 Jan 2017 10:08:38 -0800 Message-ID: <1484330923-22031-4-git-send-email-anusha.srivatsa@intel.com> References: <1484330923-22031-1-git-send-email-anusha.srivatsa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 23C7E6EE53 for ; Fri, 13 Jan 2017 18:12:00 +0000 (UTC) In-Reply-To: <1484330923-22031-1-git-send-email-anusha.srivatsa@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Alex Dai , Peter Antoine List-Id: intel-gfx@lists.freedesktop.org VGhlIEh1QyBsb2FkaW5nIHByb2Nlc3MgaXMgc2ltaWxhciB0byBHdUMuIFRoZSBpbnRlbF91Y19m d19mZXRjaCgpCmlzIHVzZWQgZm9yIGJvdGggY2FzZXMuCgpIdUMgbG9hZGluZyBuZWVkcyB0byBi ZSBiZWZvcmUgR3VDIGxvYWRpbmcuIFRoZSBXT1BDTSBzZXR0aW5nIG11c3QKYmUgZG9uZSBlYXJs eSBiZWZvcmUgbG9hZGluZyBhbnkgb2YgdGhlbS4KCnYyOiByZWJhc2VkIG9uLXRvcCBvZiBkcm0t aW50ZWwtbmlnaHRseS4KICAgIHJlbW92ZWQgaWYoSEFTX0dVQygpKSBiZWZvcmUgdGhlIGd1YyBj YWxsLiAoRC5Hb3Jkb24pCiAgICB1cGRhdGUgaHVjX3ZlcnNpb24gbnVtYmVyIG9mIGZvcm1hdC4K djM6IHJlYmFzZWQgdG8gZHJtLWludGVsLW5pZ2h0bHksIGNoYW5nZWQgdGhlIGZpbGUgbmFtZSBm b3JtYXQgdG8KICAgIG1hdGNoIHRoZSBvbmUgaW4gdGhlIGh1YyBwYWNrYWdlLgogICAgQ2hhbmdl ZCBkZXYtPmRldl9wcml2YXRlIHRvIHRvX2k5MTUoKQp2NDogbW92ZWQgZnVuY3Rpb24gYmFjayB0 byB3aGVyZSBpdCB3YXMuCiAgICBjaGFuZ2Ugd2FpdF9mb3JfYXRvbWljIHRvIHdhaXRfZm9yLgp2 NTogcmViYXNlZC4gQ2hhbmdlZCB0aGUgeWVhciBpbiB0aGUgY29weXJpZ2h0IG1lc3NhZ2UgdG8g cmVmbGVjdAp0aGUgcmlnaHQgeWVhci5Db3JyZWN0IHRoZSBjb21tZW50cyxyZW1vdmUgdGhlIHVu d2FudGVkIFdBUk4gbWVzc2FnZSwKcmVwbGFjZSBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgp IHdpdGggaTkxNV9nZW1fb2JqZWN0X3B1dCgpLk1ha2UgdGhlCnByb3RvdHlwZXMgaW4gaW50ZWxf aHVjLmggbm9uLWV4dGVybi4KdjY6IHJlYmFzZWQuIFVwZGF0ZSB0aGUgZmlsZSBjb25zdHJ1Y3Rp b24gZG9uZSBieSBIdUMuIEl0IGlzIHNpbWlsYXIgdG8KR3VDLkFkb3B0ZWQgdGhlIGFwcHJvYWNo IHVzZWQgaW4tCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8xMDQzNTUv IDxUdnJ0a28gVXJzdWxpbj4Kdjc6IENoYW5nZSBkZXYgdG8gZGV2X3ByaXYgaW4gbWFjcm8gZGVm aW5pdGlvbi4KQ29ycmVjdGVkIGNvbW1lbnRzLgp2ODogcmViYXNlZCBvbiB0b3Agb2YgZHJtLXRp cC4gVXBkYXRlZCBmdW5jdGlvbnMgaW50ZWxfaHVjX2xvYWQoKSxpbnRlbF9odWNfaW5pdCgpIGFu ZAppbnRlbF91Y19md19mZXRjaCgpIHRvIGFjY2VwdCBkZXZfcHJpdiBpbnN0ZWFkIG9mIGRldi4g TW92ZWQgY29udGVudHMKb2YgaW50ZWxfaHVjLmggdG8gaW50ZWxfdWMuaAp2OTogY2hhbmdlIFNL TF9GV18gdG8gU0tMX0hVQ19GV18uIEFkZCBpbnRlbF8gcHJlZml4IHRvIGd1Y193b3BjbV9zaXpl KCkuClJlbW92ZSB1bndhbnRlZCBjaGVja3MgaW4gaW50ZWxfdWMuaC4gUmVuYW1lIGh1Y19mdyBp biBzdHJ1Y3QgaW50ZWxfaHVjIHRvCnNpbXBseSBmdyB0byBhdm9pZCByZWR1bmRlbmN5Lgp2MTA6 IHJlYmFzZWQuIENvcnJlY3QgY29tbWVudHMuIE1ha2UgaW50ZWxfaHVjX2ZpbmkoKSBhY2NlcHQg ZGV2X3ByaXYgaW5zdGVhZCBvZiBkZXYKbGlrZSBpbnRlbF9odWNfaW5pdCgpIGFuZCBpbnRlbF9o dWNfbG9hZCgpLk1vdmUgZGVmaW5pdGlvbiB0byBpOTE1X2d1Y19yZWcuaCBmcm9tCmludGVsX3Vj LmguIENsZWFuIERNQV9DVFJMIGJpdHMgYWZ0ZXIgSHVDIERNQSB0cmFuc2ZlciBpbiBodWNfdWNv ZGVfeGZlcigpCmluc3RlYWQgb2YgZ3VjX3Vjb2RlX3hmZXIoKS4gQWRkIHN1aXRhYmxlIFdBUk5z IHRvIGdpdmUgZXh0cmEgaW5mby4KdjExOiByZWJhc2VkLiBBZGQgcHJvcGVyIGJpYXMgZm9yIEh1 QyBhbmQgbWFrZSBzdXJlIHRoZXJlIGFyZQphc3NlcnRzIG9uIGZhaWx1cmUgYnkgdXNpbmcgZ3Vj X2dndHRfb2Zmc2V0X3ZtYSgpLiBJbnRyb2R1Y2UKaW50ZWxfaHVjLmMgYW5kIHJlbW92ZSBpbnRl bF9odWNfbG9hZGVyLmMgc2luY2UgaXQgaGFzIGZ1bmN0aW9ucyB0aGF0CmRvIG1vcmUgdGhhbiBq dXN0IGxvYWRpbmcuQ29ycmVjdCB5ZWFyIGluIGNvcHlyaWdodC4KdjEyOiByZW1vdmUgaW52YWxp ZGF0ZXMgdGhhdCBhcmUgbm90IHJlcXVpcmVkIGFueW1vcmUuCgpDYzogQXJrYWRpdXN6IEhpbGVy IDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgpDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFs LndhamRlY3prb0BpbnRlbC5jb20+ClRlc3RlZC1ieTogWGlhbmcgSGFpaGFvIDxoYWloYW8ueGlh bmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2 YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4K UmV2aWV3ZWQtYnk6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3JlZy5oICAgICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfbG9hZGVyLmMgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5j ICAgICAgICB8IDI2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdWMuaCAgICAgICAgIHwgIDE0ICsrCiA3IGZpbGVzIGNoYW5nZWQs IDI5MiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA1 MTk2NTA5Li4xZWEwNTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNTcsNiArNTcsNyBAQCBp OTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8gXAogIyBnZW5lcmFsLXB1cnBvc2UgbWljcm9jb250 cm9sbGVyIChHdUMpIHN1cHBvcnQKIGk5MTUteSArPSBpbnRlbF91Yy5vIFwKIAkgIGludGVsX2d1 Y19sb2FkZXIubyBcCisJICBpbnRlbF9odWMubyBcCiAJICBpOTE1X2d1Y19zdWJtaXNzaW9uLm8K IAogIyBhdXRvZ2VuZXJhdGVkIG51bGwgcmVuZGVyIHN0YXRlCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YwppbmRleCA0ZTVlYTU4Li5kN2EwYjQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTU5 OSw2ICs1OTksNyBAQCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAlpZiAocmV0KQogCQlnb3RvIGNsZWFudXBfaXJxOwogCisJaW50ZWxf aHVjX2luaXQoZGV2X3ByaXYpOwogCWludGVsX2d1Y19pbml0KGRldl9wcml2KTsKIAogCXJldCA9 IGk5MTVfZ2VtX2luaXQoZGV2X3ByaXYpOwpAQCAtNjI3LDYgKzYyOCw3IEBAIHN0YXRpYyBpbnQg aTkxNV9sb2FkX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWk5MTVfZ2Vt X2ZpbmkoZGV2X3ByaXYpOwogY2xlYW51cF9pcnE6CiAJaW50ZWxfZ3VjX2ZpbmkoZGV2X3ByaXYp OworCWludGVsX2h1Y19maW5pKGRldl9wcml2KTsKIAlkcm1faXJxX3VuaW5zdGFsbChkZXYpOwog CWludGVsX3RlYXJkb3duX2dtYnVzKGRldl9wcml2KTsKIGNsZWFudXBfY3NyOgpAQCAtMTMxNCw2 ICsxMzE2LDcgQEAgdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlkcmFpbl93b3JrcXVldWUoZGV2X3ByaXYtPndxKTsKIAogCWludGVsX2d1Y19maW5pKGRl dl9wcml2KTsKKwlpbnRlbF9odWNfZmluaShkZXZfcHJpdik7CiAJaTkxNV9nZW1fZmluaShkZXZf cHJpdik7CiAJaW50ZWxfZmJjX2NsZWFudXBfY2ZiKGRldl9wcml2KTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKaW5kZXggZjg2MTQxOC4uZWQ4NDVhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CkBAIC0yMDc0LDYgKzIwNzQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAlzdHJ1 Y3QgaW50ZWxfZ3Z0ICpndnQ7CiAKKwlzdHJ1Y3QgaW50ZWxfaHVjIGh1YzsKIAlzdHJ1Y3QgaW50 ZWxfZ3VjIGd1YzsKIAogCXN0cnVjdCBpbnRlbF9jc3IgY3NyOwpAQCAtMjg0OCw2ICsyODQ5LDcg QEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAj ZGVmaW5lIEhBU19HVUMoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmhhc19ndWMpCiAjZGVm aW5lIEhBU19HVUNfVUNPREUoZGV2X3ByaXYpCShIQVNfR1VDKGRldl9wcml2KSkKICNkZWZpbmUg SEFTX0dVQ19TQ0hFRChkZXZfcHJpdikJKEhBU19HVUMoZGV2X3ByaXYpKQorI2RlZmluZSBIQVNf SFVDX1VDT0RFKGRldl9wcml2KQkoSEFTX0dVQyhkZXZfcHJpdikpCiAKICNkZWZpbmUgSEFTX1JF U09VUkNFX1NUUkVBTUVSKGRldl9wcml2KSAoKGRldl9wcml2KS0+aW5mby5oYXNfcmVzb3VyY2Vf c3RyZWFtZXIpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3Jl Zy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgKaW5kZXggNmEwYWRhZi4u MzVjZjk5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgKQEAgLTYxLDEyICs2MSwx OCBAQAogI2RlZmluZSAgIERNQV9BRERSRVNTX1NQQUNFX0dUVAkJICAoOCA8PCAxNikKICNkZWZp bmUgRE1BX0NPUFlfU0laRQkJCV9NTUlPKDB4YzMxMCkKICNkZWZpbmUgRE1BX0NUUkwJCQlfTU1J TygweGMzMTQpCisjZGVmaW5lICAgSFVDX1VLRVJORUwJCQkgICgxPDw5KQogI2RlZmluZSAgIFVP U19NT1ZFCQkJICAoMTw8NCkKICNkZWZpbmUgICBTVEFSVF9ETUEJCQkgICgxPDwwKQogI2RlZmlu ZSBETUFfR1VDX1dPUENNX09GRlNFVAkJX01NSU8oMHhjMzQwKQorI2RlZmluZSAgIEhVQ19MT0FE SU5HX0FHRU5UX1ZDUgkJICAoMDw8MSkKKyNkZWZpbmUgICBIVUNfTE9BRElOR19BR0VOVF9HVUMJ CSAgKDE8PDEpCiAjZGVmaW5lICAgR1VDX1dPUENNX09GRlNFVF9WQUxVRQkgIDB4ODAwMDAJLyog NTEyS0IgKi8KICNkZWZpbmUgR1VDX01BWF9JRExFX0NPVU5UCQlfTU1JTygweEMzRTQpCiAKKyNk ZWZpbmUgSFVDX1NUQVRVUzIgICAgICAgICAgICAgX01NSU8oMHhEM0IwKQorI2RlZmluZSAgIEhV Q19GV19WRVJJRklFRCAgICAgICAoMTw8NykKKwogLyogRGVmaW5lcyBXT1BDTSBzcGFjZSBhdmFp bGFibGUgdG8gR3VDIGZpcm13YXJlICovCiAjZGVmaW5lIEdVQ19XT1BDTV9TSVpFCQkJX01NSU8o MHhjMDUwKQogLyogR3VDIGFkZHJlc3NlcyBiZWxvdyBHVUNfV09QQ01fVE9QIGRvbid0IG1hcCB0 aHJvdWdoIHRoZSBHVFQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwpp bmRleCAzMDgwMWVlLi41Mjc1NThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xv YWRlci5jCkBAIC0zMzQsNyArMzM0LDcgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcl9kbWEo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldHVybiByZXQ7CiB9CiAKLXN0 YXRpYyB1MzIgZ3VjX3dvcGNtX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQordTMyIGludGVsX2d1Y193b3BjbV9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKIAl1MzIgd29wY21fc2l6ZSA9IEdVQ19XT1BDTV9UT1A7CiAKQEAgLTM3MCw3ICsz NzAsNyBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChkZXZfcHJpdiwgRk9SQ0VX QUtFX0FMTCk7CiAKIAkvKiBpbml0IFdPUENNICovCi0JSTkxNV9XUklURShHVUNfV09QQ01fU0la RSwgZ3VjX3dvcGNtX3NpemUoZGV2X3ByaXYpKTsKKwlJOTE1X1dSSVRFKEdVQ19XT1BDTV9TSVpF LCBpbnRlbF9ndWNfd29wY21fc2l6ZShkZXZfcHJpdikpOwogCUk5MTVfV1JJVEUoRE1BX0dVQ19X T1BDTV9PRkZTRVQsIEdVQ19XT1BDTV9PRkZTRVRfVkFMVUUpOwogCiAJLyogRW5hYmxlIE1JQSBj YWNoaW5nLiBHdUMgY2xvY2sgZ2F0aW5nIGlzIGRpc2FibGVkLiAqLwpAQCAtNTEyLDYgKzUxMiw3 IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCQlpZiAoZXJyKQogCQkJZ290byBmYWlsOwogCisJCWludGVsX2h1Y19sb2FkKGRldl9wcml2 KTsKIAkJZXJyID0gZ3VjX3Vjb2RlX3hmZXIoZGV2X3ByaXYpOwogCQlpZiAoIWVycikKIAkJCWJy ZWFrOwpAQCAtNjYwLDcgKzY2MSw3IEBAIHZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlzaXplID0gdWNfZnctPmhlYWRlcl9zaXplICsg dWNfZnctPnVjb2RlX3NpemU7CiAKIAkJLyogVG9wIDMyayBvZiBXT1BDTSBpcyByZXNlcnZlZCAo OEsgc3RhY2sgKyAyNGsgUkM2IGNvbnRleHQpLiAqLwotCQlpZiAoc2l6ZSA+IGd1Y193b3BjbV9z aXplKGRldl9wcml2KSkgeworCQlpZiAoc2l6ZSA+IGludGVsX2d1Y193b3BjbV9zaXplKGRldl9w cml2KSkgewogCQkJRFJNX0VSUk9SKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIFdP UENNXG4iKTsKIAkJCWdvdG8gZmFpbDsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaHVjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzQ3MWYyCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKQEAgLTAsMCArMSwyNjIgQEAKKy8q CisgKiBDb3B5cmlnaHQgwqkgMjAxNi0yMDE3IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAo aW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2luY2x1ZGUgPGxp bnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF91 Yy5oIgorCisvKioKKyAqIERPQzogSHVDIEZpcm13YXJlCisgKgorICogTW90aXZhdGlvbjoKKyAq IEdFTjkgaW50cm9kdWNlcyBhIG5ldyBkZWRpY2F0ZWQgZmlybXdhcmUgZm9yIHVzYWdlIGluIG1l ZGlhIEhFVkMgKEhpZ2gKKyAqIEVmZmljaWVuY3kgVmlkZW8gQ29kaW5nKSBvcGVyYXRpb25zLiBV c2Vyc3BhY2UgY2FuIHVzZSB0aGUgZmlybXdhcmUKKyAqIGNhcGFiaWxpdGllcyBieSBhZGRpbmcg SHVDIHNwZWNpZmljIGNvbW1hbmRzIHRvIGJhdGNoIGJ1ZmZlcnMuCisgKgorICogSW1wbGVtZW50 YXRpb246CisgKiBUaGUgc2FtZSBmaXJtd2FyZSBsb2FkZXIgaXMgdXNlZCBhcyB0aGUgR3VDLiBI b3dldmVyLCB0aGUgYWN0dWFsCisgKiBsb2FkaW5nIHRvIEhXIGlzIGRlZmVycmVkIHVudGlsIEdF TSBpbml0aWFsaXphdGlvbiBpcyBkb25lLgorICoKKyAqIE5vdGUgdGhhdCBIdUMgZmlybXdhcmUg bG9hZGluZyBtdXN0IGJlIGRvbmUgYmVmb3JlIEd1QyBsb2FkaW5nLgorICovCisKKyNkZWZpbmUg U0tMX0hVQ19GV19NQUpPUiAwMQorI2RlZmluZSBTS0xfSFVDX0ZXX01JTk9SIDA3CisjZGVmaW5l IFNLTF9CTERfTlVNIDEzOTgKKworI2RlZmluZSBIVUNfRldfUEFUSChwbGF0Zm9ybSwgbWFqb3Is IG1pbm9yLCBibGRfbnVtKSBcCisJImk5MTUvIiBfX3N0cmluZ2lmeShwbGF0Zm9ybSkgIl9odWNf dmVyIiBfX3N0cmluZ2lmeShtYWpvcikgIl8iIFwKKwlfX3N0cmluZ2lmeShtaW5vcikgIl8iIF9f c3RyaW5naWZ5KGJsZF9udW0pICIuYmluIgorCisjZGVmaW5lIEk5MTVfU0tMX0hVQ19VQ09ERSBI VUNfRldfUEFUSChza2wsIFNLTF9IVUNfRldfTUFKT1IsIFwKKwlTS0xfSFVDX0ZXX01JTk9SLCBT S0xfQkxEX05VTSkKK01PRFVMRV9GSVJNV0FSRShJOTE1X1NLTF9IVUNfVUNPREUpOworCisvKioK KyAqIGh1Y191Y29kZV94ZmVyKCkgLSBETUEncyB0aGUgZmlybXdhcmUKKyAqIEBkZXZfcHJpdjog dGhlIGRybV9pOTE1X3ByaXZhdGUgZGV2aWNlCisgKgorICogVHJhbnNmZXIgdGhlIGZpcm13YXJl IGltYWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCisgKgor ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIG9uIGZhaWx1cmUKKyAqLworc3RhdGlj IGludCBodWNfdWNvZGVfeGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7 CisJc3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncgPSAmZGV2X3ByaXYtPmh1Yy5mdzsKKwlzdHJ1 Y3QgaTkxNV92bWEgKnZtYTsKKwl1bnNpZ25lZCBsb25nIG9mZnNldCA9IDA7CisJdTMyIHNpemU7 CisJaW50IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbiho dWNfZnctPm9iaiwgZmFsc2UpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigic2V0 LWRvbWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJdm1hID0g aTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKGh1Y19mdy0+b2JqLCBOVUxMLCAwLCAwLAorCQkJCVBJ Tl9PRkZTRVRfQklBUyB8IEdVQ19XT1BDTV9UT1ApOworCWlmIChJU19FUlIodm1hKSkgeworCQlE Uk1fREVCVUdfRFJJVkVSKCJwaW4gZmFpbGVkICVkXG4iLCAoaW50KVBUUl9FUlIodm1hKSk7CisJ CXJldHVybiBQVFJfRVJSKHZtYSk7CisJfQorCisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQo ZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOworCisJLyogaW5pdCBXT1BDTSAqLworCUk5MTVfV1JJ VEUoR1VDX1dPUENNX1NJWkUsIGludGVsX2d1Y193b3BjbV9zaXplKGRldl9wcml2KSk7CisJSTkx NV9XUklURShETUFfR1VDX1dPUENNX09GRlNFVCwgR1VDX1dPUENNX09GRlNFVF9WQUxVRSB8CisJ CQlIVUNfTE9BRElOR19BR0VOVF9HVUMpOworCisJLyogU2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBm b3IgdGhlIHVDb2RlICovCisJb2Zmc2V0ID0gZ3VjX2dndHRfb2Zmc2V0KHZtYSkgKyBodWNfZnct PmhlYWRlcl9vZmZzZXQ7CisJSTkxNV9XUklURShETUFfQUREUl8wX0xPVywgbG93ZXJfMzJfYml0 cyhvZmZzZXQpKTsKKwlJOTE1X1dSSVRFKERNQV9BRERSXzBfSElHSCwgdXBwZXJfMzJfYml0cyhv ZmZzZXQpICYgMHhGRkZGKTsKKworCS8qIEhhcmR3YXJlIGRvZXNuJ3QgbG9vayBhdCBkZXN0aW5h dGlvbiBhZGRyZXNzIGZvciBIdUMuIFNldCBpdCB0byAwLAorCSAqIGJ1dCBzdGlsbCBwcm9ncmFt IHRoZSBjb3JyZWN0IGFkZHJlc3Mgc3BhY2UuCisJICovCisJSTkxNV9XUklURShETUFfQUREUl8x X0xPVywgMCk7CisJSTkxNV9XUklURShETUFfQUREUl8xX0hJR0gsIERNQV9BRERSRVNTX1NQQUNF X1dPUENNKTsKKworCXNpemUgPSBodWNfZnctPmhlYWRlcl9zaXplICsgaHVjX2Z3LT51Y29kZV9z aXplOworCUk5MTVfV1JJVEUoRE1BX0NPUFlfU0laRSwgc2l6ZSk7CisKKwkvKiBTdGFydCB0aGUg RE1BICovCisJSTkxNV9XUklURShETUFfQ1RSTCwgX01BU0tFRF9CSVRfRU5BQkxFKEhVQ19VS0VS TkVMIHwgU1RBUlRfRE1BKSk7CisKKwkvKiBXYWl0IGZvciBETUEgdG8gZmluaXNoICovCisJcmV0 ID0gd2FpdF9mb3IoKEk5MTVfUkVBRChETUFfQ1RSTCkgJiBTVEFSVF9ETUEpID09IDAsIDEwMCk7 CisKKwlEUk1fREVCVUdfRFJJVkVSKCJIdUMgRE1BIHRyYW5zZmVyIHdhaXQgb3ZlciB3aXRoIHJl dCAlZFxuIiwgcmV0KTsKKworCS8qIERpc2FibGUgdGhlIGJpdHMgb25jZSBETUEgaXMgb3ZlciAq LworCUk5MTVfV1JJVEUoRE1BX0NUUkwsIF9NQVNLRURfQklUX0RJU0FCTEUoSFVDX1VLRVJORUwp KTsKKworCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxM KTsKKworCS8qCisJICogV2Uga2VlcCB0aGUgb2JqZWN0IHBhZ2VzIGZvciByZXVzZSBkdXJpbmcg cmVzdW1lLiBCdXQgd2UgY2FuIHVucGluIGl0CisJICogbm93IHRoYXQgRE1BIGhhcyBjb21wbGV0 ZWQsIHNvIGl0IGRvZXNuJ3QgY29udGludWUgdG8gdGFrZSB1cCBzcGFjZS4KKwkgKi8KKwlpOTE1 X3ZtYV91bnBpbih2bWEpOworCisJcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBpbnRlbF9odWNf aW5pdCgpIC0gaW5pdGlhdGUgSHVDIGZpcm13YXJlIGxvYWRpbmcgcmVxdWVzdAorICogQGRldl9w cml2OiB0aGUgZHJtX2k5MTVfcHJpdmF0ZSBkZXZpY2UKKyAqCisgKiBDYWxsZWQgZWFybHkgZHVy aW5nIGRyaXZlciBsb2FkLCBidXQgYWZ0ZXIgR0VNIGlzIGluaXRpYWxpc2VkLiBUaGUgbG9hZGlu ZworICogd2lsbCBjb250aW51ZSBvbmx5IHdoZW4gZHJpdmVyIGV4cGxpY2l0bHkgc3BlY2lmeSBm aXJtd2FyZSBuYW1lIGFuZCB2ZXJzaW9uLgorICogQWxsIG90aGVyIGNhc2VzIGFyZSBjb25zaWRl cmVkIGFzIElOVEVMX1VDX0ZJUk1XQVJFX05PTkUgZWl0aGVyIGJlY2F1c2UgSFcKKyAqIGlzIG5v dCBjYXBhYmxlIG9yIGRyaXZlciB5ZXQgc3VwcG9ydCBpdC4gQW5kIHRoZXJlIHdpbGwgYmUgbm8g ZXJyb3IgbWVzc2FnZQorICogZm9yIElOVEVMX1VDX0ZJUk1XQVJFX05PTkUgY2FzZXMuCisgKgor ICogVGhlIERNQS1jb3B5aW5nIHRvIEhXIGlzIGRvbmUgbGF0ZXIgd2hlbiBpbnRlbF9odWNfbG9h ZCgpIGlzIGNhbGxlZC4KKyAqLwordm9pZCBpbnRlbF9odWNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGludGVsX2h1YyAqaHVjID0gJmRldl9wcml2 LT5odWM7CisJc3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncgPSAmaHVjLT5mdzsKKwljb25zdCBj aGFyICpmd19wYXRoID0gTlVMTDsKKworCWh1Y19mdy0+cGF0aCA9IE5VTEw7CisJaHVjX2Z3LT5m ZXRjaF9zdGF0dXMgPSBJTlRFTF9VQ19GSVJNV0FSRV9OT05FOworCWh1Y19mdy0+bG9hZF9zdGF0 dXMgPSBJTlRFTF9VQ19GSVJNV0FSRV9OT05FOworCWh1Y19mdy0+ZncgPSBJTlRFTF9VQ19GV19U WVBFX0hVQzsKKworCWlmICghSEFTX0hVQ19VQ09ERShkZXZfcHJpdikpCisJCXJldHVybjsKKwor CWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkgeworCQlmd19wYXRoID0gSTkxNV9TS0xfSFVDX1VD T0RFOworCQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBTS0xfSFVDX0ZXX01BSk9SOworCQlo dWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBTS0xfSFVDX0ZXX01JTk9SOworCX0KKworCWh1Y19m dy0+cGF0aCA9IGZ3X3BhdGg7CisJaHVjX2Z3LT5mZXRjaF9zdGF0dXMgPSBJTlRFTF9VQ19GSVJN V0FSRV9QRU5ESU5HOworCisJRFJNX0RFQlVHX0RSSVZFUigiSHVDIGZpcm13YXJlIHBlbmRpbmcs IHBhdGggJXNcbiIsIGZ3X3BhdGgpOworCisJV0FSTihodWNfZnctPnBhdGggPT0gTlVMTCwgIkh1 QyBwcmVzZW50IGJ1dCBubyBmdyBwYXRoXG4iKTsKKworCWludGVsX3VjX2Z3X2ZldGNoKGRldl9w cml2LCBodWNfZncpOworfQorCisvKioKKyAqIGludGVsX2h1Y19sb2FkKCkgLSBsb2FkIEh1QyB1 Q29kZSB0byBkZXZpY2UKKyAqIEBkZXZfcHJpdjogdGhlIGRybV9pOTE1X3ByaXZhdGUgZGV2aWNl CisgKgorICogQ2FsbGVkIGZyb20gZ3VjX3NldHVwKCkgZHVyaW5nIGRyaXZlciBsb2FkaW5nIGFu ZCBhbHNvIGFmdGVyIGEgR1BVIHJlc2V0LgorICogQmUgbm90ZSB0aGF0IEh1QyBsb2FkaW5nIG11 c3QgYmUgZG9uZSBiZWZvcmUgR3VDIGxvYWRpbmcuCisgKgorICogVGhlIGZpcm13YXJlIGltYWdl IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBmZXRjaGVkIGludG8gbWVtb3J5IGJ5IHRoZQorICog ZWFybGllciBjYWxsIHRvIGludGVsX2h1Y19pbml0KCksIHNvIGhlcmUgd2UgbmVlZCBvbmx5IGNo ZWNrIHRoYXQKKyAqIGlzIHN1Y2NlZWRlZCwgYW5kIHRoZW4gdHJhbnNmZXIgdGhlIGltYWdlIHRv IHRoZSBoL3cuCisgKgorICogUmV0dXJuOglub24temVybyBjb2RlIG9uIGVycm9yCisgKi8KK2lu dCBpbnRlbF9odWNfbG9hZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJ c3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncgPSAmZGV2X3ByaXYtPmh1Yy5mdzsKKwlpbnQgZXJy OworCisJaWYgKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzID09IElOVEVMX1VDX0ZJUk1XQVJFX05PTkUp CisJCXJldHVybiAwOworCisJRFJNX0RFQlVHX0RSSVZFUigiJXMgZncgc3RhdHVzOiBmZXRjaCAl cywgbG9hZCAlc1xuIiwKKwkJaHVjX2Z3LT5wYXRoLAorCQlpbnRlbF91Y19md19zdGF0dXNfcmVw cihodWNfZnctPmZldGNoX3N0YXR1cyksCisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Y19m dy0+bG9hZF9zdGF0dXMpKTsKKworCWlmIChodWNfZnctPmZldGNoX3N0YXR1cyA9PSBJTlRFTF9V Q19GSVJNV0FSRV9TVUNDRVNTICYmCisJICAgIGh1Y19mdy0+bG9hZF9zdGF0dXMgPT0gSU5URUxf VUNfRklSTVdBUkVfRkFJTCkKKwkJcmV0dXJuIC1FTk9FWEVDOworCisJaHVjX2Z3LT5sb2FkX3N0 YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX1BFTkRJTkc7CisKKwlzd2l0Y2ggKGh1Y19mdy0+ZmV0 Y2hfc3RhdHVzKSB7CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMOgorCQkvKiBzb21ldGhp bmcgd2VudCB3cm9uZyA6KCAqLworCQllcnIgPSAtRUlPOworCQlnb3RvIGZhaWw7CisKKwljYXNl IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU6CisJY2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9QRU5ESU5H OgorCWRlZmF1bHQ6CisJCS8qICJjYW4ndCBoYXBwZW4iICovCisJCVdBUk5fT05DRSgxLCAiSHVD IGZ3ICVzIGludmFsaWQgZmV0Y2hfc3RhdHVzICVzIFslZF1cbiIsCisJCQlodWNfZnctPnBhdGgs CisJCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihodWNfZnctPmZldGNoX3N0YXR1cyksCisJCQlo dWNfZnctPmZldGNoX3N0YXR1cyk7CisJCWVyciA9IC1FTlhJTzsKKwkJZ290byBmYWlsOworCisJ Y2FzZSBJTlRFTF9VQ19GSVJNV0FSRV9TVUNDRVNTOgorCQlicmVhazsKKwl9CisKKwllcnIgPSBo dWNfdWNvZGVfeGZlcihkZXZfcHJpdik7CisJaWYgKGVycikKKwkJZ290byBmYWlsOworCisJaHVj X2Z3LT5sb2FkX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1M7CisKKwlEUk1fREVC VUdfRFJJVkVSKCIlcyBmdyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAorCQlodWNfZnct PnBhdGgsCisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwK KwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoaHVjX2Z3LT5sb2FkX3N0YXR1cykpOworCisJcmV0 dXJuIDA7CisKK2ZhaWw6CisJaWYgKGh1Y19mdy0+bG9hZF9zdGF0dXMgPT0gSU5URUxfVUNfRklS TVdBUkVfUEVORElORykKKwkJaHVjX2Z3LT5sb2FkX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJF X0ZBSUw7CisKKwlEUk1fRVJST1IoIkZhaWxlZCB0byBjb21wbGV0ZSBIdUMgdUNvZGUgbG9hZCB3 aXRoIHJldCAlZFxuIiwgZXJyKTsKKworCXJldHVybiBlcnI7Cit9CisKKy8qKgorICogaW50ZWxf aHVjX2ZpbmkoKSAtIGNsZWFuIHVwIHJlc291cmNlcyBhbGxvY2F0ZWQgZm9yIEh1QworICogQGRl dl9wcml2OiB0aGUgZHJtX2k5MTVfcHJpdmF0ZSBkZXZpY2UKKyAqCisgKiBDbGVhbnMgdXAgYnkg cmVsZWFzaW5nIHRoZSBodWMgZmlybXdhcmUgR0VNIG9iai4KKyAqLwordm9pZCBpbnRlbF9odWNf ZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGludGVs X3VjX2Z3ICpodWNfZncgPSAmZGV2X3ByaXYtPmh1Yy5mdzsKKworCW11dGV4X2xvY2soJmRldl9w cml2LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZiAoaHVjX2Z3LT5vYmopCisJCWk5MTVfZ2VtX29i amVjdF9wdXQoaHVjX2Z3LT5vYmopOworCWh1Y19mdy0+b2JqID0gTlVMTDsKKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKworCWh1Y19mdy0+ZmV0Y2hfc3RhdHVz ID0gSU5URUxfVUNfRklSTVdBUkVfTk9ORTsKK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgKaW5k ZXggYzJjMzkxOS4uNjVjN2Q2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCkBAIC0xNzYsNiAr MTc2LDEzIEBAIHN0cnVjdCBpbnRlbF9ndWMgewogCXN0cnVjdCBtdXRleCBzZW5kX211dGV4Owog fTsKIAorc3RydWN0IGludGVsX2h1YyB7CisJLyogR2VuZXJpYyB1QyBmaXJtd2FyZSBtYW5hZ2Vt ZW50ICovCisJc3RydWN0IGludGVsX3VjX2Z3IGZ3OworCisJLyogSHVDLXNwZWNpZmljIGFkZGl0 aW9ucyAqLworfTsKKwogLyogaW50ZWxfdWMuYyAqLwogdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfZ3VjX3NlbmQo c3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbik7CkBAIC0x OTEsNiArMTk4LDggQEAgZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiBjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0 dXNfcmVwcihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogZXh0ZXJuIGludCBpbnRl bF9ndWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJu IGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cit2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKIHUzMiBpbnRlbF9ndWNfd29wY21fc2l6 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCiAvKiBpOTE1X2d1Y19zdWJt aXNzaW9uLmMgKi8KQEAgLTIxNCw0ICsyMjMsOSBAQCBzdGF0aWMgaW5saW5lIHUzMiBndWNfZ2d0 dF9vZmZzZXQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJcmV0dXJuIG9mZnNldDsKIH0KIAorLyog aW50ZWxfaHVjLmMgKi8KK3ZvaWQgaW50ZWxfaHVjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfaHVjX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgICpkZXZfcHJpdik7CitpbnQgaW50ZWxfaHVjX2xvYWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKKwogI2VuZGlmCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==