From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v5 08/40] drm/i915: Initialize HDCP2.2 and its MEI interface Date: Wed, 27 Jun 2018 14:09:57 +0530 Message-ID: <1530088829-11730-9-git-send-email-ramalingam.c@intel.com> References: <1530088829-11730-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: <1530088829-11730-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@ffwll.ch, tomas.winkler@intel.com, alexander.usyskin@intel.com, uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org SW5pdGlhbGl6ZSBIRENQMi4yIHN1cHBvcnQuIFRoaXMgaW5jbHVkZXMgdGhlIG1laSBpbnRlcmZh Y2UKaW5pdGlhbGl6YXRpb24gYWxvbmcgd2l0aCByZXF1aXJlZCBjb21wb25lbnQgcmVnaXN0cmF0 aW9uLgoKdjI6CiAgbWVpIGludGVyZmFjZSBoYW5kbGUgaXMgcHJvdGVjdGVkIHdpdGggbXV0ZXgu IFtDaHJpcyBXaWxzb25dCnYzOgogIE5vdGlmaWVycyBhcmUgdXNlZCBmb3IgdGhlIG1laSBpbnRl cmZhY2Ugc3RhdGUuCnY0OgogIFBvbGwgZm9yIG1laSBjbGllbnQgZGV2aWNlIHN0YXRlCiAgRXJy b3IgbXNnIGZvciBvdXQgb2YgbWVtIFtVbWFdCiAgSW5saW5lIHJlcSBmb3IgaW5pdCBmdW5jdGlv biByZW1vdmVkIFtVbWFdCnY1OgogIFJlYmFzZSBhcyBQYXJ0IG9mIHJlb3JkZXJpbmcuCiAgQ29t cG9uZW50IGlzIHVzZWQgZm9yIHRoZSBJOTE1IGFuZCBNRUlfSERDUCBpbnRlcmZhY2UgW0Rhbmll bF0KClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgfCAgIDIgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgfCAgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8 IDIwNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgICAyICstCiBpbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVu dC5oICAgICAgfCAgODggKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAyOTggaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA2 ZjA4YWIzMTAxMTguLjBlNmZlMTQwZGM2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0y MTQyLDYgKzIxNDIsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAlzdHJ1Y3QgaTkx NV9wbXUgcG11OwogCisJc3RydWN0IGk5MTVfaGRjcF9jb21wb25lbnQgKmhkY3BfY29tcDsKKwog CS8qCiAJICogTk9URTogVGhpcyBpcyB0aGUgZHJpMS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0 dWZmIGhlcmUuIFlvdXIgcGF0Y2gKIAkgKiB3aWxsIGJlIHJlamVjdGVkLiBJbnN0ZWFkIGxvb2sg Zm9yIGEgYmV0dGVyIHBsYWNlLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggYzFiMmYwMGYz MjRiLi42YmNjNTI3NjZlYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtNjQwNCw3ICs2 NDA0LDggQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsCiAJaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoaW50ZWxfZHAsIGNv bm5lY3Rvcik7CiAKIAlpZiAoaXNfaGRjcF9zdXBwb3J0ZWQoZGV2X3ByaXYsIHBvcnQpICYmICFp bnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Ci0JCWludCByZXQgPSBpbnRlbF9oZGNwX2luaXQo aW50ZWxfY29ubmVjdG9yLCAmaW50ZWxfZHBfaGRjcF9zaGltKTsKKwkJaW50IHJldCA9IGludGVs X2hkY3BfaW5pdChpbnRlbF9jb25uZWN0b3IsICZpbnRlbF9kcF9oZGNwX3NoaW0sCisJCQkJCSAg ZmFsc2UpOwogCQlpZiAocmV0KQogCQkJRFJNX0RFQlVHX0tNUygiSERDUCBpbml0IGZhaWxlZCwg c2tpcHBpbmcuXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGI2MTVlYTRh NDRjMy4uMmVlYjgyYjA0OTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNDQxLDkg KzQ0MSw3IEBAIHN0cnVjdCBpbnRlbF9oZGNwIHsKIAl1aW50MzJfdCBzZXFfbnVtX207CiAKIAkv KiBtZWkgaW50ZXJmYWNlIHJlbGF0ZWQgaW5mb3JtYXRpb24gKi8KLQlzdHJ1Y3QgbWVpX2NsX2Rl dmljZSAqY2xkZXY7CiAJc3RydWN0IG1laV9oZGNwX2RhdGEgbWVpX2RhdGE7Ci0KIAlzdHJ1Y3Qg ZGVsYXllZF93b3JrIGhkY3AyX2NoZWNrX3dvcms7CiB9OwogCkBAIC0xOTYyLDcgKzE5NjAsOCBA QCB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCiAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfc3RhdGUsCiAJ CQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpOwogaW50IGludGVs X2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCi0JCSAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3NoaW0pOworCQkgICAgY29uc3Qgc3RydWN0 IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGltLAorCQkgICAgYm9vbCBoZGNwMl9zdXBwb3J0ZWQp OwogaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv cik7CiBpbnQgaW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3Rvcik7CiBpbnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKaW5kZXggNjViYmU1ODc0ZWVl Li43Njk1NjA1OTFhYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk Y3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKQEAgLTgsMTMgKzgs MTkgQEAKIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9oZGNwLmg+ CisjaW5jbHVkZSA8ZHJtL2k5MTVfY29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+ CiAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+ CiAKICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3JlZy5oIgogCiAjZGVm aW5lIEtFWV9MT0FEX1RSSUVTCTUKKyNkZWZpbmUgR0VUX01FSV9ERElfSU5ERVgocG9ydCkJCSgo KHBvcnQpID09IFBPUlRfQSkgPyBERElfQSA6IFwKKwkJCQkJIChlbnVtIGhkY3BfcGh5c2ljYWxf cG9ydCkocG9ydCkpCisKK3N0YXRpYyBpbnQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpOwogCiBzdGF0aWMgaW50IGludGVsX2hkY3BfcG9sbF9rc3Zf ZmlmbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKIAkJCQkgICAg Y29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkKQEAgLTc0MywxMSArNzQ5LDE1IEBA IGJvb2wgaXNfaGRjcF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9ydCkKIH0KIAogaW50IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsCi0JCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGlt ICpoZGNwX3NoaW0pCisJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3No aW0sCisJCSAgICBib29sIGhkY3AyX3N1cHBvcnRlZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAq aGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CiAJaW50IHJldDsKIAorCWlmICghaGRjcF9zaGltKQor CQlyZXR1cm4gLUVJTlZBTDsKKwogCXJldCA9IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRf cHJvdGVjdGlvbl9wcm9wZXJ0eSgKIAkJCSZjb25uZWN0b3ItPmJhc2UpOwogCWlmIChyZXQpCkBA IC03NTcsNiArNzY3LDEwIEBAIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAogCW11dGV4X2luaXQoJmhkY3AtPmhkY3BfbXV0ZXgpOwogCUlOSVRf REVMQVlFRF9XT1JLKCZoZGNwLT5oZGNwX2NoZWNrX3dvcmssIGludGVsX2hkY3BfY2hlY2tfd29y ayk7CiAJSU5JVF9XT1JLKCZoZGNwLT5oZGNwX3Byb3Bfd29yaywgaW50ZWxfaGRjcF9wcm9wX3dv cmspOworCisJaWYgKGhkY3AyX3N1cHBvcnRlZCkKKwkJaW50ZWxfaGRjcDJfaW5pdChjb25uZWN0 b3IpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTg5NiwzICs5MTAsMTkxIEBAIGludCBpbnRlbF9o ZGNwX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCW11dGV4 X3VubG9jaygmaGRjcC0+aGRjcF9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KKworc3RhdGljIGlu dCBpOTE1X2hkY3BfY29tcG9uZW50X21hc3Rlcl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoZGV2KTsK KwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBvbmVudCAqY29tcCA9IGRldl9wcml2LT5oZGNwX2NvbXA7 CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmNvbXAtPm11dGV4KTsKKwlyZXQgPSBjb21wb25l bnRfYmluZF9hbGwoZGV2LCBjb21wKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKwor CS8qCisJICogQXRtLCB3ZSBkb24ndCBzdXBwb3J0IGR5bmFtaWMgdW5iaW5kaW5nIGluaXRpYXRl ZCBieSB0aGUgY2hpbGQKKwkgKiBjb21wb25lbnQsIHNvIHBpbiBpdHMgY29udGFpbmluZyBtb2R1 bGUgdW50aWwgd2UgdW5iaW5kLgorCSAqLworCWlmICghdHJ5X21vZHVsZV9nZXQoY29tcC0+b3Bz LT5vd25lcikpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXRfdW5iaW5kOworCX0KKwor CW11dGV4X3VubG9jaygmY29tcC0+bXV0ZXgpOworCXJldHVybiAwOworCitvdXRfdW5iaW5kOgor CWNvbXBvbmVudF91bmJpbmRfYWxsKGRldiwgY29tcCk7CisJbXV0ZXhfdW5sb2NrKCZjb21wLT5t dXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBpOTE1X2hkY3BfY29tcG9u ZW50X21hc3Rlcl91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShkZXYpOworCXN0cnVjdCBpOTE1X2hk Y3BfY29tcG9uZW50ICpjb21wID0gZGV2X3ByaXYtPmhkY3BfY29tcDsKKworCW11dGV4X2xvY2so JmNvbXAtPm11dGV4KTsKKwltb2R1bGVfcHV0KGNvbXAtPm9wcy0+b3duZXIpOworCWNvbXBvbmVu dF91bmJpbmRfYWxsKGRldiwgY29tcCk7CisJV0FSTl9PTihjb21wLT5vcHMpOworCW11dGV4X3Vu bG9jaygmY29tcC0+bXV0ZXgpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9t YXN0ZXJfb3BzIGk5MTVfaGRjcF9jb21wb25lbnRfbWFzdGVyX29wcyA9IHsKKwkuYmluZCA9IGk5 MTVfaGRjcF9jb21wb25lbnRfbWFzdGVyX2JpbmQsCisJLnVuYmluZCA9IGk5MTVfaGRjcF9jb21w b25lbnRfbWFzdGVyX3VuYmluZCwKK307CisKK3N0YXRpYyB2b2lkIGludGVsX2hkY3BfY29tcG9u ZW50X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCWNvbXBv bmVudF9tYXN0ZXJfZGVsKGRldl9wcml2LT5kcm0uZGV2LAorCQkJICAgICAmaTkxNV9oZGNwX2Nv bXBvbmVudF9tYXN0ZXJfb3BzKTsKKwlrZnJlZShkZXZfcHJpdi0+aGRjcF9jb21wKTsKK30KKwor c3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfZXhpdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj b25uZWN0b3ItPmJhc2UuZGV2KTsKKworCS8qIFRPLURPOiBEaXNhYmxlIHRoZSBIRENQIGhlcmUg Ki8KKwlrZnJlZShjb25uZWN0b3ItPmhkY3AubWVpX2RhdGEuc3RyZWFtcyk7CisKKwlpZiAoZGV2 X3ByaXYtPmhkY3BfY29tcCkKKwkJaW50ZWxfaGRjcF9jb21wb25lbnRfY2xlYW51cChkZXZfcHJp dik7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX3B1bGxfZG93bl9tZWlfaW50ZXJmYWNlKHN0cnVj dCBkZXZpY2UgKmtkZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g a2Rldl90b19pOTE1KGtkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYt PmRybTsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7CisJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXIgY29ubl9pdGVyOworCisJRFJNX0lORk8oIk1FSSBEZXZpY2UgaXMgRG93biIpOworCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7CisJZHJtX2Zvcl9lYWNo X2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgeworCQlpbnRlbF9jb25uZWN0 b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKKwkJaWYgKCFpbnRlbF9jb25uZWN0 b3ItPmhkY3AuaGRjcDJfc3VwcG9ydGVkKQorCQkJY29udGludWU7CisKKwkJaW50ZWxfaGRjcDJf ZXhpdChpbnRlbF9jb25uZWN0b3IpOworCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQo JmNvbm5faXRlcik7Cit9CisKK3N0cnVjdCBpOTE1X2hkY3BfY29tcG9uZW50X21hc3Rlcl9vcHMg bWFzdGVyX29wcyA9IHsKKwkucHVsbF9kb3duX2ludGVyZmFjZSA9IGludGVsX3B1bGxfZG93bl9t ZWlfaW50ZXJmYWNlLAorfTsKKworc3RhdGljIGludCBpOTE1X2hkY3BfY29tcG9uZW50X21hc3Rl cl9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuICFzdHJj bXAoZGV2LT5kcml2ZXItPm5hbWUsICJtZWlfaGRjcCIpOworfQorCitzdGF0aWMgaW50IGludGVs X2hkY3BfY29tcG9uZW50X2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9y LT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfaGRjcF9jb21wb25lbnQgKmNvbXA7CisJc3RydWN0 IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBOVUxMOworCWludCByZXQ7CisKKwljb21wID0ga3ph bGxvYyhzaXplb2YoKmNvbXApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNvbXApCisJCXJldHVybiAt RU5PTUVNOworCisJbXV0ZXhfaW5pdCgmY29tcC0+bXV0ZXgpOworCWNvbXAtPm1hc3Rlcl9vcHMg PSAmbWFzdGVyX29wczsKKwlkZXZfcHJpdi0+aGRjcF9jb21wID0gY29tcDsKKworCWNvbXBvbmVu dF9tYXRjaF9hZGQoZGV2X3ByaXYtPmRybS5kZXYsICZtYXRjaCwKKwkJCSAgICBpOTE1X2hkY3Bf Y29tcG9uZW50X21hc3Rlcl9tYXRjaCwgZGV2X3ByaXYpOworCXJldCA9IGNvbXBvbmVudF9tYXN0 ZXJfYWRkX3dpdGhfbWF0Y2goZGV2X3ByaXYtPmRybS5kZXYsCisJCQkJCSAgICAgICZpOTE1X2hk Y3BfY29tcG9uZW50X21hc3Rlcl9vcHMsCisJCQkJCSAgICAgIG1hdGNoKTsKKwlpZiAocmV0IDwg MCkKKwkJZ290byBvdXRfZXJyOworCisJRFJNX0lORk8oIkk5MTUgaGRjcCBjb21wb25lbnQgbWFz dGVyIGFkZGVkLlxuIik7CisJcmV0dXJuIHJldDsKKworb3V0X2VycjoKKwljb21wb25lbnRfbWFz dGVyX2RlbChkZXZfcHJpdi0+ZHJtLmRldiwKKwkJCSAgICAgJmk5MTVfaGRjcF9jb21wb25lbnRf bWFzdGVyX29wcyk7CisJa2ZyZWUoY29tcCk7CisJZGV2X3ByaXYtPmhkY3BfY29tcCA9IE5VTEw7 CisJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWRkIGk5MTUgaGRjcCBjb21wb25lbnQgbWFzdGVyICgl ZClcbiIsIHJldCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGluaXRpYWxpemVf bWVpX2hkY3BfZGF0YShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3Ry dWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCXN0cnVjdCBtZWlfaGRj cF9kYXRhICpkYXRhID0gJmhkY3AtPm1laV9kYXRhOworCWVudW0gcG9ydCBwb3J0OworCisJaWYg KGNvbm5lY3Rvci0+ZW5jb2RlcikgeworCQlwb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0 OworCQlkYXRhLT5wb3J0ID0gR0VUX01FSV9ERElfSU5ERVgocG9ydCk7CisJfQorCisJZGF0YS0+ cG9ydF90eXBlID0gSU5URUdSQVRFRDsKKwlkYXRhLT5wcm90b2NvbCA9IGhkY3AtPmhkY3Bfc2hp bS0+aGRjcF9wcm90b2NvbCgpOworCisJZGF0YS0+ayA9IDE7CisJaWYgKCFkYXRhLT5zdHJlYW1z KQorCQlkYXRhLT5zdHJlYW1zID0ga2NhbGxvYyhkYXRhLT5rLAorCQkJCQlzaXplb2Yoc3RydWN0 IGhkY3AyX3N0cmVhbWlkX3R5cGUpLAorCQkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWRhdGEtPnN0 cmVhbXMpIHsKKwkJRFJNX0VSUk9SKCJPdXQgb2YgTWVtb3J5XG4iKTsKKwkJcmV0dXJuIC1FTk9N RU07CisJfQorCisJZGF0YS0+c3RyZWFtc1swXS5zdHJlYW1faWQgPSAwOworCWRhdGEtPnN0cmVh bXNbMF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7CisKKwlyZXR1cm4gMDsKK30K KworYm9vbCBpc19oZGNwMl9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQoreworCXJldHVybiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklM QUtFKGRldl9wcml2KSB8fAorCQlJU19LQUJZTEFLRShkZXZfcHJpdikpOworfQorCitzdGF0aWMg aW50IGludGVsX2hkY3AyX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9y LT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNw OworCWludCByZXQ7CisKKwlXQVJOX09OKCFpc19oZGNwMl9zdXBwb3J0ZWQoZGV2X3ByaXYpKTsK KwlyZXQgPSBpbml0aWFsaXplX21laV9oZGNwX2RhdGEoY29ubmVjdG9yKTsKKwlpZiAocmV0KQor CQlnb3RvIGV4aXQ7CisKKwlpZiAoIWRldl9wcml2LT5oZGNwX2NvbXApCisJCXJldCA9IGludGVs X2hkY3BfY29tcG9uZW50X2luaXQoY29ubmVjdG9yKTsKKworCWlmIChyZXQpCisJCWtmcmVlKGhk Y3AtPm1laV9kYXRhLnN0cmVhbXMpOworCWhkY3AtPmhkY3AyX3N1cHBvcnRlZCA9IHRydWU7CisK K2V4aXQ6CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCA4 MzYzZmJkMThlZTguLjc5ODhmOTU4ZDgzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpA QCAtMjM2Niw3ICsyMzY2LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCiAJaWYgKGlzX2hkY3Bfc3Vw cG9ydGVkKGRldl9wcml2LCBwb3J0KSkgewogCQlpbnQgcmV0ID0gaW50ZWxfaGRjcF9pbml0KGlu dGVsX2Nvbm5lY3RvciwKLQkJCQkJICAmaW50ZWxfaGRtaV9oZGNwX3NoaW0pOworCQkJCQkgICZp bnRlbF9oZG1pX2hkY3Bfc2hpbSwgZmFsc2UpOwogCQlpZiAocmV0KQogCQkJRFJNX0RFQlVHX0tN UygiSERDUCBpbml0IGZhaWxlZCwgc2tpcHBpbmcuXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaApp bmRleCAzNDZiMWY1Y2IxODAuLjk5ODYxNzRlZTA5MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0v aTkxNV9jb21wb25lbnQuaAorKysgYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCkBAIC0y NCw2ICsyNCwxMCBAQAogI2lmbmRlZiBfSTkxNV9DT01QT05FTlRfSF8KICNkZWZpbmUgX0k5MTVf Q09NUE9ORU5UX0hfCiAKKyNpbmNsdWRlIDxsaW51eC9tZWlfY2xfYnVzLmg+CisjaW5jbHVkZSA8 bGludXgvbWVpX2hkY3AuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2hkY3AuaD4KKwogLyogTUFYX1BP UlQgaXMgdGhlIG51bWJlciBvZiBwb3J0CiAgKiBJdCBtdXN0IGJlIHN5bmMgd2l0aCBJOTE1X01B WF9QT1JUUyBkZWZpbmVkIGk5MTVfZHJ2LmgKICAqLwpAQCAtMTIxLDQgKzEyNSw4OCBAQCBzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgewogCWNvbnN0IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9hdWRpb19vcHMgKmF1ZGlvX29wczsKIH07CiAKK3N0cnVjdCBpOTE1X2hkY3BfY29tcG9u ZW50X29wcyB7CisJLyoqCisJICogQG93bmVyOiBtZWlfaGRjcCBtb2R1bGUKKwkgKi8KKwlzdHJ1 Y3QgbW9kdWxlICpvd25lcjsKKwlpbnQgKCppbml0aWF0ZV9oZGNwMl9zZXNzaW9uKShzdHJ1Y3Qg bWVpX2NsX2RldmljZSAqY2xkZXYsCisJCQkJICAgICAgc3RydWN0IG1laV9oZGNwX2RhdGEgKmRh dGEsCisJCQkJICAgICAgc3RydWN0IGhkY3AyX2FrZV9pbml0ICpha2VfZGF0YSk7CisJaW50CisJ KCp2ZXJpZnlfcmVjZWl2ZXJfY2VydF9wcmVwYXJlX2ttKShzdHJ1Y3QgbWVpX2NsX2RldmljZSAq Y2xkZXYsCisJCQkJCSAgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhLAorCQkJCQkgICBzdHJ1 Y3QgaGRjcDJfYWtlX3NlbmRfY2VydCAqcnhfY2VydCwKKwkJCQkJICAgYm9vbCAqa21fc3RvcmVk LAorCQkJCQkgICBzdHJ1Y3QgaGRjcDJfYWtlX25vX3N0b3JlZF9rbQorCQkJCQkJCQkqZWtfcHVi X2ttLAorCQkJCQkgICBzaXplX3QgKm1zZ19zeik7CisJaW50ICgqdmVyaWZ5X2hwcmltZSkoc3Ry dWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2LAorCQkJICAgICBzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAq ZGF0YSwKKwkJCSAgICAgc3RydWN0IGhkY3AyX2FrZV9zZW5kX2hwcmltZSAqcnhfaHByaW1lKTsK KwlpbnQgKCpzdG9yZV9wYWlyaW5nX2luZm8pKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldiwK KwkJCQkgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhLAorCQkJCSAgc3RydWN0IGhkY3AyX2Fr ZV9zZW5kX3BhaXJpbmdfaW5mbworCQkJCQkJCQkqcGFpcmluZ19pbmZvKTsKKwlpbnQgKCppbml0 aWF0ZV9sb2NhbGl0eV9jaGVjaykoc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2LAorCQkJCSAg ICAgICBzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAqZGF0YSwKKwkJCQkgICAgICAgc3RydWN0IGhkY3Ay X2xjX2luaXQgKmxjX2luaXRfZGF0YSk7CisJaW50ICgqdmVyaWZ5X2xwcmltZSkoc3RydWN0IG1l aV9jbF9kZXZpY2UgKmNsZGV2LAorCQkJICAgICBzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAqZGF0YSwK KwkJCSAgICAgc3RydWN0IGhkY3AyX2xjX3NlbmRfbHByaW1lICpyeF9scHJpbWUpOworCWludCAo KmdldF9zZXNzaW9uX2tleSkoc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2LAorCQkJICAgICAg IHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhLAorCQkJICAgICAgIHN0cnVjdCBoZGNwMl9za2Vf c2VuZF9la3MgKnNrZV9kYXRhKTsKKwlpbnQKKwkoKnJlcGVhdGVyX2NoZWNrX2Zsb3dfcHJlcGFy ZV9hY2spKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldiwKKwkJCQkJICAgc3RydWN0IG1laV9o ZGNwX2RhdGEgKmRhdGEsCisJCQkJCSAgIHN0cnVjdCBoZGNwMl9yZXBfc2VuZF9yZWNlaXZlcmlk X2xpc3QKKwkJCQkJCQkJKnJlcF90b3BvbG9neSwKKwkJCQkJICAgc3RydWN0IGhkY3AyX3JlcF9z ZW5kX2FjaworCQkJCQkJCQkqcmVwX3NlbmRfYWNrKTsKKwlpbnQgKCp2ZXJpZnlfbXByaW1lKShz dHJ1Y3QgbWVpX2NsX2RldmljZSAqY2xkZXYsCisJCQkgICAgIHN0cnVjdCBtZWlfaGRjcF9kYXRh ICpkYXRhLAorCQkJICAgICBzdHJ1Y3QgaGRjcDJfcmVwX3N0cmVhbV9yZWFkeSAqc3RyZWFtX3Jl YWR5KTsKKwlpbnQgKCplbmFibGVfaGRjcF9hdXRoZW50aWNhdGlvbikoc3RydWN0IG1laV9jbF9k ZXZpY2UgKmNsZGV2LAorCQkJCQkgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhKTsKKwlpbnQg KCpjbG9zZV9oZGNwX3Nlc3Npb24pKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldiwKKwkJCQkg IHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhKTsKK307CisKK3N0cnVjdCBpOTE1X2hkY3BfY29t cG9uZW50X21hc3Rlcl9vcHMgeworCXZvaWQgKCpwdWxsX2Rvd25faW50ZXJmYWNlKShzdHJ1Y3Qg ZGV2aWNlICpkZXYpOworfTsKKworLyoqCisgKiBzdHJ1Y3QgaTkxNV9tZWlfaGRjcF9jb21wb25l bnQgLSBVc2VkIGZvciBkaXJlY3QgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIGk5MTUKKyAqIGFuZCBt ZWlfaGRjcCBkcml2ZXJzCisgKi8KK3N0cnVjdCBpOTE1X2hkY3BfY29tcG9uZW50IHsKKwkvKioK KwkgKiBAZGV2OiBLZGV2IG9mIFNsYXZlIENvbXBvbmVudC4gUGFzc2VkIHRvIGJpbmQgY2FsbHMu CisJICovCisJc3RydWN0IGRldmljZSAqZGV2OworCS8qKgorCSAqIEBpOTE1X2tkZXY6IEtkZXYg b2YgSTkxNS4gVXNlZCBmcm9tIHRoZSBjbGllbnQgY29tcG9uZW50IGZvcgorCSAqIHJlbW92aW5n IHRoZSByZWZlcmVuY2UgdG8gbWVpX2NsZGV2LgorCSAqLworCXN0cnVjdCBkZXZpY2UgKmk5MTVf a2RldjsKKwkvKioKKwkgKiBAbWVpX2NsZGV2OiBtZWkgY2xpZW50IGRldmljZSwgdXNlZCBhcyBw YXJhbWV0ZXIgZm9yIG9wcworCSAqLworCXN0cnVjdCBtZWlfY2xfZGV2aWNlICptZWlfY2xkZXY7 CisJLyoqCisJICogQG11dGV4OiBNdXRleCB0byBwcm90ZWN0IHRoZSBzdGF0ZSBvZiBtZWlfY2xk ZXYKKwkgKi8KKwlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CisJLyoqCisJICogQG9wczogT3BzIGltcGxl bWVudGVkIGJ5IG1laV9oZGNwIGRyaXZlciwgdXNlZCBieSBpOTE1IGRyaXZlci4KKwkgKi8KKwlj b25zdCBzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMgKm9wczsKKwkvKioKKwkgKiBAbWFz dGVyX29wczogT3BzIGltcGxlbWVudGVkIGJ5IEk5MTUgZHJpdmVyLCB1c2VkIGJ5IG1laV9oZGNw IGRyaXZlci4KKwkgKi8KKwljb25zdCBzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBvbmVudF9tYXN0ZXJf b3BzICptYXN0ZXJfb3BzOworfTsKKwogI2VuZGlmIC8qIF9JOTE1X0NPTVBPTkVOVF9IXyAqLwot LSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=