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: Wed, 30 Nov 2016 15:31:29 -0800 Message-ID: <1480548694-23000-4-git-send-email-anusha.srivatsa@intel.com> References: <1480548694-23000-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 mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC1156E5D6 for ; Wed, 30 Nov 2016 23:31:39 +0000 (UTC) In-Reply-To: <1480548694-23000-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 aXAKCkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpUZXN0ZWQt Ynk6IFhpYW5nIEhhaWhhbyA8aGFpaGFvLnhpYW5nQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTog QW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUGV0ZXIgQW50b2lu ZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2 aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAg ICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAg NCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmggICAgIHwgICAzICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8ICAgNiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaHVjLmggICAgICAgIHwgIDQyICsrKysrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9odWNfbG9hZGVyLmMgfCAyNjcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmggICAgICAgICB8ICAgMiAr CiA4IGZpbGVzIGNoYW5nZWQsIDMyNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQppbmRleCAzYzMwOTE2Li4wMWQ0ZjRiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQpAQCAtNTcsNiArNTcsNyBAQCBpOTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8gXAogIyBnZW5l cmFsLXB1cnBvc2UgbWljcm9jb250cm9sbGVyIChHdUMpIHN1cHBvcnQKIGk5MTUteSArPSBpbnRl bF91Yy5vIFwKIAkgIGludGVsX2d1Y19sb2FkZXIubyBcCisJICBpbnRlbF9odWNfbG9hZGVyLm8g XAogCSAgaTkxNV9ndWNfc3VibWlzc2lvbi5vCiAKICMgYXV0b2dlbmVyYXRlZCBudWxsIHJlbmRl ciBzdGF0ZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggOGRhYzI5OC4uMDc1ZDljZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC02MDMsNiArNjAzLDcgQEAgc3RhdGljIGludCBpOTE1 X2xvYWRfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJ Z290byBjbGVhbnVwX2lycTsKIAorCWludGVsX2h1Y19pbml0KGRldik7CiAJaW50ZWxfZ3VjX2lu aXQoZGV2KTsKIAogCXJldCA9IGk5MTVfZ2VtX2luaXQoZGV2KTsKQEAgLTYzMCw2ICs2MzEsNyBA QCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaWRsZSBoYXJkd2FyZTsgY29udGludWluZyB0byB1 bmxvYWQhXG4iKTsKIAlpOTE1X2dlbV9maW5pKGRldl9wcml2KTsKIGNsZWFudXBfaXJxOgorCWlu dGVsX2h1Y19maW5pKGRldik7CiAJaW50ZWxfZ3VjX2ZpbmkoZGV2KTsKIAlkcm1faXJxX3VuaW5z dGFsbChkZXYpOwogCWludGVsX3RlYXJkb3duX2dtYnVzKGRldik7CkBAIC0xMzI2LDcgKzEzMjgs NyBAQCB2b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJ LyogRmx1c2ggYW55IG91dHN0YW5kaW5nIHVucGluX3dvcmsuICovCiAJZHJhaW5fd29ya3F1ZXVl KGRldl9wcml2LT53cSk7Ci0KKwlpbnRlbF9odWNfZmluaShkZXYpOwogCWludGVsX2d1Y19maW5p KGRldik7CiAJaTkxNV9nZW1fZmluaShkZXZfcHJpdik7CiAJaW50ZWxfZmJjX2NsZWFudXBfY2Zi KGRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDI5N2FkMDMuLjhlZGZhZTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgImlu dGVsX2Jpb3MuaCIKICNpbmNsdWRlICJpbnRlbF9kcGxsX21nci5oIgogI2luY2x1ZGUgImludGVs X3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfaHVjLmgiCiAjaW5jbHVkZSAiaW50ZWxfbHJjLmgiCiAj aW5jbHVkZSAiaW50ZWxfcmluZ2J1ZmZlci5oIgogCkBAIC0xOTMzLDYgKzE5MzQsNyBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAlzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQ7CiAKKwlzdHJ1 Y3QgaW50ZWxfaHVjIGh1YzsKIAlzdHJ1Y3QgaW50ZWxfZ3VjIGd1YzsKIAogCXN0cnVjdCBpbnRl bF9jc3IgY3NyOwpAQCAtMjY5OCw3ICsyNzAwLDcgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAjZGVmaW5lIEhBU19HVUMoZGV2X3ByaXYpCSgo ZGV2X3ByaXYpLT5pbmZvLmhhc19ndWMpCiAjZGVmaW5lIEhBU19HVUNfVUNPREUoZGV2X3ByaXYp CShIQVNfR1VDKGRldl9wcml2KSkKICNkZWZpbmUgSEFTX0dVQ19TQ0hFRChkZXZfcHJpdikJKEhB U19HVUMoZGV2X3ByaXYpKQotCisjZGVmaW5lIEhBU19IVUNfVUNPREUoZGV2X3ByaXYpCShIQVNf R1VDKGRldl9wcml2KSkKICNkZWZpbmUgSEFTX1JFU09VUkNFX1NUUkVBTUVSKGRldl9wcml2KSAo KGRldl9wcml2KS0+aW5mby5oYXNfcmVzb3VyY2Vfc3RyZWFtZXIpCiAKICNkZWZpbmUgSEFTX1BP T0xFRF9FVShkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaGFzX3Bvb2xlZF9ldSkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgKaW5kZXggNWU2MzhmYy4uZjk4MjlmNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmgKQEAgLTYxLDkgKzYxLDEyIEBACiAjZGVmaW5lICAgRE1B X0FERFJFU1NfU1BBQ0VfR1RUCQkgICg4IDw8IDE2KQogI2RlZmluZSBETUFfQ09QWV9TSVpFCQkJ X01NSU8oMHhjMzEwKQogI2RlZmluZSBETUFfQ1RSTAkJCV9NTUlPKDB4YzMxNCkKKyNkZWZpbmUg ICBIVUNfVUtFUk5FTAkJCSAgKDE8PDkpCiAjZGVmaW5lICAgVU9TX01PVkUJCQkgICgxPDw0KQog I2RlZmluZSAgIFNUQVJUX0RNQQkJCSAgKDE8PDApCiAjZGVmaW5lIERNQV9HVUNfV09QQ01fT0ZG U0VUCQlfTU1JTygweGMzNDApCisjZGVmaW5lICAgSFVDX0xPQURJTkdfQUdFTlRfVkNSCQkgICgw PDwxKQorI2RlZmluZSAgIEhVQ19MT0FESU5HX0FHRU5UX0dVQwkJICAoMTw8MSkKICNkZWZpbmUg ICBHVUNfV09QQ01fT0ZGU0VUX1ZBTFVFCSAgMHg4MDAwMAkvKiA1MTJLQiAqLwogI2RlZmluZSBH VUNfTUFYX0lETEVfQ09VTlQJCV9NTUlPKDB4QzNFNCkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDU1N2Q0YjQuLjdjYTU1NTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTMwOSw4ICszMDksOCBAQCBzdGF0aWMgaW50IGd1 Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJSTkx NV9XUklURShETUFfQUREUl8xX0hJR0gsIERNQV9BRERSRVNTX1NQQUNFX1dPUENNKTsKIAogCS8q IEZpbmFsbHkgc3RhcnQgdGhlIERNQSAqLwotCUk5MTVfV1JJVEUoRE1BX0NUUkwsIF9NQVNLRURf QklUX0VOQUJMRShVT1NfTU9WRSB8IFNUQVJUX0RNQSkpOwotCisJSTkxNV9XUklURShETUFfQ1RS TCwgX01BU0tFRF9CSVRfRU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSB8CisJCV9NQVNLRURf QklUX0RJU0FCTEUoSFVDX1VLRVJORUwpKTsKIAkvKgogCSAqIFdhaXQgZm9yIHRoZSBETUEgdG8g Y29tcGxldGUgJiB0aGUgR3VDIHRvIHN0YXJ0IHVwLgogCSAqIE5COiBEb2NzIHJlY29tbWVuZCBu b3QgdXNpbmcgdGhlIGludGVycnVwdCBmb3IgY29tcGxldGlvbi4KQEAgLTMzNCw3ICszMzQsNyBA QCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHUzMiBndWNfd29wY21fc2l6ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit1MzIgZ3VjX3dvcGNtX3NpemUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXUzMiB3b3BjbV9zaXplID0gR1VD X1dPUENNX1RPUDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVj LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4xZGQxOGM1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaHVjLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCDC qSAyMDE2IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cisg KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4g VEhFIFNPRlRXQVJFLgorICoKKyAqLworI2lmbmRlZiBfSU5URUxfSFVDX0hfCisjZGVmaW5lIF9J TlRFTF9IVUNfSF8KKworI2luY2x1ZGUgImludGVsX3VjLmgiCisKKyNkZWZpbmUgSFVDX1NUQVRV UzIJCV9NTUlPKDB4RDNCMCkKKyNkZWZpbmUgICBIVUNfRldfVkVSSUZJRUQJKDE8PDcpCisKK3N0 cnVjdCBpbnRlbF9odWMgeworCS8qIEdlbmVyaWMgdUMgZmlybXdhcmUgbWFuYWdlbWVudCAqLwor CXN0cnVjdCBpbnRlbF91Y19mdyBodWNfZnc7CisKKwkvKiBIdUMtc3BlY2lmaWMgYWRkaXRpb25z ICovCit9OworCit2b2lkIGludGVsX2h1Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwor dm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2ludCBpbnRlbF9o dWNfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaHVjX2xvYWRlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjY2M2ZjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o dWNfbG9hZGVyLmMKQEAgLTAsMCArMSwyNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBJ bnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdy YXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZU V0FSRS4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgImk5 MTVfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfaHVjLmgiCisKKy8qKgorICogRE9DOiBIdUMgRmly bXdhcmUKKyAqCisgKiBNb3RpdmF0aW9uOgorICogR0VOOSBpbnRyb2R1Y2VzIGEgbmV3IGRlZGlj YXRlZCBmaXJtd2FyZSBmb3IgdXNhZ2UgaW4gbWVkaWEgSEVWQyAoSGlnaAorICogRWZmaWNpZW5j eSBWaWRlbyBDb2RpbmcpIG9wZXJhdGlvbnMuIFVzZXJzcGFjZSBjYW4gdXNlIHRoZSBmaXJtd2Fy ZQorICogY2FwYWJpbGl0aWVzIGJ5IGFkZGluZyBIdUMgc3BlY2lmaWMgY29tbWFuZHMgdG8gYmF0 Y2ggYnVmZmVycy4KKyAqCisgKiBJbXBsZW1lbnRhdGlvbjoKKyAqIFRoZSBzYW1lIGZpcm13YXJl IGxvYWRlciBpcyB1c2VkIGFzIHRoZSBHdUMuIEhvd2V2ZXIsIHRoZSBhY3R1YWwKKyAqIGxvYWRp bmcgdG8gSFcgaXMgZGVmZXJyZWQgdW50aWwgR0VNIGluaXRpYWxpemF0aW9uIGlzIGRvbmUuCisg KgorICogTm90ZSB0aGF0IEh1QyBmaXJtd2FyZSBsb2FkaW5nIG11c3QgYmUgZG9uZSBiZWZvcmUg R3VDIGxvYWRpbmcuCisgKi8KKworI2RlZmluZSBTS0xfRldfTUFKT1IgMDEKKyNkZWZpbmUgU0tM X0ZXX01JTk9SIDA3CisjZGVmaW5lIFNLTF9CTERfTlVNIDEzOTgKKworI2RlZmluZSBIVUNfRldf UEFUSChwbGF0Zm9ybSwgbWFqb3IsIG1pbm9yLCBibGRfbnVtKSBcCisJImk5MTUvIiBfX3N0cmlu Z2lmeShwbGF0Zm9ybSkgIl9odWNfdmVyIiBfX3N0cmluZ2lmeShtYWpvcikgIl8iIFwKKwlfX3N0 cmluZ2lmeShtaW5vcikgIl8iIF9fc3RyaW5naWZ5KGJsZF9udW0pICIuYmluIgorCisjZGVmaW5l IEk5MTVfU0tMX0hVQ19VQ09ERSBIVUNfRldfUEFUSChza2wsIFNLTF9GV19NQUpPUiwgXAorCVNL TF9GV19NSU5PUiwgU0tMX0JMRF9OVU0pCitNT0RVTEVfRklSTVdBUkUoSTkxNV9TS0xfSFVDX1VD T0RFKTsKKworLyoqCisgKiBodWNfdWNvZGVfeGZlcigpIC0gRE1BJ3MgdGhlIGZpcm13YXJlCisg KiBAZGV2X3ByaXY6IHRoZSBkcm0gZGV2aWNlCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0 aGUgZ2VtIG9iamVjdCBjb250YWluaW5nIHRoZSBmaXJtd2FyZSwgc2V0cyB1cCB0aGUgRE1BCisg KiBlbmdpbmUgTU1JTywgdHJpZ2dlcnMgdGhlIERNQSBvcGVyYXRpb24gYW5kIHdhaXRzIGZvciBp dCB0byBmaW5pc2guCisgKgorICogVHJhbnNmZXIgdGhlIGZpcm13YXJlIGltYWdlIHRvIFJBTSBm b3IgZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCisgKgorICogUmV0dXJuOiAwIG9u IHN1Y2Nlc3MsIG5vbi16ZXJvIG9uIGZhaWx1cmUKKyAqLworCitzdGF0aWMgaW50IGh1Y191Y29k ZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50 ZWxfdWNfZncgKmh1Y19mdyA9ICZkZXZfcHJpdi0+aHVjLmh1Y19mdzsKKwlzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKKwl1bnNpZ25lZCBsb25nIG9mZnNldCA9IDA7CisJdTMyIHNpemU7CisJaW50IHJl dDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihodWNfZnctPnVj X2Z3X29iaiwgZmFsc2UpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigic2V0LWRv bWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJdm1hID0gaTkx NV9nZW1fb2JqZWN0X2dndHRfcGluKGh1Y19mdy0+dWNfZndfb2JqLCBOVUxMLCAwLCAwLCAwKTsK KwlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigicGluIGZhaWxlZCAlZFxu IiwgKGludClQVFJfRVJSKHZtYSkpOworCQlyZXR1cm4gUFRSX0VSUih2bWEpOworCX0KKworCS8q IEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQgR3VDIHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRv IEdUVC4gKi8KKwlJOTE1X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwor CisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwor CisJLyogaW5pdCBXT1BDTSAqLworCUk5MTVfV1JJVEUoR1VDX1dPUENNX1NJWkUsIGd1Y193b3Bj bV9zaXplKGRldl9wcml2KSk7CisJSTkxNV9XUklURShETUFfR1VDX1dPUENNX09GRlNFVCwgR1VD X1dPUENNX09GRlNFVF9WQUxVRSB8CisJCQlIVUNfTE9BRElOR19BR0VOVF9HVUMpOworCisJLyog U2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBmb3IgdGhlIHVDb2RlICovCisJb2Zmc2V0ID0gaTkxNV9n Z3R0X29mZnNldCh2bWEpICsgaHVjX2Z3LT5oZWFkZXJfb2Zmc2V0OworCUk5MTVfV1JJVEUoRE1B X0FERFJfMF9MT1csIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7CisJSTkxNV9XUklURShETUFfQURE Ul8wX0hJR0gsIHVwcGVyXzMyX2JpdHMob2Zmc2V0KSAmIDB4RkZGRik7CisKKwkvKiBIYXJkd2Fy ZSBkb2Vzbid0IGxvb2sgYXQgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgSHVDLiBTZXQgaXQgdG8g MCwKKwkgKiBidXQgc3RpbGwgcHJvZ3JhbSB0aGUgY29ycmVjdCBhZGRyZXNzIHNwYWNlLgorCSAq LworCUk5MTVfV1JJVEUoRE1BX0FERFJfMV9MT1csIDApOworCUk5MTVfV1JJVEUoRE1BX0FERFJf MV9ISUdILCBETUFfQUREUkVTU19TUEFDRV9XT1BDTSk7CisKKwlzaXplID0gaHVjX2Z3LT5oZWFk ZXJfc2l6ZSArIGh1Y19mdy0+dWNvZGVfc2l6ZTsKKwlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUs IHNpemUpOworCisJLyogU3RhcnQgdGhlIERNQSAqLworCUk5MTVfV1JJVEUoRE1BX0NUUkwsIF9N QVNLRURfQklUX0VOQUJMRShIVUNfVUtFUk5FTCB8IFNUQVJUX0RNQSkpOworCisJLyogV2FpdCBm b3IgRE1BIHRvIGZpbmlzaCAqLworCXJldCA9IHdhaXRfZm9yKChJOTE1X1JFQUQoRE1BX0NUUkwp ICYgU1RBUlRfRE1BKSA9PSAwLCAxMDApOworCisJRFJNX0RFQlVHX0RSSVZFUigiSHVDIERNQSB0 cmFuc2ZlciB3YWl0IG92ZXIgd2l0aCByZXQgJWRcbiIsIHJldCk7CisKKwlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7CisKKwkvKgorCSAqIFdlIGtl ZXAgdGhlIG9iamVjdCBwYWdlcyBmb3IgcmV1c2UgZHVyaW5nIHJlc3VtZS4gQnV0IHdlIGNhbiB1 bnBpbiBpdAorCSAqIG5vdyB0aGF0IERNQSBoYXMgY29tcGxldGVkLCBzbyBpdCBkb2Vzbid0IGNv bnRpbnVlIHRvIHRha2UgdXAgc3BhY2UuCisJICovCisJaTkxNV92bWFfdW5waW4odm1hKTsKKwor CXJldHVybiByZXQ7Cit9CisKKy8qKgorICogaW50ZWxfaHVjX2luaXQoKSAtIGluaXRpYXRlIEh1 QyBmaXJtd2FyZSBsb2FkaW5nIHJlcXVlc3QKKyAqIEBkZXY6IHRoZSBkcm0gZGV2aWNlCisgKgor ICogQ2FsbGVkIGVhcmx5IGR1cmluZyBkcml2ZXIgbG9hZCwgYnV0IGFmdGVyIEdFTSBpcyBpbml0 aWFsaXNlZC4gVGhlIGxvYWRpbmcKKyAqIHdpbGwgY29udGludWUgb25seSB3aGVuIGRyaXZlciBl eHBsaWNpdGx5IHNwZWNpZnkgZmlybXdhcmUgbmFtZSBhbmQgdmVyc2lvbi4KKyAqIEFsbCBvdGhl ciBjYXNlcyBhcmUgY29uc2lkZXJlZCBhcyBVQ19GSVJNV0FSRV9OT05FIGVpdGhlciBiZWNhdXNl IEhXIGlzIG5vdAorICogY2FwYWJsZSBvciBkcml2ZXIgeWV0IHN1cHBvcnQgaXQuIEFuZCB0aGVy ZSB3aWxsIGJlIG5vIGVycm9yIG1lc3NhZ2UgZm9yCisgKiBVQ19GSVJNV0FSRV9OT05FIGNhc2Vz LgorICoKKyAqIFRoZSBETUEtY29weWluZyB0byBIVyBpcyBkb25lIGxhdGVyIHdoZW4gaW50ZWxf aHVjX2xvYWQoKSBpcyBjYWxsZWQuCisgKi8KK3ZvaWQgaW50ZWxfaHVjX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CisJc3RydWN0IGludGVsX2h1YyAqaHVjID0gJmRldl9wcml2LT5odWM7CisJ c3RydWN0IGludGVsX3VjX2Z3ICpodWNfZncgPSAmaHVjLT5odWNfZnc7CisJY29uc3QgY2hhciAq ZndfcGF0aCA9IE5VTEw7CisKKwlodWNfZnctPnVjX2RldiA9IGRldjsKKwlodWNfZnctPnVjX2Z3 X3BhdGggPSBOVUxMOworCWh1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfTk9ORTsK KwlodWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfTk9ORTsKKwlodWNfZnctPmZ3X3R5 cGUgPSBVQ19GV19UWVBFX0hVQzsKKworCWlmICghSEFTX0hVQ19VQ09ERShkZXZfcHJpdikpCisJ CXJldHVybjsKKworCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkgeworCQlmd19wYXRoID0gSTkx NV9TS0xfSFVDX1VDT0RFOworCQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBTS0xfRldfTUFK T1I7CisJCWh1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IFNLTF9GV19NSU5PUjsKKwl9CisKKwlo dWNfZnctPnVjX2Z3X3BhdGggPSBmd19wYXRoOworCWh1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNf RklSTVdBUkVfUEVORElORzsKKworCURSTV9ERUJVR19EUklWRVIoIkh1QyBmaXJtd2FyZSBwZW5k aW5nLCBwYXRoICVzXG4iLCBmd19wYXRoKTsKKworCWludGVsX3VjX2Z3X2ZldGNoKGRldiwgaHVj X2Z3KTsKK30KKworLyoqCisgKiBpbnRlbF9odWNfbG9hZCgpIC0gbG9hZCBIdUMgdUNvZGUgdG8g ZGV2aWNlCisgKiBAZGV2OiB0aGUgZHJtIGRldmljZQorICoKKyAqIENhbGxlZCBmcm9tIGdlbV9p bml0X2h3KCkgZHVyaW5nIGRyaXZlciBsb2FkaW5nIGFuZCBhbHNvIGFmdGVyIGEgR1BVIHJlc2V0 LgorICogQmUgbm90ZSB0aGF0IEh1QyBsb2FkaW5nIG11c3QgYmUgZG9uZSBiZWZvcmUgR3VDIGxv YWRpbmcuCisgKgorICogVGhlIGZpcm13YXJlIGltYWdlIHNob3VsZCBoYXZlIGFscmVhZHkgYmVl biBmZXRjaGVkIGludG8gbWVtb3J5IGJ5IHRoZQorICogZWFybGllciBjYWxsIHRvIGludGVsX2h1 Y19pbml0KCksIHNvIGhlcmUgd2UgbmVlZCBvbmx5IGNoZWNrIHRoYXQKKyAqIGlzIHN1Y2NlZWRl ZCwgYW5kIHRoZW4gdHJhbnNmZXIgdGhlIGltYWdlIHRvIHRoZSBoL3cuCisgKgorICogUmV0dXJu Oglub24temVybyBjb2RlIG9uIGVycm9yCisgKi8KK2ludCBpbnRlbF9odWNfbG9hZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZkZXZfcHJpdi0+ aHVjLmh1Y19mdzsKKwlpbnQgZXJyOworCisJaWYgKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzID09IFVD X0ZJUk1XQVJFX05PTkUpCisJCXJldHVybiAwOworCisJRFJNX0RFQlVHX0RSSVZFUigiJXMgZncg c3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKKwkJaHVjX2Z3LT51Y19md19wYXRoLAorCQlp bnRlbF91Y19md19zdGF0dXNfcmVwcihodWNfZnctPmZldGNoX3N0YXR1cyksCisJCWludGVsX3Vj X2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+bG9hZF9zdGF0dXMpKTsKKworCWlmIChodWNfZnctPmZl dGNoX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9TVUNDRVNTICYmCisJICAgIGh1Y19mdy0+bG9hZF9z dGF0dXMgPT0gVUNfRklSTVdBUkVfRkFJTCkKKwkJcmV0dXJuIC1FTk9FWEVDOworCisJaHVjX2Z3 LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1BFTkRJTkc7CisKKwlzd2l0Y2ggKGh1Y19mdy0+ ZmV0Y2hfc3RhdHVzKSB7CisJY2FzZSBVQ19GSVJNV0FSRV9GQUlMOgorCQkvKiBzb21ldGhpbmcg d2VudCB3cm9uZyA6KCAqLworCQllcnIgPSAtRUlPOworCQlnb3RvIGZhaWw7CisKKwljYXNlIFVD X0ZJUk1XQVJFX05PTkU6CisJY2FzZSBVQ19GSVJNV0FSRV9QRU5ESU5HOgorCWRlZmF1bHQ6CisJ CS8qICJjYW4ndCBoYXBwZW4iICovCisJCVdBUk5fT05DRSgxLCAiSHVDIGZ3ICVzIGludmFsaWQg ZmV0Y2hfc3RhdHVzICVzIFslZF1cbiIsCisJCQlodWNfZnctPnVjX2Z3X3BhdGgsCisJCQlpbnRl bF91Y19md19zdGF0dXNfcmVwcihodWNfZnctPmZldGNoX3N0YXR1cyksCisJCQlodWNfZnctPmZl dGNoX3N0YXR1cyk7CisJCWVyciA9IC1FTlhJTzsKKwkJZ290byBmYWlsOworCisJY2FzZSBVQ19G SVJNV0FSRV9TVUNDRVNTOgorCQlicmVhazsKKwl9CisKKwllcnIgPSBodWNfdWNvZGVfeGZlcihk ZXZfcHJpdik7CisJaWYgKGVycikKKwkJZ290byBmYWlsOworCisJaHVjX2Z3LT5sb2FkX3N0YXR1 cyA9IFVDX0ZJUk1XQVJFX1NVQ0NFU1M7CisKKwlEUk1fREVCVUdfRFJJVkVSKCIlcyBmdyBzdGF0 dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAorCQlodWNfZnctPnVjX2Z3X3BhdGgsCisJCWludGVs X3VjX2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNfZndf c3RhdHVzX3JlcHIoaHVjX2Z3LT5sb2FkX3N0YXR1cykpOworCisJcmV0dXJuIDA7CisKK2ZhaWw6 CisJaWYgKGh1Y19mdy0+bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVfUEVORElORykKKwkJaHVj X2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7CisKKwlEUk1fRVJST1IoIkZhaWxl ZCB0byBjb21wbGV0ZSBIdUMgdUNvZGUgbG9hZCB3aXRoIHJldCAlZFxuIiwgZXJyKTsKKworCXJl dHVybiBlcnI7Cit9CisKKy8qKgorICogaW50ZWxfaHVjX2ZpbmkoKSAtIGNsZWFuIHVwIHJlc291 cmNlcyBhbGxvY2F0ZWQgZm9yIEh1QworICogQGRldjogdGhlIGRybSBkZXZpY2UKKyAqCisgKiBD bGVhbnMgdXAgYnkgcmVsZWFzaW5nIHRoZSBodWMgZmlybXdhcmUgR0VNIG9iai4KKyAqLwordm9p ZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfdWNf ZncgKmh1Y19mdyA9ICZkZXZfcHJpdi0+aHVjLmh1Y19mdzsKKworCW11dGV4X2xvY2soJmRldi0+ c3RydWN0X211dGV4KTsKKwlpZiAoaHVjX2Z3LT51Y19md19vYmopCisJCWk5MTVfZ2VtX29iamVj dF9wdXQoaHVjX2Z3LT51Y19md19vYmopOworCWh1Y19mdy0+dWNfZndfb2JqID0gTlVMTDsKKwlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCWh1Y19mdy0+ZmV0Y2hfc3RhdHVz ID0gVUNfRklSTVdBUkVfTk9ORTsKK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgKaW5kZXggMTYx NmNhYy4uOTMyMTIyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCkBAIC0xOTEsNiArMTkxLDgg QEAgZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBl eHRlcm4gY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91Y19m d19zdGF0dXMgc3RhdHVzKTsKIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7CiBleHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cit2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwordTMyIGd1Y193b3BjbV9zaXplKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAKIC8qIGk5MTVfZ3VjX3N1Ym1pc3Npb24u YyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=