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: Thu, 22 Dec 2016 15:12:19 -0800 Message-ID: <1482448344-6505-4-git-send-email-anusha.srivatsa@intel.com> References: <1482448344-6505-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id B71586F3CA for ; Thu, 22 Dec 2016 23:12:31 +0000 (UTC) In-Reply-To: <1482448344-6505-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 NTogcmViYXNlZCArIGNvbW1lbnQgY2hhbmdlcy4Kdjc6IHJlYmFzZWQuCnY4OiByZWJhc2VkLgp2 OTogcmViYXNlZC4gQ2hhbmdlZCB0aGUgeWVhciBpbiB0aGUgY29weXJpZ2h0IG1lc3NhZ2UgdG8g cmVmbGVjdAp0aGUgcmlnaHQgeWVhci5Db3JyZWN0IHRoZSBjb21tZW50cyxyZW1vdmUgdGhlIHVu d2FudGVkIFdBUk4gbWVzc2FnZSwKcmVwbGFjZSBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgp IHdpdGggaTkxNV9nZW1fb2JqZWN0X3B1dCgpLk1ha2UgdGhlCnByb3RvdHlwZXMgaW4gaW50ZWxf aHVjLmggbm9uLWV4dGVybi4KdjEwOiByZWJhc2VkLiBVcGRhdGUgdGhlIGZpbGUgY29uc3RydWN0 aW9uIGRvbmUgYnkgSHVDLiBJdCBpcyBzaW1pbGFyIHRvCkd1Qy5BZG9wdGVkIHRoZSBhcHByb2Fj aCB1c2VkIGluLQpodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMTA0MzU1 LyA8VHZydGtvIFVyc3VsaW4+CnYxMTogRml4IHdhcm5pbmdzIHJlbW92ZSBvbGQgZGVjbGFyYXRp b24KdjEyOiBDaGFuZ2UgZGV2IHRvIGRldl9wcml2IGluIG1hY3JvIGRlZmluaXRpb24uCkNvcnJl Y3RlZCBjb21tZW50cy4KdjEzOiByZWJhc2VkLgp2MTQ6IHJlYmFzZWQgb24gdG9wIG9mIGRybS10 aXAKdjE1OiByZWJhc2VkLiBVcGRhdGVkIGZ1bmN0aW9ucyBpbnRlbF9odWNfbG9hZCgpLGludGVs X2h1Y19pbml0KCkgYW5kCmludGVsX3VjX2Z3X2ZldGNoKCkgdG8gYWNjZXB0IGRldl9wcml2IGlu c3RlYWQgb2YgZGV2LiBNb3ZlZCBjb250ZW50cwpvZiBpbnRlbF9odWMuaCB0byBpbnRlbF91Yy5o CnYxNjogY2hhbmdlIFNLTF9GV18gdG8gU0tMX0hVQ19GV18uIEFkZCBpbnRlbF8gcHJlZml4IHRv IGd1Y193b3BjbV9zaXplKCkuClJlbW92ZSB1bndhbnRlZCBjaGVja3MgaW4gaW50ZWxfdWMuaC4g UmVuYW1lIGh1Y19mdyBpbiBzdHJ1Y3QgaW50ZWxfaHVjIHRvCnNpbXBseSBmdyB0byBhdm9pZCBy ZWR1bmRlbmN5Lgp2MTc6IHJlYmFzZWQuCgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KVGVzdGVkLWJ5OiBYaWFuZyBIYWloYW8gPGhhaWhhby54aWFuZ0BpbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+ClNpZ25l ZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfcmVnLmggICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2FkZXIuYyB8ICAxMSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5j IHwgMjYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91Yy5oICAgICAgICAgfCAgMTggKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI5NiBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXgg NTE5NjUwOS4uNDVhZTEyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTU3LDYgKzU3LDcgQEAg aTkxNS15ICs9IGk5MTVfY21kX3BhcnNlci5vIFwKICMgZ2VuZXJhbC1wdXJwb3NlIG1pY3JvY29u dHJvbGxlciAoR3VDKSBzdXBwb3J0CiBpOTE1LXkgKz0gaW50ZWxfdWMubyBcCiAJICBpbnRlbF9n dWNfbG9hZGVyLm8gXAorCSAgaW50ZWxfaHVjX2xvYWRlci5vIFwKIAkgIGk5MTVfZ3VjX3N1Ym1p c3Npb24ubwogCiAjIGF1dG9nZW5lcmF0ZWQgbnVsbCByZW5kZXIgc3RhdGUKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCmluZGV4IDY0Mjg1ODguLjg1YTQ3YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YwpAQCAtNjAwLDYgKzYwMCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX21vZGVzZXRfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChyZXQpCiAJCWdvdG8gY2xlYW51cF9pcnE7CiAK KwlpbnRlbF9odWNfaW5pdChkZXZfcHJpdik7CiAJaW50ZWxfZ3VjX2luaXQoZGV2X3ByaXYpOwog CiAJcmV0ID0gaTkxNV9nZW1faW5pdChkZXZfcHJpdik7CkBAIC02MjcsNiArNjI4LDcgQEAgc3Rh dGljIGludCBpOTE1X2xvYWRfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ CURSTV9FUlJPUigiZmFpbGVkIHRvIGlkbGUgaGFyZHdhcmU7IGNvbnRpbnVpbmcgdG8gdW5sb2Fk IVxuIik7CiAJaTkxNV9nZW1fZmluaShkZXZfcHJpdik7CiBjbGVhbnVwX2lycToKKwlpbnRlbF9o dWNfZmluaShkZXYpOwogCWludGVsX2d1Y19maW5pKGRldl9wcml2KTsKIAlkcm1faXJxX3VuaW5z dGFsbChkZXYpOwogCWludGVsX3RlYXJkb3duX2dtYnVzKGRldl9wcml2KTsKQEAgLTEzMTMsNyAr MTMxNSw3IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAKIAkvKiBGbHVzaCBhbnkgb3V0c3RhbmRpbmcgdW5waW5fd29yay4gKi8KIAlkcmFpbl93b3Jr cXVldWUoZGV2X3ByaXYtPndxKTsKLQorCWludGVsX2h1Y19maW5pKGRldik7CiAJaW50ZWxfZ3Vj X2ZpbmkoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2ZpbmkoZGV2X3ByaXYpOwogCWludGVsX2ZiY19j bGVhbnVwX2NmYihkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAxYTkxNDA5 Li43YWM3NzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIxNDcsNiArMjE0Nyw3IEBA IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBpbnRlbF9ndnQgKmd2dDsKIAor CXN0cnVjdCBpbnRlbF9odWMgaHVjOwogCXN0cnVjdCBpbnRlbF9ndWMgZ3VjOwogCiAJc3RydWN0 IGludGVsX2NzciBjc3I7CkBAIC0yOTIxLDcgKzI5MjIsNyBAQCBpbnRlbF9pbmZvKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICNkZWZpbmUgSEFTX0dVQyhkZXZfcHJp dikJKChkZXZfcHJpdiktPmluZm8uaGFzX2d1YykKICNkZWZpbmUgSEFTX0dVQ19VQ09ERShkZXZf cHJpdikJKEhBU19HVUMoZGV2X3ByaXYpKQogI2RlZmluZSBIQVNfR1VDX1NDSEVEKGRldl9wcml2 KQkoSEFTX0dVQyhkZXZfcHJpdikpCi0KKyNkZWZpbmUgSEFTX0hVQ19VQ09ERShkZXZfcHJpdikJ KEhBU19HVUMoZGV2X3ByaXYpKQogI2RlZmluZSBIQVNfUkVTT1VSQ0VfU1RSRUFNRVIoZGV2X3By aXYpICgoZGV2X3ByaXYpLT5pbmZvLmhhc19yZXNvdXJjZV9zdHJlYW1lcikKIAogI2RlZmluZSBI QVNfUE9PTEVEX0VVKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5oYXNfcG9vbGVkX2V1KQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaAppbmRleCA1ZTYzOGZjLi5mOTgyOWY2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaApAQCAtNjEsOSArNjEsMTIgQEAKICNkZWZpbmUg ICBETUFfQUREUkVTU19TUEFDRV9HVFQJCSAgKDggPDwgMTYpCiAjZGVmaW5lIERNQV9DT1BZX1NJ WkUJCQlfTU1JTygweGMzMTApCiAjZGVmaW5lIERNQV9DVFJMCQkJX01NSU8oMHhjMzE0KQorI2Rl ZmluZSAgIEhVQ19VS0VSTkVMCQkJICAoMTw8OSkKICNkZWZpbmUgICBVT1NfTU9WRQkJCSAgKDE8 PDQpCiAjZGVmaW5lICAgU1RBUlRfRE1BCQkJICAoMTw8MCkKICNkZWZpbmUgRE1BX0dVQ19XT1BD TV9PRkZTRVQJCV9NTUlPKDB4YzM0MCkKKyNkZWZpbmUgICBIVUNfTE9BRElOR19BR0VOVF9WQ1IJ CSAgKDA8PDEpCisjZGVmaW5lICAgSFVDX0xPQURJTkdfQUdFTlRfR1VDCQkgICgxPDwxKQogI2Rl ZmluZSAgIEdVQ19XT1BDTV9PRkZTRVRfVkFMVUUJICAweDgwMDAwCS8qIDUxMktCICovCiAjZGVm aW5lIEdVQ19NQVhfSURMRV9DT1VOVAkJX01NSU8oMHhDM0U0KQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggMDZlM2U1Yy4uOGM3N2U5NCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwpAQCAtMzA5LDggKzMwOSw4IEBAIHN0YXRpYyBp bnQgZ3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAlJOTE1X1dSSVRFKERNQV9BRERSXzFfSElHSCwgRE1BX0FERFJFU1NfU1BBQ0VfV09QQ00pOwog CiAJLyogRmluYWxseSBzdGFydCB0aGUgRE1BICovCi0JSTkxNV9XUklURShETUFfQ1RSTCwgX01B U0tFRF9CSVRfRU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSk7Ci0KKwlJOTE1X1dSSVRFKERN QV9DVFJMLCBfTUFTS0VEX0JJVF9FTkFCTEUoVU9TX01PVkUgfCBTVEFSVF9ETUEpIHwKKwkJX01B U0tFRF9CSVRfRElTQUJMRShIVUNfVUtFUk5FTCkpOwogCS8qCiAJICogV2FpdCBmb3IgdGhlIERN QSB0byBjb21wbGV0ZSAmIHRoZSBHdUMgdG8gc3RhcnQgdXAuCiAJICogTkI6IERvY3MgcmVjb21t ZW5kIG5vdCB1c2luZyB0aGUgaW50ZXJydXB0IGZvciBjb21wbGV0aW9uLgpAQCAtMzM0LDcgKzMz NCw3IEBAIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdTMyIGd1Y193b3BjbV9z aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3UzMiBpbnRlbF9ndWNfd29w Y21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJdTMyIHdvcGNt X3NpemUgPSBHVUNfV09QQ01fVE9QOwogCkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIGludCBn dWNfdWNvZGVfeGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50ZWxf dW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwogCiAJLyogaW5p dCBXT1BDTSAqLwotCUk5MTVfV1JJVEUoR1VDX1dPUENNX1NJWkUsIGd1Y193b3BjbV9zaXplKGRl dl9wcml2KSk7CisJSTkxNV9XUklURShHVUNfV09QQ01fU0laRSwgaW50ZWxfZ3VjX3dvcGNtX3Np emUoZGV2X3ByaXYpKTsKIAlJOTE1X1dSSVRFKERNQV9HVUNfV09QQ01fT0ZGU0VULCBHVUNfV09Q Q01fT0ZGU0VUX1ZBTFVFKTsKIAogCS8qIEVuYWJsZSBNSUEgY2FjaGluZy4gR3VDIGNsb2NrIGdh dGluZyBpcyBkaXNhYmxlZC4gKi8KQEAgLTUxMSw2ICs1MTEsNyBAQCBpbnQgaW50ZWxfZ3VjX3Nl dHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaWYgKGVycikKIAkJCWdv dG8gZmFpbDsKIAorCQlpbnRlbF9odWNfbG9hZChkZXZfcHJpdik7CiAJCWVyciA9IGd1Y191Y29k ZV94ZmVyKGRldl9wcml2KTsKIAkJaWYgKCFlcnIpCiAJCQlicmVhazsKQEAgLTY1OCw3ICs2NTks NyBAQCB2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9zaXplOwog CiAJCS8qIFRvcCAzMmsgb2YgV09QQ00gaXMgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRrIFJDNiBj b250ZXh0KS4gKi8KLQkJaWYgKHNpemUgPiBndWNfd29wY21fc2l6ZShkZXZfcHJpdikpIHsKKwkJ aWYgKHNpemUgPiBpbnRlbF9ndWNfd29wY21fc2l6ZShkZXZfcHJpdikpIHsKIAkJCURSTV9FUlJP UigiRmlybXdhcmUgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbiBXT1BDTVxuIik7CiAJCQlnb3RvIGZh aWw7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2Fk ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGQ2MzFjCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jCkBAIC0wLDAgKzEsMjYzIEBACisv KgorICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJl IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl LCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQg dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNs dWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFM TAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkg Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaW5jbHVkZSA8bGludXgv ZmlybXdhcmUuaD4KKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImludGVsX3VjLmgi CisKKy8qKgorICogRE9DOiBIdUMgRmlybXdhcmUKKyAqCisgKiBNb3RpdmF0aW9uOgorICogR0VO OSBpbnRyb2R1Y2VzIGEgbmV3IGRlZGljYXRlZCBmaXJtd2FyZSBmb3IgdXNhZ2UgaW4gbWVkaWEg SEVWQyAoSGlnaAorICogRWZmaWNpZW5jeSBWaWRlbyBDb2RpbmcpIG9wZXJhdGlvbnMuIFVzZXJz cGFjZSBjYW4gdXNlIHRoZSBmaXJtd2FyZQorICogY2FwYWJpbGl0aWVzIGJ5IGFkZGluZyBIdUMg c3BlY2lmaWMgY29tbWFuZHMgdG8gYmF0Y2ggYnVmZmVycy4KKyAqCisgKiBJbXBsZW1lbnRhdGlv bjoKKyAqIFRoZSBzYW1lIGZpcm13YXJlIGxvYWRlciBpcyB1c2VkIGFzIHRoZSBHdUMuIEhvd2V2 ZXIsIHRoZSBhY3R1YWwKKyAqIGxvYWRpbmcgdG8gSFcgaXMgZGVmZXJyZWQgdW50aWwgR0VNIGlu aXRpYWxpemF0aW9uIGlzIGRvbmUuCisgKgorICogTm90ZSB0aGF0IEh1QyBmaXJtd2FyZSBsb2Fk aW5nIG11c3QgYmUgZG9uZSBiZWZvcmUgR3VDIGxvYWRpbmcuCisgKi8KKworI2RlZmluZSBTS0xf SFVDX0ZXX01BSk9SIDAxCisjZGVmaW5lIFNLTF9IVUNfRldfTUlOT1IgMDcKKyNkZWZpbmUgU0tM X0JMRF9OVU0gMTM5OAorCisjZGVmaW5lIEhVQ19GV19QQVRIKHBsYXRmb3JtLCBtYWpvciwgbWlu b3IsIGJsZF9udW0pIFwKKwkiaTkxNS8iIF9fc3RyaW5naWZ5KHBsYXRmb3JtKSAiX2h1Y192ZXIi IF9fc3RyaW5naWZ5KG1ham9yKSAiXyIgXAorCV9fc3RyaW5naWZ5KG1pbm9yKSAiXyIgX19zdHJp bmdpZnkoYmxkX251bSkgIi5iaW4iCisKKyNkZWZpbmUgSTkxNV9TS0xfSFVDX1VDT0RFIEhVQ19G V19QQVRIKHNrbCwgU0tMX0hVQ19GV19NQUpPUiwgXAorCVNLTF9IVUNfRldfTUlOT1IsIFNLTF9C TERfTlVNKQorTU9EVUxFX0ZJUk1XQVJFKEk5MTVfU0tMX0hVQ19VQ09ERSk7CisKKy8qKgorICog aHVjX3Vjb2RlX3hmZXIoKSAtIERNQSdzIHRoZSBmaXJtd2FyZQorICogQGRldl9wcml2OiB0aGUg ZHJtIGRldmljZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGdlbSBvYmplY3QgY29u dGFpbmluZyB0aGUgZmlybXdhcmUsIHNldHMgdXAgdGhlIERNQQorICogZW5naW5lIE1NSU8sIHRy aWdnZXJzIHRoZSBETUEgb3BlcmF0aW9uIGFuZCB3YWl0cyBmb3IgaXQgdG8gZmluaXNoLgorICoK KyAqIFRyYW5zZmVyIHRoZSBmaXJtd2FyZSBpbWFnZSB0byBSQU0gZm9yIGV4ZWN1dGlvbiBieSB0 aGUgbWljcm9jb250cm9sbGVyLgorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBub24temVy byBvbiBmYWlsdXJlCisgKi8KK3N0YXRpYyBpbnQgaHVjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0g JmRldl9wcml2LT5odWMuZnc7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdW5zaWduZWQgbG9u ZyBvZmZzZXQgPSAwOworCXUzMiBzaXplOworCWludCByZXQ7CisKKwlyZXQgPSBpOTE1X2dlbV9v YmplY3Rfc2V0X3RvX2d0dF9kb21haW4oaHVjX2Z3LT51Y19md19vYmosIGZhbHNlKTsKKwlpZiAo cmV0KSB7CisJCURSTV9ERUJVR19EUklWRVIoInNldC1kb21haW4gZmFpbGVkICVkXG4iLCByZXQp OworCQlyZXR1cm4gcmV0OworCX0KKworCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3Bpbiho dWNfZnctPnVjX2Z3X29iaiwgTlVMTCwgMCwgMCwgMCk7CisJaWYgKElTX0VSUih2bWEpKSB7CisJ CURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIsIChpbnQpUFRSX0VSUih2bWEpKTsK KwkJcmV0dXJuIFBUUl9FUlIodm1hKTsKKwl9CisKKwkvKiBJbnZhbGlkYXRlIEd1QyBUTEIgdG8g bGV0IEd1QyB0YWtlIHRoZSBsYXRlc3QgdXBkYXRlcyB0byBHVFQuICovCisJSTkxNV9XUklURShH RU44X0dUQ1IsIEdFTjhfR1RDUl9JTlZBTElEQVRFKTsKKworCWludGVsX3VuY29yZV9mb3JjZXdh a2VfZ2V0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKKworCS8qIGluaXQgV09QQ00gKi8KKwlJ OTE1X1dSSVRFKEdVQ19XT1BDTV9TSVpFLCBpbnRlbF9ndWNfd29wY21fc2l6ZShkZXZfcHJpdikp OworCUk5MTVfV1JJVEUoRE1BX0dVQ19XT1BDTV9PRkZTRVQsIEdVQ19XT1BDTV9PRkZTRVRfVkFM VUUgfAorCQkJSFVDX0xPQURJTkdfQUdFTlRfR1VDKTsKKworCS8qIFNldCB0aGUgc291cmNlIGFk ZHJlc3MgZm9yIHRoZSB1Q29kZSAqLworCW9mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKSAr IGh1Y19mdy0+aGVhZGVyX29mZnNldDsKKwlJOTE1X1dSSVRFKERNQV9BRERSXzBfTE9XLCBsb3dl cl8zMl9iaXRzKG9mZnNldCkpOworCUk5MTVfV1JJVEUoRE1BX0FERFJfMF9ISUdILCB1cHBlcl8z Ml9iaXRzKG9mZnNldCkgJiAweEZGRkYpOworCisJLyogSGFyZHdhcmUgZG9lc24ndCBsb29rIGF0 IGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIEh1Qy4gU2V0IGl0IHRvIDAsCisJICogYnV0IHN0aWxs IHByb2dyYW0gdGhlIGNvcnJlY3QgYWRkcmVzcyBzcGFjZS4KKwkgKi8KKwlJOTE1X1dSSVRFKERN QV9BRERSXzFfTE9XLCAwKTsKKwlJOTE1X1dSSVRFKERNQV9BRERSXzFfSElHSCwgRE1BX0FERFJF U1NfU1BBQ0VfV09QQ00pOworCisJc2l6ZSA9IGh1Y19mdy0+aGVhZGVyX3NpemUgKyBodWNfZnct PnVjb2RlX3NpemU7CisJSTkxNV9XUklURShETUFfQ09QWV9TSVpFLCBzaXplKTsKKworCS8qIFN0 YXJ0IHRoZSBETUEgKi8KKwlJOTE1X1dSSVRFKERNQV9DVFJMLCBfTUFTS0VEX0JJVF9FTkFCTEUo SFVDX1VLRVJORUwgfCBTVEFSVF9ETUEpKTsKKworCS8qIFdhaXQgZm9yIERNQSB0byBmaW5pc2gg Ki8KKwlyZXQgPSB3YWl0X2ZvcigoSTkxNV9SRUFEKERNQV9DVFJMKSAmIFNUQVJUX0RNQSkgPT0g MCwgMTAwKTsKKworCURSTV9ERUJVR19EUklWRVIoIkh1QyBETUEgdHJhbnNmZXIgd2FpdCBvdmVy IHdpdGggcmV0ICVkXG4iLCByZXQpOworCisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2 X3ByaXYsIEZPUkNFV0FLRV9BTEwpOworCisJLyoKKwkgKiBXZSBrZWVwIHRoZSBvYmplY3QgcGFn ZXMgZm9yIHJldXNlIGR1cmluZyByZXN1bWUuIEJ1dCB3ZSBjYW4gdW5waW4gaXQKKwkgKiBub3cg dGhhdCBETUEgaGFzIGNvbXBsZXRlZCwgc28gaXQgZG9lc24ndCBjb250aW51ZSB0byB0YWtlIHVw IHNwYWNlLgorCSAqLworCWk5MTVfdm1hX3VucGluKHZtYSk7CisKKwlyZXR1cm4gcmV0OworfQor CisvKioKKyAqIGludGVsX2h1Y19pbml0KCkgLSBpbml0aWF0ZSBIdUMgZmlybXdhcmUgbG9hZGlu ZyByZXF1ZXN0CisgKiBAZGV2X3ByaXY6IHRoZSBkcm1faTkxNV9wcml2YXRlIGRldmljZQorICoK KyAqIENhbGxlZCBlYXJseSBkdXJpbmcgZHJpdmVyIGxvYWQsIGJ1dCBhZnRlciBHRU0gaXMgaW5p dGlhbGlzZWQuIFRoZSBsb2FkaW5nCisgKiB3aWxsIGNvbnRpbnVlIG9ubHkgd2hlbiBkcml2ZXIg ZXhwbGljaXRseSBzcGVjaWZ5IGZpcm13YXJlIG5hbWUgYW5kIHZlcnNpb24uCisgKiBBbGwgb3Ro ZXIgY2FzZXMgYXJlIGNvbnNpZGVyZWQgYXMgSU5URUxfVUNfRklSTVdBUkVfTk9ORSBlaXRoZXIg YmVjYXVzZSBIVworICogaXMgbm90IGNhcGFibGUgb3IgZHJpdmVyIHlldCBzdXBwb3J0IGl0LiBB bmQgdGhlcmUgd2lsbCBiZSBubyBlcnJvciBtZXNzYWdlCisgKiBmb3IgSU5URUxfVUNfRklSTVdB UkVfTk9ORSBjYXNlcy4KKyAqCisgKiBUaGUgRE1BLWNvcHlpbmcgdG8gSFcgaXMgZG9uZSBsYXRl ciB3aGVuIGludGVsX2h1Y19sb2FkKCkgaXMgY2FsbGVkLgorICovCit2b2lkIGludGVsX2h1Y19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxf aHVjICpodWMgPSAmZGV2X3ByaXYtPmh1YzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9 ICZodWMtPmZ3OworCWNvbnN0IGNoYXIgKmZ3X3BhdGggPSBOVUxMOworCisJaHVjX2Z3LT51Y19m d19wYXRoID0gTlVMTDsKKwlodWNfZnctPmZldGNoX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJF X05PTkU7CisJaHVjX2Z3LT5sb2FkX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7CisJ aHVjX2Z3LT5md190eXBlID0gSU5URUxfVUNfRldfVFlQRV9IVUM7CisKKwlpZiAoIUhBU19IVUNf VUNPREUoZGV2X3ByaXYpKQorCQlyZXR1cm47CisKKwlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikp IHsKKwkJZndfcGF0aCA9IEk5MTVfU0tMX0hVQ19VQ09ERTsKKwkJaHVjX2Z3LT5tYWpvcl92ZXJf d2FudGVkID0gU0tMX0hVQ19GV19NQUpPUjsKKwkJaHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0g U0tMX0hVQ19GV19NSU5PUjsKKwl9CisKKwlodWNfZnctPnVjX2Z3X3BhdGggPSBmd19wYXRoOwor CWh1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKKworCURS TV9ERUJVR19EUklWRVIoIkh1QyBmaXJtd2FyZSBwZW5kaW5nLCBwYXRoICVzXG4iLCBmd19wYXRo KTsKKworCWludGVsX3VjX2Z3X2ZldGNoKGRldl9wcml2LCBodWNfZncpOworfQorCisvKioKKyAq IGludGVsX2h1Y19sb2FkKCkgLSBsb2FkIEh1QyB1Q29kZSB0byBkZXZpY2UKKyAqIEBkZXZfcHJp djogdGhlIGRybV9pOTE1X3ByaXZhdGUgZGV2aWNlCisgKgorICogQ2FsbGVkIGZyb20gZ2VtX2lu aXRfaHcoKSBkdXJpbmcgZHJpdmVyIGxvYWRpbmcgYW5kIGFsc28gYWZ0ZXIgYSBHUFUgcmVzZXQu CisgKiBCZSBub3RlIHRoYXQgSHVDIGxvYWRpbmcgbXVzdCBiZSBkb25lIGJlZm9yZSBHdUMgbG9h ZGluZy4KKyAqCisgKiBUaGUgZmlybXdhcmUgaW1hZ2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVu IGZldGNoZWQgaW50byBtZW1vcnkgYnkgdGhlCisgKiBlYXJsaWVyIGNhbGwgdG8gaW50ZWxfaHVj X2luaXQoKSwgc28gaGVyZSB3ZSBuZWVkIG9ubHkgY2hlY2sgdGhhdAorICogaXMgc3VjY2VlZGVk LCBhbmQgdGhlbiB0cmFuc2ZlciB0aGUgaW1hZ2UgdG8gdGhlIGgvdy4KKyAqCisgKiBSZXR1cm46 CW5vbi16ZXJvIGNvZGUgb24gZXJyb3IKKyAqLworaW50IGludGVsX2h1Y19sb2FkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19m dyA9ICZkZXZfcHJpdi0+aHVjLmZ3OworCWludCBlcnI7CisKKwlpZiAoaHVjX2Z3LT5mZXRjaF9z dGF0dXMgPT0gSU5URUxfVUNfRklSTVdBUkVfTk9ORSkKKwkJcmV0dXJuIDA7CisKKwlEUk1fREVC VUdfRFJJVkVSKCIlcyBmdyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAorCQlodWNfZnct PnVjX2Z3X3BhdGgsCisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3Rh dHVzKSwKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoaHVjX2Z3LT5sb2FkX3N0YXR1cykpOwor CisJaWYgKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzID09IElOVEVMX1VDX0ZJUk1XQVJFX1NVQ0NFU1Mg JiYKKwkgICAgaHVjX2Z3LT5sb2FkX3N0YXR1cyA9PSBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMKQor CQlyZXR1cm4gLUVOT0VYRUM7CisKKwlodWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklS TVdBUkVfUEVORElORzsKKworCXN3aXRjaCAoaHVjX2Z3LT5mZXRjaF9zdGF0dXMpIHsKKwljYXNl IElOVEVMX1VDX0ZJUk1XQVJFX0ZBSUw6CisJCS8qIHNvbWV0aGluZyB3ZW50IHdyb25nIDooICov CisJCWVyciA9IC1FSU87CisJCWdvdG8gZmFpbDsKKworCWNhc2UgSU5URUxfVUNfRklSTVdBUkVf Tk9ORToKKwljYXNlIElOVEVMX1VDX0ZJUk1XQVJFX1BFTkRJTkc6CisJZGVmYXVsdDoKKwkJLyog ImNhbid0IGhhcHBlbiIgKi8KKwkJV0FSTl9PTkNFKDEsICJIdUMgZncgJXMgaW52YWxpZCBmZXRj aF9zdGF0dXMgJXMgWyVkXVxuIiwKKwkJCWh1Y19mdy0+dWNfZndfcGF0aCwKKwkJCWludGVsX3Vj X2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJCWh1Y19mdy0+ZmV0Y2hf c3RhdHVzKTsKKwkJZXJyID0gLUVOWElPOworCQlnb3RvIGZhaWw7CisKKwljYXNlIElOVEVMX1VD X0ZJUk1XQVJFX1NVQ0NFU1M6CisJCWJyZWFrOworCX0KKworCWVyciA9IGh1Y191Y29kZV94ZmVy KGRldl9wcml2KTsKKwlpZiAoZXJyKQorCQlnb3RvIGZhaWw7CisKKwlodWNfZnctPmxvYWRfc3Rh dHVzID0gSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUzsKKworCURSTV9ERUJVR19EUklWRVIoIiVz IGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxvYWQgJXNcbiIsCisJCWh1Y19mdy0+dWNfZndfcGF0aCwK KwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoaHVjX2Z3LT5mZXRjaF9zdGF0dXMpLAorCQlpbnRl bF91Y19md19zdGF0dXNfcmVwcihodWNfZnctPmxvYWRfc3RhdHVzKSk7CisKKwlyZXR1cm4gMDsK KworZmFpbDoKKwlpZiAoaHVjX2Z3LT5sb2FkX3N0YXR1cyA9PSBJTlRFTF9VQ19GSVJNV0FSRV9Q RU5ESU5HKQorCQlodWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfRkFJTDsK KworCURSTV9FUlJPUigiRmFpbGVkIHRvIGNvbXBsZXRlIEh1QyB1Q29kZSBsb2FkIHdpdGggcmV0 ICVkXG4iLCBlcnIpOworCisJcmV0dXJuIGVycjsKK30KKworLyoqCisgKiBpbnRlbF9odWNfZmlu aSgpIC0gY2xlYW4gdXAgcmVzb3VyY2VzIGFsbG9jYXRlZCBmb3IgSHVDCisgKiBAZGV2OiB0aGUg ZHJtIGRldmljZQorICoKKyAqIENsZWFucyB1cCBieSByZWxlYXNpbmcgdGhlIGh1YyBmaXJtd2Fy ZSBHRU0gb2JqLgorICovCit2b2lkIGludGVsX2h1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OworCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmRldl9wcml2LT5odWMuZnc7CisKKwlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJaWYgKGh1Y19mdy0+dWNfZndfb2JqKQor CQlpOTE1X2dlbV9vYmplY3RfcHV0KGh1Y19mdy0+dWNfZndfb2JqKTsKKwlodWNfZnctPnVjX2Z3 X29iaiA9IE5VTEw7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlodWNf ZnctPmZldGNoX3N0YXR1cyA9IElOVEVMX1VDX0ZJUk1XQVJFX05PTkU7Cit9CisKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF91Yy5oCmluZGV4IGFkMTQwZTIuLjU3YWVmNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dWMuaApAQCAtMjQsNiArMjQsOSBAQAogI2lmbmRlZiBfSU5URUxfVUNfSF8KICNkZWZpbmUgX0lO VEVMX1VDX0hfCiAKKyNkZWZpbmUgSFVDX1NUQVRVUzIgICAgICAgICAgICAgX01NSU8oMHhEM0Iw KQorI2RlZmluZSAgIEhVQ19GV19WRVJJRklFRCAgICAgICAoMTw8NykKKwogI2luY2x1ZGUgImlu dGVsX2d1Y19md2lmLmgiCiAjaW5jbHVkZSAiaTkxNV9ndWNfcmVnLmgiCiAjaW5jbHVkZSAiaW50 ZWxfcmluZ2J1ZmZlci5oIgpAQCAtMTc0LDYgKzE3NywxMyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjIHsK IAlzdHJ1Y3QgbXV0ZXggc2VuZF9tdXRleDsKIH07CiAKK3N0cnVjdCBpbnRlbF9odWMgeworCS8q IEdlbmVyaWMgdUMgZmlybXdhcmUgbWFuYWdlbWVudCAqLworCXN0cnVjdCBpbnRlbF91Y19mdyBm dzsKKworCS8qIEh1Qy1zcGVjaWZpYyBhZGRpdGlvbnMgKi8KK307CisKIC8qIGludGVsX3VjLmMg Ki8KIHZvaWQgaW50ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogYm9vbCBpbnRlbF9ndWNfcmVjdihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIHUzMiAqc3RhdHVzKTsKQEAgLTE5MCw2ICsyMDAsOSBAQCBleHRlcm4gdm9pZCBpbnRl bF9ndWNfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIGNv bnN0IGNoYXIgKmludGVsX3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVz IHN0YXR1cyk7CiBleHRlcm4gaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7CiBleHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCXN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncp OwordTMyIGludGVsX2d1Y193b3BjbV9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CiAKIC8qIGk5MTVfZ3VjX3N1Ym1pc3Npb24uYyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1p c3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpAQCAtMjA0LDQg KzIxNyw5IEBAIHZvaWQgaTkxNV9ndWNfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKIHZvaWQgaTkxNV9ndWNfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwogaW50IGk5MTVfZ3VjX2xvZ19jb250cm9sKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTY0IGNvbnRyb2xfdmFsKTsKIAorLyogaW50ZWxfaHVjX2xv YWRlci5jICovCit2b2lkIGludGVsX2h1Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cit2b2lkIGludGVsX2h1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwor aW50IGludGVsX2h1Y19sb2FkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisK ICNlbmRpZgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=