From mboxrd@z Thu Jan 1 00:00:00 1970 From: anushasr Subject: [PATCH 3/8] drm/i915/huc: Add HuC fw loading support Date: Thu, 15 Dec 2016 14:29:45 -0800 Message-ID: <1481840990-31191-4-git-send-email-anusha.srivatsa@intel.com> References: <1481840990-31191-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1759D6E107 for ; Thu, 15 Dec 2016 22:29:53 +0000 (UTC) In-Reply-To: <1481840990-31191-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 RnJvbTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgoKVGhlIEh1 QyBsb2FkaW5nIHByb2Nlc3MgaXMgc2ltaWxhciB0byBHdUMuIFRoZSBpbnRlbF91Y19md19mZXRj aCgpCmlzIHVzZWQgZm9yIGJvdGggY2FzZXMuCgpIdUMgbG9hZGluZyBuZWVkcyB0byBiZSBiZWZv cmUgR3VDIGxvYWRpbmcuIFRoZSBXT1BDTSBzZXR0aW5nIG11c3QKYmUgZG9uZSBlYXJseSBiZWZv cmUgbG9hZGluZyBhbnkgb2YgdGhlbS4KCnYyOiByZWJhc2VkIG9uLXRvcCBvZiBkcm0taW50ZWwt bmlnaHRseS4KICAgIHJlbW92ZWQgaWYoSEFTX0dVQygpKSBiZWZvcmUgdGhlIGd1YyBjYWxsLiAo RC5Hb3Jkb24pCiAgICB1cGRhdGUgaHVjX3ZlcnNpb24gbnVtYmVyIG9mIGZvcm1hdC4KdjM6IHJl YmFzZWQgdG8gZHJtLWludGVsLW5pZ2h0bHksIGNoYW5nZWQgdGhlIGZpbGUgbmFtZSBmb3JtYXQg dG8KICAgIG1hdGNoIHRoZSBvbmUgaW4gdGhlIGh1YyBwYWNrYWdlLgogICAgQ2hhbmdlZCBkZXYt PmRldl9wcml2YXRlIHRvIHRvX2k5MTUoKQp2NDogbW92ZWQgZnVuY3Rpb24gYmFjayB0byB3aGVy ZSBpdCB3YXMuCiAgICBjaGFuZ2Ugd2FpdF9mb3JfYXRvbWljIHRvIHdhaXRfZm9yLgp2NTogcmVi YXNlZCArIGNvbW1lbnQgY2hhbmdlcy4Kdjc6IHJlYmFzZWQuCnY4OiByZWJhc2VkLgp2OTogcmVi YXNlZC4gQ2hhbmdlZCB0aGUgeWVhciBpbiB0aGUgY29weXJpZ2h0IG1lc3NhZ2UgdG8gcmVmbGVj dAp0aGUgcmlnaHQgeWVhci5Db3JyZWN0IHRoZSBjb21tZW50cyxyZW1vdmUgdGhlIHVud2FudGVk IFdBUk4gbWVzc2FnZSwKcmVwbGFjZSBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgpIHdpdGgg aTkxNV9nZW1fb2JqZWN0X3B1dCgpLk1ha2UgdGhlCnByb3RvdHlwZXMgaW4gaW50ZWxfaHVjLmgg bm9uLWV4dGVybi4KdjEwOiByZWJhc2VkLiBVcGRhdGUgdGhlIGZpbGUgY29uc3RydWN0aW9uIGRv bmUgYnkgSHVDLiBJdCBpcyBzaW1pbGFyIHRvCkd1Qy5BZG9wdGVkIHRoZSBhcHByb2FjaCB1c2Vk IGluLQpodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMTA0MzU1LyA8VHZy dGtvIFVyc3VsaW4+CnYxMTogRml4IHdhcm5pbmdzIHJlbW92ZSBvbGQgZGVjbGFyYXRpb24KdjEy OiBDaGFuZ2UgZGV2IHRvIGRldl9wcml2IGluIG1hY3JvIGRlZmluaXRpb24uCkNvcnJlY3RlZCBj b21tZW50cy4KdjEzOiByZWJhc2VkLgp2MTQ6IHJlYmFzZWQgb24gdG9wIG9mIGRybS10aXAKdjE1 OiByZWJhc2VkLiBVcGRhdGVkIGZ1bmN0aW9ucyBpbnRlbF9odWNfbG9hZCgpLGludGVsX2h1Y19p bml0KCkgYW5kCmludGVsX3VjX2Z3X2ZldGNoKCkgdG8gYWNjZXB0IGRldl9wcml2IGluc3RlYWQg b2YgZGV2LiBNb3ZlZCBjb250ZW50cwpvZiBpbnRlbF9odWMuaCB0byBpbnRlbF91Yy5oCnYxNjog Y2hhbmdlIFNLTF9GV18gdG8gU0tMX0hVQ19GV18uIEFkZCBpbnRlbF8gcHJlZml4IHRvIGd1Y193 b3BjbV9zaXplKCkuClJlbW92ZSB1bndhbnRlZCBjaGVja3MgaW4gaW50ZWxfdWMuaC4gUmVuYW1l IGh1Y19mdyBpbiBzdHJ1Y3QgaW50ZWxfaHVjIHRvCnNpbXBseSBmdyB0byBhdm9pZCByZWR1bmRl bmN5LgoKQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClRlc3Rl ZC1ieTogWGlhbmcgSGFpaGFvIDxoYWloYW8ueGlhbmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRv aW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg ICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oICAgICB8ICAg MyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgfCAgMTEgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYyB8IDI2NCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCAgICAg ICAgIHwgIDE4ICsrKwogNyBmaWxlcyBjaGFuZ2VkLCAyOTcgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o dWNfbG9hZGVyLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDUxOTY1MDkuLjQ1YWUxMjQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlCkBAIC01Nyw2ICs1Nyw3IEBAIGk5MTUteSArPSBpOTE1X2NtZF9w YXJzZXIubyBcCiAjIGdlbmVyYWwtcHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1Qykgc3VwcG9y dAogaTkxNS15ICs9IGludGVsX3VjLm8gXAogCSAgaW50ZWxfZ3VjX2xvYWRlci5vIFwKKwkgIGlu dGVsX2h1Y19sb2FkZXIubyBcCiAJICBpOTE1X2d1Y19zdWJtaXNzaW9uLm8KIAogIyBhdXRvZ2Vu ZXJhdGVkIG51bGwgcmVuZGVyIHN0YXRlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA2NDI4 NTg4Li44NWE0N2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTYwMCw2ICs2MDAsNyBA QCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlpZiAocmV0KQogCQlnb3RvIGNsZWFudXBfaXJxOwogCisJaW50ZWxfaHVjX2luaXQoZGV2 X3ByaXYpOwogCWludGVsX2d1Y19pbml0KGRldl9wcml2KTsKIAogCXJldCA9IGk5MTVfZ2VtX2lu aXQoZGV2X3ByaXYpOwpAQCAtNjI3LDYgKzYyOCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX21v ZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlEUk1fRVJST1IoImZhaWxlZCB0 byBpZGxlIGhhcmR3YXJlOyBjb250aW51aW5nIHRvIHVubG9hZCFcbiIpOwogCWk5MTVfZ2VtX2Zp bmkoZGV2X3ByaXYpOwogY2xlYW51cF9pcnE6CisJaW50ZWxfaHVjX2ZpbmkoZGV2KTsKIAlpbnRl bF9ndWNfZmluaShkZXZfcHJpdik7CiAJZHJtX2lycV91bmluc3RhbGwoZGV2KTsKIAlpbnRlbF90 ZWFyZG93bl9nbWJ1cyhkZXZfcHJpdik7CkBAIC0xMzEzLDcgKzEzMTUsNyBAQCB2b2lkIGk5MTVf ZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJLyogRmx1c2ggYW55IG91 dHN0YW5kaW5nIHVucGluX3dvcmsuICovCiAJZHJhaW5fd29ya3F1ZXVlKGRldl9wcml2LT53cSk7 Ci0KKwlpbnRlbF9odWNfZmluaShkZXYpOwogCWludGVsX2d1Y19maW5pKGRldl9wcml2KTsKIAlp OTE1X2dlbV9maW5pKGRldl9wcml2KTsKIAlpbnRlbF9mYmNfY2xlYW51cF9jZmIoZGV2X3ByaXYp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNDE5OWQyNi4uYmQ1ZjIzNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0yMTM0LDYgKzIxMzQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSB7CiAKIAlzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQ7CiAKKwlzdHJ1Y3QgaW50ZWxfaHVjIGh1 YzsKIAlzdHJ1Y3QgaW50ZWxfZ3VjIGd1YzsKIAogCXN0cnVjdCBpbnRlbF9jc3IgY3NyOwpAQCAt MjkwOCw3ICsyOTA5LDcgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAjZGVmaW5lIEhBU19HVUMoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZv Lmhhc19ndWMpCiAjZGVmaW5lIEhBU19HVUNfVUNPREUoZGV2X3ByaXYpCShIQVNfR1VDKGRldl9w cml2KSkKICNkZWZpbmUgSEFTX0dVQ19TQ0hFRChkZXZfcHJpdikJKEhBU19HVUMoZGV2X3ByaXYp KQotCisjZGVmaW5lIEhBU19IVUNfVUNPREUoZGV2X3ByaXYpCShIQVNfR1VDKGRldl9wcml2KSkK ICNkZWZpbmUgSEFTX1JFU09VUkNFX1NUUkVBTUVSKGRldl9wcml2KSAoKGRldl9wcml2KS0+aW5m by5oYXNfcmVzb3VyY2Vfc3RyZWFtZXIpCiAKICNkZWZpbmUgSEFTX1BPT0xFRF9FVShkZXZfcHJp dikJKChkZXZfcHJpdiktPmluZm8uaGFzX3Bvb2xlZF9ldSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n dWNfcmVnLmgKaW5kZXggNWU2MzhmYy4uZjk4MjlmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n dWNfcmVnLmgKQEAgLTYxLDkgKzYxLDEyIEBACiAjZGVmaW5lICAgRE1BX0FERFJFU1NfU1BBQ0Vf R1RUCQkgICg4IDw8IDE2KQogI2RlZmluZSBETUFfQ09QWV9TSVpFCQkJX01NSU8oMHhjMzEwKQog I2RlZmluZSBETUFfQ1RSTAkJCV9NTUlPKDB4YzMxNCkKKyNkZWZpbmUgICBIVUNfVUtFUk5FTAkJ CSAgKDE8PDkpCiAjZGVmaW5lICAgVU9TX01PVkUJCQkgICgxPDw0KQogI2RlZmluZSAgIFNUQVJU X0RNQQkJCSAgKDE8PDApCiAjZGVmaW5lIERNQV9HVUNfV09QQ01fT0ZGU0VUCQlfTU1JTygweGMz NDApCisjZGVmaW5lICAgSFVDX0xPQURJTkdfQUdFTlRfVkNSCQkgICgwPDwxKQorI2RlZmluZSAg IEhVQ19MT0FESU5HX0FHRU5UX0dVQwkJICAoMTw8MSkKICNkZWZpbmUgICBHVUNfV09QQ01fT0ZG U0VUX1ZBTFVFCSAgMHg4MDAwMAkvKiA1MTJLQiAqLwogI2RlZmluZSBHVUNfTUFYX0lETEVfQ09V TlQJCV9NTUlPKDB4QzNFNCkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5j CmluZGV4IDA5ZTQ2M2IuLjIyNTc0OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf bG9hZGVyLmMKQEAgLTMwOSw4ICszMDksOCBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2Rt YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJSTkxNV9XUklURShETUFfQURE Ul8xX0hJR0gsIERNQV9BRERSRVNTX1NQQUNFX1dPUENNKTsKIAogCS8qIEZpbmFsbHkgc3RhcnQg dGhlIERNQSAqLwotCUk5MTVfV1JJVEUoRE1BX0NUUkwsIF9NQVNLRURfQklUX0VOQUJMRShVT1Nf TU9WRSB8IFNUQVJUX0RNQSkpOwotCisJSTkxNV9XUklURShETUFfQ1RSTCwgX01BU0tFRF9CSVRf RU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSB8CisJCV9NQVNLRURfQklUX0RJU0FCTEUoSFVD X1VLRVJORUwpKTsKIAkvKgogCSAqIFdhaXQgZm9yIHRoZSBETUEgdG8gY29tcGxldGUgJiB0aGUg R3VDIHRvIHN0YXJ0IHVwLgogCSAqIE5COiBEb2NzIHJlY29tbWVuZCBub3QgdXNpbmcgdGhlIGlu dGVycnVwdCBmb3IgY29tcGxldGlvbi4KQEAgLTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgaW50IGd1 Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0 dXJuIHJldDsKIH0KIAotc3RhdGljIHUzMiBndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCit1MzIgaW50ZWxfZ3VjX3dvcGNtX3NpemUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXUzMiB3b3BjbV9zaXplID0gR1VDX1dPUENNX1RP UDsKIApAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0 KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKIAogCS8qIGluaXQgV09QQ00gKi8KLQlJOTE1X1dS SVRFKEdVQ19XT1BDTV9TSVpFLCBndWNfd29wY21fc2l6ZShkZXZfcHJpdikpOworCUk5MTVfV1JJ VEUoR1VDX1dPUENNX1NJWkUsIGludGVsX2d1Y193b3BjbV9zaXplKGRldl9wcml2KSk7CiAJSTkx NV9XUklURShETUFfR1VDX1dPUENNX09GRlNFVCwgR1VDX1dPUENNX09GRlNFVF9WQUxVRSk7CiAK IAkvKiBFbmFibGUgTUlBIGNhY2hpbmcuIEd1QyBjbG9jayBnYXRpbmcgaXMgZGlzYWJsZWQuICov CkBAIC01MTEsNiArNTExLDcgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWlmIChlcnIpCiAJCQlnb3RvIGZhaWw7CiAKKwkJaW50ZWxf aHVjX2xvYWQoZGV2X3ByaXYpOwogCQllcnIgPSBndWNfdWNvZGVfeGZlcihkZXZfcHJpdik7CiAJ CWlmICghZXJyKQogCQkJYnJlYWs7CkBAIC02NTgsNyArNjU5LDcgQEAgdm9pZCBpbnRlbF91Y19m d19mZXRjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXNpemUgPSB1Y19m dy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKIAogCQkvKiBUb3AgMzJrIG9mIFdP UENNIGlzIHJlc2VydmVkICg4SyBzdGFjayArIDI0ayBSQzYgY29udGV4dCkuICovCi0JCWlmIChz aXplID4gZ3VjX3dvcGNtX3NpemUoZGV2X3ByaXYpKSB7CisJCWlmIChzaXplID4gaW50ZWxfZ3Vj X3dvcGNtX3NpemUoZGV2X3ByaXYpKSB7CiAJCQlEUk1fRVJST1IoIkZpcm13YXJlIGlzIHRvbyBs YXJnZSB0byBmaXQgaW4gV09QQ01cbiIpOwogCQkJZ290byBmYWlsOwogCQl9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9odWNfbG9hZGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMGY5MjljYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2h1Y19sb2FkZXIuYwpAQCAtMCwwICsxLDI2NCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAy MDE2IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhF IFNPRlRXQVJFLgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVk ZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF91Yy5oIgorCisvKioKKyAqIERPQzogSHVD IEZpcm13YXJlCisgKgorICogTW90aXZhdGlvbjoKKyAqIEdFTjkgaW50cm9kdWNlcyBhIG5ldyBk ZWRpY2F0ZWQgZmlybXdhcmUgZm9yIHVzYWdlIGluIG1lZGlhIEhFVkMgKEhpZ2gKKyAqIEVmZmlj aWVuY3kgVmlkZW8gQ29kaW5nKSBvcGVyYXRpb25zLiBVc2Vyc3BhY2UgY2FuIHVzZSB0aGUgZmly bXdhcmUKKyAqIGNhcGFiaWxpdGllcyBieSBhZGRpbmcgSHVDIHNwZWNpZmljIGNvbW1hbmRzIHRv IGJhdGNoIGJ1ZmZlcnMuCisgKgorICogSW1wbGVtZW50YXRpb246CisgKiBUaGUgc2FtZSBmaXJt d2FyZSBsb2FkZXIgaXMgdXNlZCBhcyB0aGUgR3VDLiBIb3dldmVyLCB0aGUgYWN0dWFsCisgKiBs b2FkaW5nIHRvIEhXIGlzIGRlZmVycmVkIHVudGlsIEdFTSBpbml0aWFsaXphdGlvbiBpcyBkb25l LgorICoKKyAqIE5vdGUgdGhhdCBIdUMgZmlybXdhcmUgbG9hZGluZyBtdXN0IGJlIGRvbmUgYmVm b3JlIEd1QyBsb2FkaW5nLgorICovCisKKyNkZWZpbmUgU0tMX0hVQ19GV19NQUpPUiAwMQorI2Rl ZmluZSBTS0xfSFVDX0ZXX01JTk9SIDA3CisjZGVmaW5lIFNLTF9CTERfTlVNIDEzOTgKKworI2Rl ZmluZSBIVUNfRldfUEFUSChwbGF0Zm9ybSwgbWFqb3IsIG1pbm9yLCBibGRfbnVtKSBcCisJImk5 MTUvIiBfX3N0cmluZ2lmeShwbGF0Zm9ybSkgIl9odWNfdmVyIiBfX3N0cmluZ2lmeShtYWpvcikg Il8iIFwKKwlfX3N0cmluZ2lmeShtaW5vcikgIl8iIF9fc3RyaW5naWZ5KGJsZF9udW0pICIuYmlu IgorCisjZGVmaW5lIEk5MTVfU0tMX0hVQ19VQ09ERSBIVUNfRldfUEFUSChza2wsIFNLTF9IVUNf RldfTUFKT1IsIFwKKwlTS0xfSFVDX0ZXX01JTk9SLCBTS0xfQkxEX05VTSkKK01PRFVMRV9GSVJN V0FSRShJOTE1X1NLTF9IVUNfVUNPREUpOworCisvKioKKyAqIGh1Y191Y29kZV94ZmVyKCkgLSBE TUEncyB0aGUgZmlybXdhcmUKKyAqIEBkZXZfcHJpdjogdGhlIGRybSBkZXZpY2UKKyAqCisgKiBU aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBnZW0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpcm13YXJl LCBzZXRzIHVwIHRoZSBETUEKKyAqIGVuZ2luZSBNTUlPLCB0cmlnZ2VycyB0aGUgRE1BIG9wZXJh dGlvbiBhbmQgd2FpdHMgZm9yIGl0IHRvIGZpbmlzaC4KKyAqCisgKiBUcmFuc2ZlciB0aGUgZmly bXdhcmUgaW1hZ2UgdG8gUkFNIGZvciBleGVjdXRpb24gYnkgdGhlIG1pY3JvY29udHJvbGxlci4K KyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2Vzcywgbm9uLXplcm8gb24gZmFpbHVyZQorICovCisK K3N0YXRpYyBpbnQgaHVjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQoreworCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmRldl9wcml2LT5odWMuZnc7 CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAwOworCXUz MiBzaXplOworCWludCByZXQ7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9k b21haW4oaHVjX2Z3LT51Y19md19vYmosIGZhbHNlKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJV R19EUklWRVIoInNldC1kb21haW4gZmFpbGVkICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0Owor CX0KKworCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihodWNfZnctPnVjX2Z3X29iaiwg TlVMTCwgMCwgMCwgMCk7CisJaWYgKElTX0VSUih2bWEpKSB7CisJCURSTV9ERUJVR19EUklWRVIo InBpbiBmYWlsZWQgJWRcbiIsIChpbnQpUFRSX0VSUih2bWEpKTsKKwkJcmV0dXJuIFBUUl9FUlIo dm1hKTsKKwl9CisKKwkvKiBJbnZhbGlkYXRlIEd1QyBUTEIgdG8gbGV0IEd1QyB0YWtlIHRoZSBs YXRlc3QgdXBkYXRlcyB0byBHVFQuICovCisJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhfR1RD Ul9JTlZBTElEQVRFKTsKKworCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBG T1JDRVdBS0VfQUxMKTsKKworCS8qIGluaXQgV09QQ00gKi8KKwlJOTE1X1dSSVRFKEdVQ19XT1BD TV9TSVpFLCBpbnRlbF9ndWNfd29wY21fc2l6ZShkZXZfcHJpdikpOworCUk5MTVfV1JJVEUoRE1B X0dVQ19XT1BDTV9PRkZTRVQsIEdVQ19XT1BDTV9PRkZTRVRfVkFMVUUgfAorCQkJSFVDX0xPQURJ TkdfQUdFTlRfR1VDKTsKKworCS8qIFNldCB0aGUgc291cmNlIGFkZHJlc3MgZm9yIHRoZSB1Q29k ZSAqLworCW9mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKSArIGh1Y19mdy0+aGVhZGVyX29m ZnNldDsKKwlJOTE1X1dSSVRFKERNQV9BRERSXzBfTE9XLCBsb3dlcl8zMl9iaXRzKG9mZnNldCkp OworCUk5MTVfV1JJVEUoRE1BX0FERFJfMF9ISUdILCB1cHBlcl8zMl9iaXRzKG9mZnNldCkgJiAw eEZGRkYpOworCisJLyogSGFyZHdhcmUgZG9lc24ndCBsb29rIGF0IGRlc3RpbmF0aW9uIGFkZHJl c3MgZm9yIEh1Qy4gU2V0IGl0IHRvIDAsCisJICogYnV0IHN0aWxsIHByb2dyYW0gdGhlIGNvcnJl Y3QgYWRkcmVzcyBzcGFjZS4KKwkgKi8KKwlJOTE1X1dSSVRFKERNQV9BRERSXzFfTE9XLCAwKTsK KwlJOTE1X1dSSVRFKERNQV9BRERSXzFfSElHSCwgRE1BX0FERFJFU1NfU1BBQ0VfV09QQ00pOwor CisJc2l6ZSA9IGh1Y19mdy0+aGVhZGVyX3NpemUgKyBodWNfZnctPnVjb2RlX3NpemU7CisJSTkx NV9XUklURShETUFfQ09QWV9TSVpFLCBzaXplKTsKKworCS8qIFN0YXJ0IHRoZSBETUEgKi8KKwlJ OTE1X1dSSVRFKERNQV9DVFJMLCBfTUFTS0VEX0JJVF9FTkFCTEUoSFVDX1VLRVJORUwgfCBTVEFS VF9ETUEpKTsKKworCS8qIFdhaXQgZm9yIERNQSB0byBmaW5pc2ggKi8KKwlyZXQgPSB3YWl0X2Zv cigoSTkxNV9SRUFEKERNQV9DVFJMKSAmIFNUQVJUX0RNQSkgPT0gMCwgMTAwKTsKKworCURSTV9E RUJVR19EUklWRVIoIkh1QyBETUEgdHJhbnNmZXIgd2FpdCBvdmVyIHdpdGggcmV0ICVkXG4iLCBy ZXQpOworCisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9B TEwpOworCisJLyoKKwkgKiBXZSBrZWVwIHRoZSBvYmplY3QgcGFnZXMgZm9yIHJldXNlIGR1cmlu ZyByZXN1bWUuIEJ1dCB3ZSBjYW4gdW5waW4gaXQKKwkgKiBub3cgdGhhdCBETUEgaGFzIGNvbXBs ZXRlZCwgc28gaXQgZG9lc24ndCBjb250aW51ZSB0byB0YWtlIHVwIHNwYWNlLgorCSAqLworCWk5 MTVfdm1hX3VucGluKHZtYSk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGludGVsX2h1 Y19pbml0KCkgLSBpbml0aWF0ZSBIdUMgZmlybXdhcmUgbG9hZGluZyByZXF1ZXN0CisgKiBAZGV2 X3ByaXY6IHRoZSBkcm1faTkxNV9wcml2YXRlIGRldmljZQorICoKKyAqIENhbGxlZCBlYXJseSBk dXJpbmcgZHJpdmVyIGxvYWQsIGJ1dCBhZnRlciBHRU0gaXMgaW5pdGlhbGlzZWQuIFRoZSBsb2Fk aW5nCisgKiB3aWxsIGNvbnRpbnVlIG9ubHkgd2hlbiBkcml2ZXIgZXhwbGljaXRseSBzcGVjaWZ5 IGZpcm13YXJlIG5hbWUgYW5kIHZlcnNpb24uCisgKiBBbGwgb3RoZXIgY2FzZXMgYXJlIGNvbnNp ZGVyZWQgYXMgSU5URUxfVUNfRklSTVdBUkVfTk9ORSBlaXRoZXIgYmVjYXVzZSBIVworICogaXMg bm90IGNhcGFibGUgb3IgZHJpdmVyIHlldCBzdXBwb3J0IGl0LiBBbmQgdGhlcmUgd2lsbCBiZSBu byBlcnJvciBtZXNzYWdlCisgKiBmb3IgSU5URUxfVUNfRklSTVdBUkVfTk9ORSBjYXNlcy4KKyAq CisgKiBUaGUgRE1BLWNvcHlpbmcgdG8gSFcgaXMgZG9uZSBsYXRlciB3aGVuIGludGVsX2h1Y19s b2FkKCkgaXMgY2FsbGVkLgorICovCit2b2lkIGludGVsX2h1Y19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAmZGV2X3By aXYtPmh1YzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZodWMtPmZ3OworCWNvbnN0 IGNoYXIgKmZ3X3BhdGggPSBOVUxMOworCisJaHVjX2Z3LT51Y19md19wYXRoID0gTlVMTDsKKwlo dWNfZnctPmZldGNoX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7CisJaHVjX2Z3LT5s b2FkX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7CisJaHVjX2Z3LT5md190eXBlID0g SU5URUxfVUNfRldfVFlQRV9IVUM7CisKKwlpZiAoIUhBU19IVUNfVUNPREUoZGV2X3ByaXYpKQor CQlyZXR1cm47CisKKwlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikpIHsKKwkJZndfcGF0aCA9IEk5 MTVfU0tMX0hVQ19VQ09ERTsKKwkJaHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gU0tMX0hVQ19G V19NQUpPUjsKKwkJaHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gU0tMX0hVQ19GV19NSU5PUjsK Kwl9CisKKwlodWNfZnctPnVjX2Z3X3BhdGggPSBmd19wYXRoOworCWh1Y19mdy0+ZmV0Y2hfc3Rh dHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKKworCURSTV9ERUJVR19EUklWRVIoIkh1 QyBmaXJtd2FyZSBwZW5kaW5nLCBwYXRoICVzXG4iLCBmd19wYXRoKTsKKworCWludGVsX3VjX2Z3 X2ZldGNoKGRldl9wcml2LCBodWNfZncpOworfQorCisvKioKKyAqIGludGVsX2h1Y19sb2FkKCkg LSBsb2FkIEh1QyB1Q29kZSB0byBkZXZpY2UKKyAqIEBkZXZfcHJpdjogdGhlIGRybV9pOTE1X3By aXZhdGUgZGV2aWNlCisgKgorICogQ2FsbGVkIGZyb20gZ2VtX2luaXRfaHcoKSBkdXJpbmcgZHJp dmVyIGxvYWRpbmcgYW5kIGFsc28gYWZ0ZXIgYSBHUFUgcmVzZXQuCisgKiBCZSBub3RlIHRoYXQg SHVDIGxvYWRpbmcgbXVzdCBiZSBkb25lIGJlZm9yZSBHdUMgbG9hZGluZy4KKyAqCisgKiBUaGUg ZmlybXdhcmUgaW1hZ2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGZldGNoZWQgaW50byBtZW1v cnkgYnkgdGhlCisgKiBlYXJsaWVyIGNhbGwgdG8gaW50ZWxfaHVjX2luaXQoKSwgc28gaGVyZSB3 ZSBuZWVkIG9ubHkgY2hlY2sgdGhhdAorICogaXMgc3VjY2VlZGVkLCBhbmQgdGhlbiB0cmFuc2Zl ciB0aGUgaW1hZ2UgdG8gdGhlIGgvdy4KKyAqCisgKiBSZXR1cm46CW5vbi16ZXJvIGNvZGUgb24g ZXJyb3IKKyAqLworaW50IGludGVsX2h1Y19sb2FkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZkZXZfcHJpdi0+aHVj LmZ3OworCWludCBlcnI7CisKKwlpZiAoaHVjX2Z3LT5mZXRjaF9zdGF0dXMgPT0gSU5URUxfVUNf RklSTVdBUkVfTk9ORSkKKwkJcmV0dXJuIDA7CisKKwlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBz dGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAorCQlodWNfZnctPnVjX2Z3X3BhdGgsCisJCWlu dGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNf Zndfc3RhdHVzX3JlcHIoaHVjX2Z3LT5sb2FkX3N0YXR1cykpOworCisJaWYgKGh1Y19mdy0+ZmV0 Y2hfc3RhdHVzID09IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1MgJiYKKwkgICAgaHVjX2Z3LT5s b2FkX3N0YXR1cyA9PSBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMKQorCQlyZXR1cm4gLUVOT0VYRUM7 CisKKwlodWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKKwor CXN3aXRjaCAoaHVjX2Z3LT5mZXRjaF9zdGF0dXMpIHsKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJF X0ZBSUw6CisJCS8qIHNvbWV0aGluZyB3ZW50IHdyb25nIDooICovCisJCWVyciA9IC1FSU87CisJ CWdvdG8gZmFpbDsKKworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVfTk9ORToKKwljYXNlIElOVEVM X1VDX0ZJUk1XQVJFX1BFTkRJTkc6CisJZGVmYXVsdDoKKwkJLyogImNhbid0IGhhcHBlbiIgKi8K KwkJV0FSTl9PTkNFKDEsICJIdUMgZncgJXMgaW52YWxpZCBmZXRjaF9zdGF0dXMgJXMgWyVkXVxu IiwKKwkJCWh1Y19mdy0+dWNfZndfcGF0aCwKKwkJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1 Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJCWh1Y19mdy0+ZmV0Y2hfc3RhdHVzKTsKKwkJZXJyID0g LUVOWElPOworCQlnb3RvIGZhaWw7CisKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1M6 CisJCWJyZWFrOworCX0KKworCWVyciA9IGh1Y191Y29kZV94ZmVyKGRldl9wcml2KTsKKwlpZiAo ZXJyKQorCQlnb3RvIGZhaWw7CisKKwlodWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklS TVdBUkVfU1VDQ0VTUzsKKworCURSTV9ERUJVR19EUklWRVIoIiVzIGZ3IHN0YXR1czogZmV0Y2gg JXMsIGxvYWQgJXNcbiIsCisJCWh1Y19mdy0+dWNfZndfcGF0aCwKKwkJaW50ZWxfdWNfZndfc3Rh dHVzX3JlcHIoaHVjX2Z3LT5mZXRjaF9zdGF0dXMpLAorCQlpbnRlbF91Y19md19zdGF0dXNfcmVw cihodWNfZnctPmxvYWRfc3RhdHVzKSk7CisKKwlyZXR1cm4gMDsKKworZmFpbDoKKwlpZiAoaHVj X2Z3LT5sb2FkX3N0YXR1cyA9PSBJTlRFTF9VQ19GSVJNV0FSRV9QRU5ESU5HKQorCQlodWNfZnct PmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfRkFJTDsKKworCURSTV9FUlJPUigiRmFp bGVkIHRvIGNvbXBsZXRlIEh1QyB1Q29kZSBsb2FkIHdpdGggcmV0ICVkXG4iLCBlcnIpOworCisJ cmV0dXJuIGVycjsKK30KKworLyoqCisgKiBpbnRlbF9odWNfZmluaSgpIC0gY2xlYW4gdXAgcmVz b3VyY2VzIGFsbG9jYXRlZCBmb3IgSHVDCisgKiBAZGV2OiB0aGUgZHJtIGRldmljZQorICoKKyAq IENsZWFucyB1cCBieSByZWxlYXNpbmcgdGhlIGh1YyBmaXJtd2FyZSBHRU0gb2JqLgorICovCit2 b2lkIGludGVsX2h1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBpbnRlbF91 Y19mdyAqaHVjX2Z3ID0gJmRldl9wcml2LT5odWMuZnc7CisKKwltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisJaWYgKGh1Y19mdy0+dWNfZndfb2JqKQorCQlpOTE1X2dlbV9vYmplY3Rf cHV0KGh1Y19mdy0+dWNfZndfb2JqKTsKKwlodWNfZnctPnVjX2Z3X29iaiA9IE5VTEw7CisJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlodWNfZnctPmZldGNoX3N0YXR1cyA9 IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7Cit9CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCmluZGV4 IGFkMTQwZTIuLjU3YWVmNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaApAQCAtMjQsNiArMjQs OSBAQAogI2lmbmRlZiBfSU5URUxfVUNfSF8KICNkZWZpbmUgX0lOVEVMX1VDX0hfCiAKKyNkZWZp bmUgSFVDX1NUQVRVUzIgICAgICAgICAgICAgX01NSU8oMHhEM0IwKQorI2RlZmluZSAgIEhVQ19G V19WRVJJRklFRCAgICAgICAoMTw8NykKKwogI2luY2x1ZGUgImludGVsX2d1Y19md2lmLmgiCiAj aW5jbHVkZSAiaTkxNV9ndWNfcmVnLmgiCiAjaW5jbHVkZSAiaW50ZWxfcmluZ2J1ZmZlci5oIgpA QCAtMTc0LDYgKzE3NywxMyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjIHsKIAlzdHJ1Y3QgbXV0ZXggc2Vu ZF9tdXRleDsKIH07CiAKK3N0cnVjdCBpbnRlbF9odWMgeworCS8qIEdlbmVyaWMgdUMgZmlybXdh cmUgbWFuYWdlbWVudCAqLworCXN0cnVjdCBpbnRlbF91Y19mdyBmdzsKKworCS8qIEh1Qy1zcGVj aWZpYyBhZGRpdGlvbnMgKi8KK307CisKIC8qIGludGVsX3VjLmMgKi8KIHZvaWQgaW50ZWxfdWNf aW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogYm9vbCBpbnRl bF9ndWNfcmVjdihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiAqc3RhdHVz KTsKQEAgLTE5MCw2ICsyMDAsOSBAQCBleHRlcm4gdm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmludGVsX3Vj X2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cyk7CiBleHRlcm4g aW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CiBleHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKK3ZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCXN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwordTMyIGludGVsX2d1Y193 b3BjbV9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAKIC8qIGk5MTVf Z3VjX3N1Ym1pc3Npb24uYyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpAQCAtMjA0LDQgKzIxNyw5IEBAIHZvaWQgaTkx NV9ndWNfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQg aTkxNV9ndWNfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwog aW50IGk5MTVfZ3VjX2xvZ19jb250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgdTY0IGNvbnRyb2xfdmFsKTsKIAorLyogaW50ZWxfaHVjX2xvYWRlci5jICovCit2b2lkIGlu dGVsX2h1Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGlu dGVsX2h1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworaW50IGludGVsX2h1Y19sb2Fk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKICNlbmRpZgotLSAKMi43LjQK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=