From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v11 08/42] drm/i915: MEI interface definition Date: Thu, 7 Feb 2019 02:33:57 +0530 Message-ID: <1549487071-15343-9-git-send-email-ramalingam.c@intel.com> References: <1549487071-15343-1-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1549487071-15343-1-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel.vetter@ffwll.ch, tomas.winkler@intel.com, uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org RGVmaW5pbmcgdGhlIG1laS1pOTE1IGludGVyZmFjZSBmdW5jdGlvbnMgYW5kIGluaXRpYWxpemF0 aW9uIG9mCnRoZSBpbnRlcmZhY2UuCgp2MjoKICBBZGp1c3QgdG8gdGhlIG5ldyBpbnRlcmZhY2Ug Y2hhbmdlcy4gW1RvbWFzXQogIEFkZGVkIGZ1cnRoZXIgZGVidWcgbG9ncyBmb3IgdGhlIGZhaWx1 cmVzIGF0IE1FSSBpL2YuCiAgcG9ydCBpbiBoZGNwX3BvcnQgZGF0YSBpcyBlcXVpcHBlZCB0byBo YW5kbGUgLXZlIHZhbHVlcy4KdjM6CiAgbWVpIGNvbXAgaXMgbWF0Y2hlZCBmb3IgZ2xvYmFsIGk5 MTUgY29tcCBtYXN0ZXIuIFtEYW5pZWxdCiAgSW4gaGRjcF9zaGltIGhkY3BfcHJvdG9jb2woKSBp cyByZXBsYWNlZCB3aXRoIGNvbnN0IHZhcmlhYmxlLiBbRGFuaWVsXQogIG1laSB3cmFwcGVycyBh cmUgYWRqdXN0ZWQgYXMgcGVyIHRoZSBpL2YgY2hhbmdlIFtEYW5pZWxdCnY0OgogIHBvcnQgaW5p dGlhbGl6YXRpb24gaXMgZG9uZSBvbmx5IGF0IGhkY3AyX2luaXQgb25seSBbRGFudmV0XQp2NToK ICBJOTE1IHJlZ2lzdGVycyBhIHN1YmNvbXBvbmVudCB0byBiZSBtYXRjaGVkIHdpdGggbWVpX2hk Y3AgW0RhbmllbF0KdjY6CiAgSERDUF9kaXNhYmxlIGZvciBhbGwgY29ubmVjdG9ycyBpbmNhc2Ug b2YgY29tcF91bmJpbmQuCiAgVGVhciBkb3duIEhEQ1AgY29tcCBpbnRlcmZhY2UgYXQgaTkxNV91 bmxvYWQgW0RhbmllbF0KClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5j QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICB8 ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICB8ICAgNyArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb25uZWN0b3IuYyB8ICAgMiArCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZGNwLmMgICAgICB8IDQyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KIGluY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgICAgIHwgICAzICsKIDYgZmls ZXMgY2hhbmdlZCwgNDQxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwppbmRleCA3ZGU5MDcwMWY2ZjEuLjljNDIxOGI1ZDE1MyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCkBAIC05MDQsNiArOTA0LDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9p bml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF9pbml0 KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwogCW11dGV4X2luaXQoJmRldl9wcml2LT53bS53bV9tdXRl eCk7CiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJbXV0ZXhfaW5pdCgmZGV2 X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CiAKIAlpOTE1X21lbWNweV9pbml0X2Vhcmx5KGRldl9w cml2KTsKIAlpbnRlbF9ydW50aW1lX3BtX2luaXRfZWFybHkoZGV2X3ByaXYpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKaW5kZXggYTIyOTMxNTJjYjZhLi5lM2QwMzBiNzNiNWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fdXRpbC5o PgogI2luY2x1ZGUgPGRybS9kcm1fZHNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3Iu aD4KKyNpbmNsdWRlIDxkcm0vaTkxNV9tZWlfaGRjcF9pbnRlcmZhY2UuaD4KIAogI2luY2x1ZGUg Imk5MTVfZml4ZWQuaCIKICNpbmNsdWRlICJpOTE1X3BhcmFtcy5oIgpAQCAtMjA0Myw2ICsyMDQ0 LDEyIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBpOTE1X3BtdSBwbXU7 CiAKKwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpoZGNwX21hc3RlcjsKKwlib29sIGhk Y3BfY29tcF9hZGRlZDsKKworCS8qIE11dGV4IHRvIHByb3RlY3QgdGhlIGFib3ZlIGhkY3AgY29t cG9uZW50IHJlbGF0ZWQgdmFsdWVzLiAqLworCXN0cnVjdCBtdXRleCBoZGNwX2NvbXBfbXV0ZXg7 CisKIAkvKgogCSAqIE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFk ZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCiAJICogd2lsbCBiZSByZWplY3RlZC4gSW5zdGVhZCBs b29rIGZvciBhIGJldHRlciBwbGFjZS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29ubmVjdG9y LmMKaW5kZXggZWUxNjc1ODc0N2M1Li42NmVkM2VlNTk5OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Nvbm5lY3Rvci5jCkBAIC04OCw2ICs4OCw4IEBAIHZvaWQgaW50ZWxfY29ubmVjdG9y X2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAogCWtmcmVlKGludGVs X2Nvbm5lY3Rvci0+ZGV0ZWN0X2VkaWQpOwogCisJaW50ZWxfaGRjcF9jbGVhbnVwKGludGVsX2Nv bm5lY3Rvcik7CisKIAlpZiAoIUlTX0VSUl9PUl9OVUxMKGludGVsX2Nvbm5lY3Rvci0+ZWRpZCkp CiAJCWtmcmVlKGludGVsX2Nvbm5lY3Rvci0+ZWRpZCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKaW5kZXggMDMwZDk2MjY5N2RkLi5iNWM1NGM2ODgyNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CiAjaW5j bHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2lu Y2x1ZGUgPGRybS9pOTE1X21laV9oZGNwX2ludGVyZmFjZS5oPgogI2luY2x1ZGUgPG1lZGlhL2Nl Yy1ub3RpZmllci5oPgogCiBzdHJ1Y3QgZHJtX3ByaW50ZXI7CkBAIC0zODUsNiArMzg2LDkgQEAg c3RydWN0IGludGVsX2hkY3Bfc2hpbSB7CiAJLyogRGV0ZWN0cyBwYW5lbCdzIGhkY3AgY2FwYWJp bGl0eS4gVGhpcyBpcyBvcHRpb25hbCBmb3IgSERNSS4gKi8KIAlpbnQgKCpoZGNwX2NhcGFibGUp KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCQkJICAgIGJvb2wg KmhkY3BfY2FwYWJsZSk7CisKKwkvKiBIRENQIGFkYXB0YXRpb24oRFAvSERNSSkgcmVxdWlyZWQg b24gdGhlIHBvcnQgKi8KKwllbnVtIGhkY3Bfd2lyZWRfcHJvdG9jb2wgcHJvdG9jb2w7CiB9Owog CiBzdHJ1Y3QgaW50ZWxfaGRjcCB7CkBAIC00MDUsNiArNDA5LDcgQEAgc3RydWN0IGludGVsX2hk Y3AgewogCSAqIGNvbnRlbnQgY2FuIGZsb3cgb25seSB0aHJvdWdoIGEgbGluayBwcm90ZWN0ZWQg YnkgSERDUDIuMi4KIAkgKi8KIAl1OCBjb250ZW50X3R5cGU7CisJc3RydWN0IGhkY3BfcG9ydF9k YXRhIHBvcnRfZGF0YTsKIH07CiAKIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgewpAQCAtMjA3MCw2 ICsyMDc1LDcgQEAgaW50IGludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpOwogaW50IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpOwogYm9vbCBpc19oZGNwX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKIGJvb2wgaW50ZWxfaGRjcF9j YXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cit2b2lkIGludGVsX2hk Y3BfY2xlYW51cChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwogCiAvKiBpbnRl bF9wc3IuYyAqLwogI2RlZmluZSBDQU5fUFNSKGRldl9wcml2KSAoSEFTX1BTUihkZXZfcHJpdikg JiYgZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMK aW5kZXggN2IxMDk3ZDc5ZmI4Li43OWY4OTc5YjkxNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZGNwLmMKQEAgLTcsOCArNywxMCBAQAogICovCiAKICNpbmNsdWRlIDxkcm0vZHJtX2hkY3AuaD4K KyNpbmNsdWRlIDxkcm0vaTkxNV9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4K ICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4K IAogI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImk5MTVfcmVnLmgiCkBAIC04MzIs NiArODM0LDM2MCBAQCBib29sIGlzX2hkY3Bfc3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJcmV0dXJuIElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSAmJiBwb3J0IDwgUE9SVF9FOwogfQogCitzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51 c2VkKSkgaW50CitoZGNwMl9wcmVwYXJlX2FrZV9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciwKKwkJICAgICAgIHN0cnVjdCBoZGNwMl9ha2VfaW5pdCAqYWtlX2RhdGEpCit7 CisJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2Rh dGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0 b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOworCWlu dCByZXQ7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwljb21w ID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVyOworCisJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsK KwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwkJcmV0dXJuIC1F SU5WQUw7CisJfQorCisJcmV0ID0gY29tcC0+b3BzLT5pbml0aWF0ZV9oZGNwMl9zZXNzaW9uKGNv bXAtPm1laV9kZXYsIGRhdGEsIGFrZV9kYXRhKTsKKwlpZiAocmV0KQorCQlEUk1fREVCVUdfS01T KCJQcmVwYXJlX2FrZV9pbml0IGZhaWxlZC4gJWRcbiIsIHJldCk7CisJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKK2hkY3AyX3ZlcmlmeV9yeF9jZXJ0X3ByZXBhcmVf a20oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCXN0cnVjdCBoZGNwMl9h a2Vfc2VuZF9jZXJ0ICpyeF9jZXJ0LAorCQkJCWJvb2wgKnBhaXJlZCwKKwkJCQlzdHJ1Y3QgaGRj cDJfYWtlX25vX3N0b3JlZF9rbSAqZWtfcHViX2ttLAorCQkJCXNpemVfdCAqbXNnX3N6KQorewor CXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRh OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9y LT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKKwlpbnQg cmV0OworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisJY29tcCA9 IGRldl9wcml2LT5oZGNwX21hc3RlcjsKKworCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7CisJ CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCXJldCA9IGNvbXAtPm9wcy0+dmVyaWZ5X3JlY2VpdmVyX2NlcnRfcHJlcGFy ZV9rbShjb21wLT5tZWlfZGV2LCBkYXRhLAorCQkJCQkJCSByeF9jZXJ0LCBwYWlyZWQsCisJCQkJ CQkJIGVrX3B1Yl9rbSwgbXNnX3N6KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFQlVHX0tNUygi VmVyaWZ5IHJ4X2NlcnQgZmFpbGVkLiAlZFxuIiwgcmV0KTsKKwltdXRleF91bmxvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIF9fYXR0 cmlidXRlX18oKHVudXNlZCkpIGludAoraGRjcDJfdmVyaWZ5X2hwcmltZShzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsCisJCSAgICBzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfaHByaW1l ICpyeF9ocHJpbWUpCit7CisJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rv ci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFz dGVyICpjb21wOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21w X211dGV4KTsKKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVyOworCisJaWYgKCFjb21wIHx8 ICFjb21wLT5vcHMpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4 KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gY29tcC0+b3BzLT52ZXJpZnlfaHBy aW1lKGNvbXAtPm1laV9kZXYsIGRhdGEsIHJ4X2hwcmltZSk7CisJaWYgKHJldCA8IDApCisJCURS TV9ERUJVR19LTVMoIlZlcmlmeSBocHJpbWUgZmFpbGVkLiAlZFxuIiwgcmV0KTsKKwltdXRleF91 bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKwor c3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAoraGRjcDJfc3RvcmVfcGFpcmluZ19p bmZvKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCSBzdHJ1Y3QgaGRjcDJf YWtlX3NlbmRfcGFpcmluZ19pbmZvICpwYWlyaW5nX2luZm8pCit7CisJc3RydWN0IGhkY3BfcG9y dF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlz dHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOworCWludCByZXQ7CisKKwltdXRleF9s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwljb21wID0gZGV2X3ByaXYtPmhkY3Bf bWFzdGVyOworCisJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsKKwkJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0 ID0gY29tcC0+b3BzLT5zdG9yZV9wYWlyaW5nX2luZm8oY29tcC0+bWVpX2RldiwgZGF0YSwgcGFp cmluZ19pbmZvKTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFQlVHX0tNUygiU3RvcmUgcGFpcmlu ZyBpbmZvIGZhaWxlZC4gJWRcbiIsIHJldCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRj cF9jb21wX211dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBfX2F0dHJpYnV0ZV9f KCh1bnVzZWQpKSBpbnQKK2hkY3AyX3ByZXBhcmVfbGNfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsCisJCSAgICAgIHN0cnVjdCBoZGNwMl9sY19pbml0ICpsY19pbml0KQor eworCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9k YXRhOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVj dG9yLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKKwlp bnQgcmV0OworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisJY29t cCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKKworCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7 CisJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisJCXJldHVybiAt RUlOVkFMOworCX0KKworCXJldCA9IGNvbXAtPm9wcy0+aW5pdGlhdGVfbG9jYWxpdHlfY2hlY2so Y29tcC0+bWVpX2RldiwgZGF0YSwgbGNfaW5pdCk7CisJaWYgKHJldCA8IDApCisJCURSTV9ERUJV R19LTVMoIlByZXBhcmUgbGNfaW5pdCBmYWlsZWQuICVkXG4iLCByZXQpOworCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50CitoZGNwMl92ZXJpZnlfbHByaW1lKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgIHN0cnVjdCBoZGNwMl9sY19zZW5k X2xwcmltZSAqcnhfbHByaW1lKQoreworCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZj b25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfaGRjcF9j b21wX21hc3RlciAqY29tcDsKKwlpbnQgcmV0OworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhk Y3BfY29tcF9tdXRleCk7CisJY29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKKworCWlmICgh Y29tcCB8fCAhY29tcC0+b3BzKSB7CisJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29t cF9tdXRleCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldCA9IGNvbXAtPm9wcy0+dmVy aWZ5X2xwcmltZShjb21wLT5tZWlfZGV2LCBkYXRhLCByeF9scHJpbWUpOworCWlmIChyZXQgPCAw KQorCQlEUk1fREVCVUdfS01TKCJWZXJpZnkgTF9QcmltZSBmYWlsZWQuICVkXG4iLCByZXQpOwor CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKK2ludCBoZGNwMl9wcmVwYXJl X3NrZXkoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkgICAgICAgc3RydWN0 IGhkY3AyX3NrZV9zZW5kX2VrcyAqc2tlX2RhdGEpCit7CisJc3RydWN0IGhkY3BfcG9ydF9kYXRh ICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3Qg aTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVy OworCisJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+aGRjcF9jb21wX211dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gY29t cC0+b3BzLT5nZXRfc2Vzc2lvbl9rZXkoY29tcC0+bWVpX2RldiwgZGF0YSwgc2tlX2RhdGEpOwor CWlmIChyZXQgPCAwKQorCQlEUk1fREVCVUdfS01TKCJHZXQgc2Vzc2lvbiBrZXkgZmFpbGVkLiAl ZFxuIiwgcmV0KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwor CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAor aGRjcDJfdmVyaWZ5X3JlcF90b3BvbG9neV9wcmVwYXJlX2FjayhzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsCisJCQkJICAgICAgc3RydWN0IGhkY3AyX3JlcF9zZW5kX3JlY2VpdmVy aWRfbGlzdAorCQkJCQkJCQkqcmVwX3RvcG9sb2d5LAorCQkJCSAgICAgIHN0cnVjdCBoZGNwMl9y ZXBfc2VuZF9hY2sgKnJlcF9zZW5kX2FjaykKK3sKKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRh dGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVjdCBpOTE1 X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOworCWNvbXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7CisK KwlpZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgeworCQltdXRleF91bmxvY2soJmRldl9wcml2LT5o ZGNwX2NvbXBfbXV0ZXgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBjb21wLT5v cHMtPnJlcGVhdGVyX2NoZWNrX2Zsb3dfcHJlcGFyZV9hY2soY29tcC0+bWVpX2RldiwgZGF0YSwK KwkJCQkJCQkgcmVwX3RvcG9sb2d5LAorCQkJCQkJCSByZXBfc2VuZF9hY2spOworCWlmIChyZXQg PCAwKQorCQlEUk1fREVCVUdfS01TKCJWZXJpZnkgcmVwIHRvcG9sb2d5IGZhaWxlZC4gJWRcbiIs IHJldCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKworCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKK2hkY3Ay X3ZlcmlmeV9tcHJpbWUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkgICAg c3RydWN0IGhkY3AyX3JlcF9zdHJlYW1fcmVhZHkgKnN0cmVhbV9yZWFkeSkKK3sKKwlzdHJ1Y3Qg aGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5k ZXYpOworCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7CisJaW50IHJldDsKKwor CW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOworCWNvbXAgPSBkZXZfcHJp di0+aGRjcF9tYXN0ZXI7CisKKwlpZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgeworCQltdXRleF91 bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisKKwlyZXQgPSBjb21wLT5vcHMtPnZlcmlmeV9tcHJpbWUoY29tcC0+bWVpX2RldiwgZGF0YSwg c3RyZWFtX3JlYWR5KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IG1w cmltZSBmYWlsZWQuICVkXG4iLCByZXQpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgX19hdHRyaWJ1dGVfXygo dW51c2VkKSkKK2ludCBoZGNwMl9hdXRoZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5l Y3Rvci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBf bWFzdGVyICpjb21wOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9j b21wX211dGV4KTsKKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVyOworCisJaWYgKCFjb21w IHx8ICFjb21wLT5vcHMpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211 dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gY29tcC0+b3BzLT5lbmFibGVf aGRjcF9hdXRoZW50aWNhdGlvbihjb21wLT5tZWlfZGV2LCBkYXRhKTsKKwlpZiAocmV0IDwgMCkK KwkJRFJNX0RFQlVHX0tNUygiRW5hYmxlIGhkY3AgYXV0aCBmYWlsZWQuICVkXG4iLCByZXQpOwor CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKK2ludCBoZGNwMl9jbG9zZV9t ZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2 KTsKKwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOworCWludCByZXQ7CisKKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwljb21wID0gZGV2X3ByaXYt PmhkY3BfbWFzdGVyOworCisJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsKKwkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQor CisJcmV0ID0gY29tcC0+b3BzLT5jbG9zZV9oZGNwX3Nlc3Npb24oY29tcC0+bWVpX2RldiwKKwkJ CQkJICAgICAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YSk7CisJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+aGRjcF9jb21wX211dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBfX2F0 dHJpYnV0ZV9fKCh1bnVzZWQpKQoraW50IGhkY3AyX2RlYXV0aGVudGljYXRlX3BvcnQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXJldHVybiBoZGNwMl9jbG9zZV9tZWlf c2Vzc2lvbihjb25uZWN0b3IpOworfQorCitzdGF0aWMgaW50IGk5MTVfaGRjcF9jb21wb25lbnRf YmluZChzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXYsCisJCQkJICAgIHN0cnVjdCBkZXZpY2UgKm1l aV9rZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGtkZXZfdG9faTkxNShpOTE1X2tkZXYpOworCisJRFJNX0RFQlVHKCJJOTE1IEhEQ1AgY29t cCBiaW5kXG4iKTsKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwlk ZXZfcHJpdi0+aGRjcF9tYXN0ZXIgPSAoc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqKWRh dGE7CisJZGV2X3ByaXYtPmhkY3BfbWFzdGVyLT5tZWlfZGV2ID0gbWVpX2tkZXY7CisJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgdm9pZCBpOTE1X2hkY3BfY29tcG9uZW50X3VuYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1 X2tkZXYsCisJCQkJICAgICAgIHN0cnVjdCBkZXZpY2UgKm1laV9rZGV2LCB2b2lkICpkYXRhKQor eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShpOTE1 X2tkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKKwlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVy OworCisJRFJNX0RFQlVHKCJJOTE1IEhEQ1AgY29tcCB1bmJpbmRcbiIpOworCisJLyogT25jZSB0 aGUgY29tcG9uZW50IGlzIHVuYmluZCwgRGlzYWJsZSBIRENQMi4yIG9uIGFsbCBjb25uZWN0b3Jz ICovCisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmY29ubl9pdGVyKTsKKwlk cm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7CisJCWlu dGVsX2Nvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOworCQkJaW50ZWxf aGRjcF9kaXNhYmxlKGludGVsX2Nvbm5lY3Rvcik7CisJfQorCWRybV9jb25uZWN0b3JfbGlzdF9p dGVyX2VuZCgmY29ubl9pdGVyKTsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBf bXV0ZXgpOworCWRldl9wcml2LT5oZGNwX21hc3RlciA9IE5VTEw7CisJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBjb21w b25lbnRfb3BzIGk5MTVfaGRjcF9jb21wb25lbnRfb3BzID0geworCS5iaW5kICAgPSBpOTE1X2hk Y3BfY29tcG9uZW50X2JpbmQsCisJLnVuYmluZCA9IGk5MTVfaGRjcF9jb21wb25lbnRfdW5iaW5k LAorfTsKKworc3RhdGljIGludCBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZj b25uZWN0b3ItPmhkY3A7CisJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmhkY3AtPnBv cnRfZGF0YTsKKworCWRhdGEtPnBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7CisJZGF0 YS0+cG9ydF90eXBlID0gKHU4KUhEQ1BfUE9SVF9UWVBFX0lOVEVHUkFURUQ7CisJZGF0YS0+cHJv dG9jb2wgPSAodTgpaGRjcC0+c2hpbS0+cHJvdG9jb2w7CisKKwlkYXRhLT5rID0gMTsKKwlpZiAo IWRhdGEtPnN0cmVhbXMpCisJCWRhdGEtPnN0cmVhbXMgPSBrY2FsbG9jKGRhdGEtPmssCisJCQkJ CXNpemVvZihzdHJ1Y3QgaGRjcDJfc3RyZWFtaWRfdHlwZSksCisJCQkJCUdGUF9LRVJORUwpOwor CWlmICghZGF0YS0+c3RyZWFtcykgeworCQlEUk1fRVJST1IoIk91dCBvZiBNZW1vcnlcbiIpOwor CQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlkYXRhLT5zdHJlYW1zWzBdLnN0cmVhbV9pZCA9IDA7 CisJZGF0YS0+c3RyZWFtc1swXS5zdHJlYW1fdHlwZSA9IGhkY3AtPmNvbnRlbnRfdHlwZTsKKwor CXJldHVybiAwOworfQorCiBzdGF0aWMgYm9vbCBpc19oZGNwMl9zdXBwb3J0ZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWlmICghSVNfRU5BQkxFRChDT05GSUdfSU5U RUxfTUVJX0hEQ1ApKQpAQCAtODQzLDkgKzExOTksNDIgQEAgc3RhdGljIGJvb2wgaXNfaGRjcDJf c3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGljIHZv aWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3It PmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7 CisJYm9vbCBhZGRfY29tcG9uZW50ID0gZmFsc2U7CisJaW50IHJldDsKKworCXJldCA9IGluaXRp YWxpemVfaGRjcF9wb3J0X2RhdGEoY29ubmVjdG9yKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJV R19LTVMoIk1laSBoZGNwIGRhdGEgaW5pdCBmYWlsZWRcbiIpOworCQlyZXR1cm47CisJfQorCisJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisJLyoKKwkgKiBDb21wb25l bnQgZm9yIG1laSBpcyBjb21tb24gYWNyb3NzIHRoZSBjb25uZWN0b3IuCisJICogQWRkaW5nIHRo ZSBjb21wb25lbnQgb25jZSBpcyBzdWZmaWNpZW50LgorCSAqLworCWlmICghZGV2X3ByaXYtPmhk Y3BfY29tcF9hZGRlZCkgeworCQlkZXZfcHJpdi0+aGRjcF9jb21wX2FkZGVkID0gdHJ1ZTsKKwkJ YWRkX2NvbXBvbmVudCA9IHRydWU7CisJfQorCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7CisKKwlpZiAoYWRkX2NvbXBvbmVudCkgeworCQlyZXQgPSBjb21wb25lbnRf YWRkX3R5cGVkKGRldl9wcml2LT5kcm0uZGV2LAorCQkJCQkgICZpOTE1X2hkY3BfY29tcG9uZW50 X29wcywKKwkJCQkJICBJOTE1X0NPTVBPTkVOVF9IRENQKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJ CURSTV9ERUJVR19LTVMoIkZhaWxlZCBhdCBjb21wb25lbnQgYWRkKCVkKVxuIiwgcmV0KTsKKwkJ CW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOworCQkJZGV2X3ByaXYtPmhk Y3BfY29tcF9hZGRlZCA9IGZhbHNlOworCQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9j b21wX211dGV4KTsKKwkJCWtmcmVlKGhkY3AtPnBvcnRfZGF0YS5zdHJlYW1zKTsKKwkJCXJldHVy bjsKKwkJfQorCX0KIAotCS8qIFRPRE86IE1FSSBpbnRlcmZhY2UgbmVlZHMgdG8gYmUgaW5pdGlh bGl6ZWQgaGVyZSAqLwogCWhkY3AtPmhkY3AyX3N1cHBvcnRlZCA9IHRydWU7CiB9CiAKQEAgLTkx Nyw2ICsxMzA2LDM4IEBAIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQogCXJldHVybiByZXQ7CiB9CiAKK3ZvaWQgaW50ZWxfaGRjcF9jbGVh bnVwKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCisJ aWYgKCFjb25uZWN0b3ItPmhkY3Auc2hpbSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmY29u bmVjdG9yLT5oZGNwLm11dGV4KTsKKwlpZiAoIWNvbm5lY3Rvci0+aGRjcC5oZGNwMl9zdXBwb3J0 ZWQpIHsKKwkJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmhkY3AubXV0ZXgpOworCQlyZXR1cm47 CisJfQorCisJa2ZyZWUoY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YS5zdHJlYW1zKTsKKwltdXRl eF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKKwkvKgorCSAqIENvbXBvbmVudCBm b3IgbWVpIGlzIGNvbW1vbiBhY3Jvc3MgdGhlIGNvbm5lY3Rvci4KKwkgKiBSZW1vdmluZyB0aGUg Y29tcG9uZW50IG9uY2UgaXMgc3VmZmljaWVudC4KKwkgKi8KKwlpZiAoIWRldl9wcml2LT5oZGNw X2NvbXBfYWRkZWQpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4 KTsKKwkJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmhkY3AubXV0ZXgpOworCQlyZXR1cm47CisJ fQorCisJZGV2X3ByaXYtPmhkY3BfY29tcF9hZGRlZCA9IGZhbHNlOworCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmhk Y3AubXV0ZXgpOworCisJY29tcG9uZW50X2RlbChkZXZfcHJpdi0+ZHJtLmRldiwgJmk5MTVfaGRj cF9jb21wb25lbnRfb3BzKTsKK30KKwogdm9pZCBpbnRlbF9oZGNwX2F0b21pY19jaGVjayhzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqb2xkX3N0YXRlLAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq bmV3X3N0YXRlKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCBiL2lu Y2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKaW5kZXggNzJmYmIwMzdmOWIzLi5mMzg1MWJhM2U0 YzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKKysrIGIvaW5jbHVk ZS9kcm0vaTkxNV9jb21wb25lbnQuaApAQCAtMjQsMTAgKzI0LDEzIEBACiAjaWZuZGVmIF9JOTE1 X0NPTVBPTkVOVF9IXwogI2RlZmluZSBfSTkxNV9DT01QT05FTlRfSF8KIAorI2luY2x1ZGUgPGxp bnV4L2RldmljZS5oPgorCiAjaW5jbHVkZSAiZHJtX2F1ZGlvX2NvbXBvbmVudC5oIgogCiBlbnVt IGk5MTVfY29tcG9uZW50X3R5cGUgewogCUk5MTVfQ09NUE9ORU5UX0FVRElPID0gMSwKKwlJOTE1 X0NPTVBPTkVOVF9IRENQLAogfTsKIAogLyogTUFYX1BPUlQgaXMgdGhlIG51bWJlciBvZiBwb3J0 Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==