From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v9 07/39] drm/i915: MEI interface definition Date: Thu, 13 Dec 2018 09:31:09 +0530 Message-ID: <1544673701-6353-8-git-send-email-ramalingam.c@intel.com> References: <1544673701-6353-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: <1544673701-6353-1-git-send-email-ramalingam.c@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, dri-devel@lists.freedesktop.org, seanpaul@chromium.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 cmUgYWRqdXN0ZWQgYXMgcGVyIHRoZSBpL2YgY2hhbmdlIFtEYW5pZWxdCgpTaWduZWQtb2ZmLWJ5 OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkY3AuYyB8IDI0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogaW5j bHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCAgICAgIHwgICA3ICsrCiAzIGZpbGVzIGNoYW5nZWQs IDI1OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAppbmRleCBkZDkzNzE2NDdhOGMuLjE5MWI2ZTBmMDg2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2RwX21zdF9oZWxwZXIu aD4KICNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5o PgorI2luY2x1ZGUgPGRybS9pOTE1X21laV9oZGNwX2ludGVyZmFjZS5oPgogI2luY2x1ZGUgPG1l ZGlhL2NlYy1ub3RpZmllci5oPgogCiAvKioKQEAgLTM3OSw2ICszODAsOSBAQCBzdHJ1Y3QgaW50 ZWxfaGRjcF9zaGltIHsKIAkvKiBEZXRlY3RzIHBhbmVsJ3MgaGRjcCBjYXBhYmlsaXR5LiBUaGlz IGlzIG9wdGlvbmFsIGZvciBIRE1JLiAqLwogCWludCAoKmhkY3BfY2FwYWJsZSkoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCQkgICAgYm9vbCAqaGRjcF9jYXBh YmxlKTsKKworCS8qIEhEQ1AgYWRhcHRhdGlvbihEUC9IRE1JKSByZXF1aXJlZCBvbiB0aGUgcG9y dCAqLworCWVudW0gaGRjcF93aXJlZF9wcm90b2NvbCBwcm90b2NvbDsKIH07CiAKIHN0cnVjdCBp bnRlbF9oZGNwIHsKQEAgLTM5OSw2ICs0MDMsNyBAQCBzdHJ1Y3QgaW50ZWxfaGRjcCB7CiAJICog Y29udGVudCBjYW4gZmxvdyBvbmx5IHRocm91Z2ggYSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4y LgogCSAqLwogCXU4IGNvbnRlbnRfdHlwZTsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgcG9ydF9k YXRhOwogfTsKIAogc3RydWN0IGludGVsX2Nvbm5lY3RvciB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZGNwLmMKaW5kZXggNTg0ZDI3ZjNjNjk5Li45NDA1ZmNlMDdiOTMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZGNwLmMKQEAgLTgsOCArOCwxMCBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNp bmNsdWRlIDxkcm0vZHJtX2hkY3AuaD4KKyNpbmNsdWRlIDxkcm0vaTkxNV9jb21wb25lbnQuaD4K ICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KKyNpbmNs dWRlIDxsaW51eC9jb21wb25lbnQuaD4KIAogI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1 ZGUgImk5MTVfcmVnLmgiCkBAIC04MzMsNiArODM1LDIzMiBAQCBib29sIGlzX2hkY3Bfc3VwcG9y dGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJ cmV0dXJuIElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAmJiBwb3J0IDwgUE9SVF9FOwogfQogCitz dGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50CitoZGNwMl9wcmVwYXJlX2FrZV9pbml0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgICAgIHN0cnVjdCBoZGNw Ml9ha2VfaW5pdCAqYWtlX2RhdGEpCit7CisJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0g JmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaTkxNV9jb21w b25lbnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmNvbXBfbWFzdGVyOworCWludCByZXQ7CisK KwkvKiBEdXJpbmcgdGhlIGNvbm5lY3RvciBpbml0IGVuY29kZXIgbWlnaHQgbm90IGJlIGluaXRp YWxpemVkICovCisJaWYgKGRhdGEtPnBvcnQgPT0gUE9SVF9OT05FKQorCQlkYXRhLT5wb3J0ID0g Y29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0OworCisJcmV0ID0gY29tcC0+aGRjcF9vcHMtPmluaXRp YXRlX2hkY3AyX3Nlc3Npb24oY29tcC0+bWVpX2RldiwKKwkJCQkJCSAgICAgZGF0YSwgYWtlX2Rh dGEpOworCWlmIChyZXQpCisJCURSTV9ERUJVR19LTVMoIlByZXBhcmVfYWtlX2luaXQgZmFpbGVk LiAlZFxuIiwgcmV0KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBfX2F0dHJpYnV0ZV9f KCh1bnVzZWQpKSBpbnQKK2hkY3AyX3ZlcmlmeV9yeF9jZXJ0X3ByZXBhcmVfa20oc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCXN0cnVjdCBoZGNwMl9ha2Vfc2VuZF9jZXJ0 ICpyeF9jZXJ0LAorCQkJCWJvb2wgKnBhaXJlZCwKKwkJCQlzdHJ1Y3QgaGRjcDJfYWtlX25vX3N0 b3JlZF9rbSAqZWtfcHViX2ttLAorCQkJCXNpemVfdCAqbXNnX3N6KQoreworCXN0cnVjdCBoZGNw X3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 CisJc3RydWN0IGk5MTVfY29tcG9uZW50X21hc3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21h c3RlcjsKKwlpbnQgcmV0OworCisJcmV0ID0gY29tcC0+aGRjcF9vcHMtPnZlcmlmeV9yZWNlaXZl cl9jZXJ0X3ByZXBhcmVfa20oY29tcC0+bWVpX2RldiwKKwkJCQkJCQkgICAgICBkYXRhLCByeF9j ZXJ0LAorCQkJCQkJCSAgICAgIHBhaXJlZCwgZWtfcHViX2ttLAorCQkJCQkJCSAgICAgIG1zZ19z eik7CisJaWYgKHJldCA8IDApCisJCURSTV9ERUJVR19LTVMoIlZlcmlmeSByeF9jZXJ0IGZhaWxl ZC4gJWRcbiIsIHJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgX19hdHRyaWJ1dGVf XygodW51c2VkKSkgaW50CitoZGNwMl92ZXJpZnlfaHByaW1lKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvciwKKwkJICAgIHN0cnVjdCBoZGNwMl9ha2Vfc2VuZF9ocHJpbWUgKnJ4X2hw cmltZSkKK3sKKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNw LnBvcnRfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNv bXAgPSBkZXZfcHJpdi0+Y29tcF9tYXN0ZXI7CisJaW50IHJldDsKKworCXJldCA9IGNvbXAtPmhk Y3Bfb3BzLT52ZXJpZnlfaHByaW1lKGNvbXAtPm1laV9kZXYsIGRhdGEsIHJ4X2hwcmltZSk7CisJ aWYgKHJldCA8IDApCisJCURSTV9ERUJVR19LTVMoIlZlcmlmeSBocHJpbWUgZmFpbGVkLiAlZFxu IiwgcmV0KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVz ZWQpKSBpbnQKK2hkY3AyX3N0b3JlX3BhaXJpbmdfaW5mbyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsCisJCQkgc3RydWN0IGhkY3AyX2FrZV9zZW5kX3BhaXJpbmdfaW5mbyAqcGFp cmluZ19pbmZvKQoreworCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3It PmhkY3AucG9ydF9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfY29tcG9uZW50X21hc3Rl ciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsKKwlpbnQgcmV0OworCisJcmV0ID0gY29t cC0+aGRjcF9vcHMtPnN0b3JlX3BhaXJpbmdfaW5mbyhjb21wLT5tZWlfZGV2LCBkYXRhLAorCQkJ CQkJIHBhaXJpbmdfaW5mbyk7CisJaWYgKHJldCA8IDApCisJCURSTV9ERUJVR19LTVMoIlN0b3Jl IHBhaXJpbmcgaW5mbyBmYWlsZWQuICVkXG4iLCByZXQpOworCisJcmV0dXJuIHJldDsKK30KKwor c3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAoraGRjcDJfcHJlcGFyZV9sY19pbml0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgICAgc3RydWN0IGhkY3Ay X2xjX2luaXQgKmxjX2luaXQpCit7CisJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNv bm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaTkxNV9jb21wb25l bnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmNvbXBfbWFzdGVyOworCWludCByZXQ7CisKKwly ZXQgPSBjb21wLT5oZGNwX29wcy0+aW5pdGlhdGVfbG9jYWxpdHlfY2hlY2soY29tcC0+bWVpX2Rl diwgZGF0YSwKKwkJCQkJCSAgICAgIGxjX2luaXQpOworCWlmIChyZXQgPCAwKQorCQlEUk1fREVC VUdfS01TKCJQcmVwYXJlIGxjX2luaXQgZmFpbGVkLiAlZFxuIiwgcmV0KTsKKworCXJldHVybiBy ZXQ7Cit9CisKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKK2hkY3AyX3Zlcmlm eV9scHJpbWUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkgICAgc3RydWN0 IGhkY3AyX2xjX3NlbmRfbHByaW1lICpyeF9scHJpbWUpCit7CisJc3RydWN0IGhkY3BfcG9ydF9k YXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1 Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmNvbXBfbWFzdGVyOwor CWludCByZXQ7CisKKwlyZXQgPSBjb21wLT5oZGNwX29wcy0+dmVyaWZ5X2xwcmltZShjb21wLT5t ZWlfZGV2LCBkYXRhLCByeF9scHJpbWUpOworCWlmIChyZXQgPCAwKQorCQlEUk1fREVCVUdfS01T KCJWZXJpZnkgTF9QcmltZSBmYWlsZWQuICVkXG4iLCByZXQpOworCisJcmV0dXJuIHJldDsKK30K Kworc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCitpbnQgaGRjcDJfcHJlcGFyZV9za2V5 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgICAgIHN0cnVjdCBoZGNw Ml9za2Vfc2VuZF9la3MgKnNrZV9kYXRhKQoreworCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0 YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVf Y29tcG9uZW50X21hc3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsKKwlpbnQgcmV0 OworCisJcmV0ID0gY29tcC0+aGRjcF9vcHMtPmdldF9zZXNzaW9uX2tleShjb21wLT5tZWlfZGV2 LCBkYXRhLCBza2VfZGF0YSk7CisJaWYgKHJldCA8IDApCisJCURSTV9ERUJVR19LTVMoIkdldCBz ZXNzaW9uIGtleSBmYWlsZWQuICVkXG4iLCByZXQpOworCisJcmV0dXJuIHJldDsKK30KKworc3Rh dGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAoraGRjcDJfdmVyaWZ5X3JlcF90b3BvbG9n eV9wcmVwYXJlX2FjayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJICAg ICAgc3RydWN0IGhkY3AyX3JlcF9zZW5kX3JlY2VpdmVyaWRfbGlzdAorCQkJCQkJCQkqcmVwX3Rv cG9sb2d5LAorCQkJCSAgICAgIHN0cnVjdCBoZGNwMl9yZXBfc2VuZF9hY2sgKnJlcF9zZW5kX2Fj aykKK3sKKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBv cnRfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNv bm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNvbXAg PSBkZXZfcHJpdi0+Y29tcF9tYXN0ZXI7CisJaW50IHJldDsKKworCXJldCA9IGNvbXAtPmhkY3Bf b3BzLT5yZXBlYXRlcl9jaGVja19mbG93X3ByZXBhcmVfYWNrKGNvbXAtPm1laV9kZXYsCisJCQkJ CQkJICAgICAgZGF0YSwKKwkJCQkJCQkgICAgICByZXBfdG9wb2xvZ3ksCisJCQkJCQkJICAgICAg cmVwX3NlbmRfYWNrKTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IHJl cCB0b3BvbG9neSBmYWlsZWQuICVkXG4iLCByZXQpOworCisJcmV0dXJuIHJldDsKK30KKworc3Rh dGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAoraGRjcDJfdmVyaWZ5X21wcmltZShzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCSAgICBzdHJ1Y3QgaGRjcDJfcmVwX3N0 cmVhbV9yZWFkeSAqc3RyZWFtX3JlYWR5KQoreworCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0 YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVf Y29tcG9uZW50X21hc3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsKKwlpbnQgcmV0 OworCisJcmV0ID0gY29tcC0+aGRjcF9vcHMtPnZlcmlmeV9tcHJpbWUoY29tcC0+bWVpX2Rldiwg ZGF0YSwgc3RyZWFtX3JlYWR5KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFQlVHX0tNUygiVmVy aWZ5IG1wcmltZSBmYWlsZWQuICVkXG4iLCByZXQpOworCisJcmV0dXJuIHJldDsKK30KKworc3Rh dGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCitpbnQgaGRjcDJfYXV0aGVudGljYXRlX3BvcnQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBoZGNwX3BvcnRf ZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3Ry dWN0IGk5MTVfY29tcG9uZW50X21hc3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsK KwlpbnQgcmV0OworCisJcmV0ID0gY29tcC0+aGRjcF9vcHMtPmVuYWJsZV9oZGNwX2F1dGhlbnRp Y2F0aW9uKGNvbXAtPm1laV9kZXYsIGRhdGEpOworCWlmIChyZXQgPCAwKQorCQlEUk1fREVCVUdf S01TKCJFbmFibGUgaGRjcCBhdXRoIGZhaWxlZC4gJWRcbiIsIHJldCk7CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKK2ludCBoZGNwMl9jbG9zZV9t ZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2 KTsKKwlzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmNvbXBf bWFzdGVyOworCisJcmV0dXJuIGNvbXAtPmhkY3Bfb3BzLT5jbG9zZV9oZGNwX3Nlc3Npb24oY29t cC0+bWVpX2RldiwKKwkJCQkJCSAgJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGEpOworfQorCitz dGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKK2ludCBoZGNwMl9kZWF1dGhlbnRpY2F0ZV9w b3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlyZXR1cm4gaGRjcDJf Y2xvc2VfbWVpX3Nlc3Npb24oY29ubmVjdG9yKTsKK30KKworc3RhdGljIGludCBpOTE1X2hkY3Bf Y29tcG9uZW50X21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKK3sKKwlyZXR1 cm4gIXN0cmNtcChkZXYtPmRyaXZlci0+bmFtZSwgIm1laV9oZGNwIik7Cit9CisKK3N0YXRpYyBp bnQgaW5pdGlhbGl6ZV9oZGNwX3BvcnRfZGF0YShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCit7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwor CXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZoZGNwLT5wb3J0X2RhdGE7CisKKwlkYXRh LT5wb3J0ID0gUE9SVF9OT05FOworCWlmIChjb25uZWN0b3ItPmVuY29kZXIpCisJCWRhdGEtPnBv cnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7CisKKwlkYXRhLT5wb3J0X3R5cGUgPSAodTgp SERDUF9QT1JUX1RZUEVfSU5URUdSQVRFRDsKKwlkYXRhLT5wcm90b2NvbCA9ICh1OCloZGNwLT5z aGltLT5wcm90b2NvbDsKKworCWRhdGEtPmsgPSAxOworCWlmICghZGF0YS0+c3RyZWFtcykKKwkJ ZGF0YS0+c3RyZWFtcyA9IGtjYWxsb2MoZGF0YS0+aywKKwkJCQkJc2l6ZW9mKHN0cnVjdCBoZGNw Ml9zdHJlYW1pZF90eXBlKSwKKwkJCQkJR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhLT5zdHJlYW1z KSB7CisJCURSTV9FUlJPUigiT3V0IG9mIE1lbW9yeVxuIik7CisJCXJldHVybiAtRU5PTUVNOwor CX0KKworCWRhdGEtPnN0cmVhbXNbMF0uc3RyZWFtX2lkID0gMDsKKwlkYXRhLT5zdHJlYW1zWzBd LnN0cmVhbV90eXBlID0gaGRjcC0+Y29udGVudF90eXBlOworCisJcmV0dXJuIDA7Cit9CisKIGJv b2wgaXNfaGRjcDJfc3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHsKIAlyZXR1cm4gKChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0Uo ZGV2X3ByaXYpIHx8CkBAIC04NDMsMTAgKzEwNzEsMjggQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRj cDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsK IAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJc3RhdGljIGJv b2wgY29tcF9tYXRjaF9hZGRlZDsKKwlpbnQgcmV0OwogCiAJV0FSTl9PTighaXNfaGRjcDJfc3Vw cG9ydGVkKGRldl9wcml2KSk7CiAKLQkvKiBUT0RPOiBNRUkgaW50ZXJmYWNlIG5lZWRzIHRvIGJl IGluaXRpYWxpemVkIGhlcmUgKi8KKwlyZXQgPSBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKGNv bm5lY3Rvcik7CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfS01TKCJNZWkgaGRjcCBkYXRhIGlu aXQgZmFpbGVkXG4iKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogQ29tcG9uZW50IGZvciBt ZWkgaXMgY29tbW9uIGFjcm9zcyB0aGUgY29ubmVjdG9yLgorCSAqIEFkZGluZyB0aGUgbWF0Y2gg b25jZSBpcyBzdWZmaWNpZW50LgorCSAqIFRPRE86IEluc3RlYWQgb2Ygc3RhdGljIGJvb2wsIGRv IHdlIG5lZWQgZmxhZyBpbiBkZXZfcHJpdj8uCisJICovCisJaWYgKCFjb21wX21hdGNoX2FkZGVk KSB7CisJCWNvbXBvbmVudF9tYXRjaF9hZGQoZGV2X3ByaXYtPmRybS5kZXYsICZkZXZfcHJpdi0+ bWFzdGVyX21hdGNoLAorCQkJCSAgICBpOTE1X2hkY3BfY29tcG9uZW50X21hdGNoLCBkZXZfcHJp dik7CisJCWNvbXBfbWF0Y2hfYWRkZWQgPSB0cnVlOworCX0KKwogCWhkY3AtPmhkY3AyX3N1cHBv cnRlZCA9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50Lmgg Yi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCmluZGV4IDZmOTRkZGQzZjJjMi4uN2E3MjAx Mzc0Y2ZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCisrKyBiL2lu Y2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKQEAgLTI0LDYgKzI0LDggQEAKICNpZm5kZWYgX0k5 MTVfQ09NUE9ORU5UX0hfCiAjZGVmaW5lIF9JOTE1X0NPTVBPTkVOVF9IXwogCisjaW5jbHVkZSA8 ZHJtL2k5MTVfbWVpX2hkY3BfaW50ZXJmYWNlLmg+CisKICNpbmNsdWRlICJkcm1fYXVkaW9fY29t cG9uZW50LmgiCiAKIC8qIE1BWF9QT1JUIGlzIHRoZSBudW1iZXIgb2YgcG9ydApAQCAtNTAsOCAr NTIsMTMgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50IHsKICAqIHN0cnVjdCBpOTE1X2Nv bXBvbmVudF9tYXN0ZXIgLSBVc2VkIGZvciBjb21tdW5pY2F0aW9uIGJldHdlZW4gaTkxNQogICoJ CQkJICBhbmQgYW55IG90aGVyIGRyaXZlcnMgZm9yIHRoZSBzZXJ2aWNlcwogICoJCQkJICBvZiBk aWZmZXJlbnQgZmVhdHVyZS4KKyAqIEBtZWlfZGV2OiBkZXZpY2UgdGhhdCBwcm92aWRlIHRoZSBI RENQMi4yIHNlcnZpY2UgZnJvbSBNRUkgQnVzLgorICogQGhkY3Bfb3BzOiBPcHMgaW1wbGVtZW50 ZWQgYnkgbWVpX2hkY3AgZHJpdmVyLCB1c2VkIGJ5IGk5MTUgZHJpdmVyLgogICovCiBzdHJ1Y3Qg aTkxNV9jb21wb25lbnRfbWFzdGVyIHsKKwlzdHJ1Y3QgZGV2aWNlICptZWlfZGV2OworCWNvbnN0 IHN0cnVjdCBpOTE1X2hkY3BfY29tcG9uZW50X29wcyAqaGRjcF9vcHM7CisKIAkvKgogCSAqIEFk ZCBoZXJlIHRoZSBpbnRlcmZhY2UgZGV0YWlscyBiZXR3ZWVuIEk5MTUgYW5kIGludGVyZXN0ZWQg bW9kdWxlcy4KIAkgKi8KLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK