From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v9 6/6] drm/i915/hdcp: Enable HDCP 1.4 and 2.2 on Gen12+ Date: Thu, 22 Aug 2019 20:49:04 +0530 Message-ID: <20190822151904.17919-7-ramalingam.c@intel.com> References: <20190822151904.17919-1-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190822151904.17919-1-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 , dri-devel Cc: Jani Nikula , tomas.winkler@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbSBHZW4xMiBvbndhcmRzLCBIRENQIEhXIGJsb2NrIGlzIGltcGxlbWVudGVkIHdpdGhpbiB0 cmFuc2NvZGVycy4KVGlsbCBHZW4xMSBIRENQIEhXIGJsb2NrIHdhcyBwYXJ0IG9mIERESS4KCkhl bmNlIHJlcXVpcmVkIGNoYW5nZXMgaW4gSFcgcHJvZ3JhbW1pbmcgaXMgaGFuZGxlZCBoZXJlLgoK QXMgTUUgRlcgbmVlZHMgdGhlIHRyYW5zY29kZXIgZGV0YWlsIG9uIHdoaWNoIEhEQ1AgaXMgZW5h YmxlZApvbiBHZW4xMisgcGxhdGZvcm0sIHdlIGFyZSBwb3B1bGF0aW5nIHRoZSBkZXRhaWwgaW4g aGRjcF9wb3J0X2RhdGEuCgp2MjoKICBfTU1JT19UUkFOUyBpcyB1c2VkIFtMdWNhcyBhbmQgRGFu aWVsXQogIHBsYXRmb3JtIGNoZWNrIGlzIG1vdmVkIGludG8gdGhlIGNhbGxlciBbTHVjYXNdCnYz OgogIHBsYXRmb3JtIGNoZWNrIGlzIG1vdmVkIGludG8gYSBtYWNybyBbU2hhc2hhbmtdCnY0Ogog IEZldyBvcHRpbWl6YXRpb25zIGluIHRoZSBjb2RpbmcgW1NoYXNoYW5rXQp2NToKICBGaXhlZCBh bGlnbm1lbnQgaW4gbWFjcm8gZGVmaW5pdGlvbiBpbiBpOTE1X3JlZy5oIFtTaGFzaGFua10KICB1 bnVzZWQgdmFyaWFibGVzICJyZWciIGlzIHJlbW92ZWQuCnY2OgogIENvbmZpZ3VyaW5nIHRoZSB0 cmFuc2NvZGVyIGF0IGNvbXB1dGVfY29uZmlnLgogIHRyYW5zY29kZXIgaXMgdXNlZCBpbnN0ZWFk IG9mIHBpcGUgaW4gbWFjcm9zLgogIFJlYmFzZWQuCnY3OgogIHRyYW5zY29kZXIgaXMgY2FjaGVk IGF0IGludGVsX2hkY3AKICBoZGNwX3BvcnRfZGF0YSBpcyBjb25maWd1cmVkIHdpdGggdHJhbnNj b2RlciBpbmRleCBhc3BlciBNRSBGVy4Kdjg6CiAgcy90cmFucy9jcHVfdHJhbnNjb2RlcgogIHMv dGMvY3B1X3RyYW5zY29kZXIKClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdh bS5jQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hh cm1hQGludGVsLmNvbT4gW3Y1XQpBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3AuYyB8 IDE0OCArKysrKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2hkbWkuYyB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAg ICAgICAgICAgfCAxMjQgKysrKysrKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDIxOSBp bnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaGRjcC5jCmluZGV4IDFlNTU0ODgzM2U4Zi4uZTIwODQ0MDNkYjI3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3AuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3AuYwpAQCAtMTgsNiArMTgsNyBAQAog I2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9oZGNwLmgi CiAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKKyNpbmNsdWRlICJpbnRlbF9jb25uZWN0b3Iu aCIKIAogI2RlZmluZSBLRVlfTE9BRF9UUklFUwk1CiAjZGVmaW5lIEVOQ1JZUFRfU1RBVFVTX0NI QU5HRV9USU1FT1VUX01TCTUwCkBAIC0xMDUsMjQgKzEwNiwyMCBAQCBib29sIGludGVsX2hkY3Ay X2NhcGFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiBjYXBh YmxlOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfaGRjcF9pbl91c2Uoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIGlubGluZQorYm9vbCBpbnRlbF9oZGNw X2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgICBlbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsIGVudW0gcG9ydCBwb3J0KQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 Ci0JZW51bSBwb3J0IHBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7Ci0JdTMyIHJlZzsK LQotCXJlZyA9IEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKTsKLQlyZXR1cm4gcmVn ICYgSERDUF9TVEFUVVNfRU5DOworCXJldHVybiBJOTE1X1JFQUQoSERDUF9TVEFUVVMoZGV2X3By aXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KSkgJgorCSAgICAgICBIRENQX1NUQVRVU19FTkM7CiB9 CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9oZGNwMl9pbl91c2Uoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIGlubGluZQorYm9vbCBpbnRlbF9oZGNwMl9pbl91 c2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyLCBlbnVtIHBvcnQgcG9ydCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwotCWVudW0gcG9y dCBwb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0OwotCXUzMiByZWc7Ci0KLQlyZWcgPSBJ OTE1X1JFQUQoSERDUDJfU1RBVFVTX0RESShwb3J0KSk7Ci0JcmV0dXJuIHJlZyAmIExJTktfRU5D UllQVElPTl9TVEFUVVM7CisJcmV0dXJuIEk5MTVfUkVBRChIRENQMl9TVEFUVVMoZGV2X3ByaXYs IGNwdV90cmFuc2NvZGVyLCBwb3J0KSkgJgorCSAgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVT OwogfQogCiBzdGF0aWMgaW50IGludGVsX2hkY3BfcG9sbF9rc3ZfZmlmbyhzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKQEAgLTI1Myw5ICsyNTAsMjggQEAgc3RhdGlj IGludCBpbnRlbF93cml0ZV9zaGFfdGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBzaGFfdGV4dCkKIH0KIAogc3RhdGljCi11MzIgaW50ZWxfaGRjcF9nZXRfcmVwZWF0 ZXJfY3RsKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQordTMyIGlu dGVsX2hkY3BfZ2V0X3JlcGVhdGVyX2N0bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyLCBlbnVtIHBvcnQgcG9ydCkK IHsKLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7CisJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwkJc3dpdGNoIChjcHVfdHJhbnNjb2Rlcikgewor CQljYXNlIFRSQU5TQ09ERVJfQToKKwkJCXJldHVybiBIRENQX1RSQU5TQV9SRVBfUFJFU0VOVCB8 CisJCQkgICAgICAgSERDUF9UUkFOU0FfU0hBMV9NMDsKKwkJY2FzZSBUUkFOU0NPREVSX0I6CisJ CQlyZXR1cm4gSERDUF9UUkFOU0JfUkVQX1BSRVNFTlQgfAorCQkJICAgICAgIEhEQ1BfVFJBTlNC X1NIQTFfTTA7CisJCWNhc2UgVFJBTlNDT0RFUl9DOgorCQkJcmV0dXJuIEhEQ1BfVFJBTlNDX1JF UF9QUkVTRU5UIHwKKwkJCSAgICAgICBIRENQX1RSQU5TQ19TSEExX00wOworCQkvKiBGSVhNRTog QWRkIGEgY2FzZSBmb3IgUElQRV9EICovCisJCWRlZmF1bHQ6CisJCQlEUk1fRVJST1IoIlVua25v d24gdHJhbnNjb2RlciAlZFxuIiwgY3B1X3RyYW5zY29kZXIpOworCQkJYnJlYWs7CisJCX0KKwkJ cmV0dXJuIC1FSU5WQUw7CisJfQorCiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSBQT1JUX0E6CiAJ CXJldHVybiBIRENQX0RESUFfUkVQX1BSRVNFTlQgfCBIRENQX0RESUFfU0hBMV9NMDsKQEAgLTI2 OCwxOCArMjg0LDIxIEBAIHUzMiBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiAJY2FzZSBQT1JUX0U6CiAJCXJldHVy biBIRENQX0RESUVfUkVQX1BSRVNFTlQgfCBIRENQX0RESUVfU0hBMV9NMDsKIAlkZWZhdWx0Ogor CQlEUk1fRVJST1IoIlVua25vd24gcG9ydCAlZFxuIiwgcG9ydCk7CiAJCWJyZWFrOwogCX0KLQlE Uk1fRVJST1IoIlVua25vd24gcG9ydCAlZFxuIiwgcG9ydCk7CiAJcmV0dXJuIC1FSU5WQUw7CiB9 CiAKIHN0YXRpYwotaW50IGludGVsX2hkY3BfdmFsaWRhdGVfdl9wcmltZShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKK2ludCBpbnRlbF9oZGNwX3ZhbGlkYXRlX3Zf cHJpbWUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCWNvbnN0IHN0cnVj dCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0sCiAJCQkJdTggKmtzdl9maWZvLCB1OCBudW1fZG93bnN0 cmVhbSwgdTggKmJzdGF0dXMpCiB7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2OworCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNv bm5lY3Rvci0+aGRjcC5jcHVfdHJhbnNjb2RlcjsKKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2Rp Z19wb3J0LT5iYXNlLnBvcnQ7CiAJdTMyIHZwcmltZSwgc2hhX3RleHQsIHNoYV9sZWZ0b3ZlcnMs IHJlcF9jdGw7CiAJaW50IHJldCwgaSwgaiwgc2hhX2lkeDsKIApAQCAtMzA2LDcgKzMyNSw3IEBA IGludCBpbnRlbF9oZGNwX3ZhbGlkYXRlX3ZfcHJpbWUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsCiAJc2hhX2lkeCA9IDA7CiAJc2hhX3RleHQgPSAwOwogCXNoYV9s ZWZ0b3ZlcnMgPSAwOwotCXJlcF9jdGwgPSBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoaW50 ZWxfZGlnX3BvcnQpOworCXJlcF9jdGwgPSBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoZGV2 X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KTsKIAlJOTE1X1dSSVRFKEhEQ1BfUkVQX0NUTCwg cmVwX2N0bCB8IEhEQ1BfU0hBMV9URVhUXzMyKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2Rvd25z dHJlYW07IGkrKykgewogCQl1bnNpZ25lZCBpbnQgc2hhX2VtcHR5OwpAQCAtNTQ4LDcgKzU2Nyw3 IEBAIGludCBpbnRlbF9oZGNwX2F1dGhfZG93bnN0cmVhbShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCiAJICogViBwcmltZSBhdGxlYXN0IHR3aWNlLgogCSAqLwogCWZvciAoaSA9 IDA7IGkgPCB0cmllczsgaSsrKSB7Ci0JCXJldCA9IGludGVsX2hkY3BfdmFsaWRhdGVfdl9wcmlt ZShpbnRlbF9kaWdfcG9ydCwgc2hpbSwKKwkJcmV0ID0gaW50ZWxfaGRjcF92YWxpZGF0ZV92X3By aW1lKGNvbm5lY3Rvciwgc2hpbSwKIAkJCQkJCSAga3N2X2ZpZm8sIG51bV9kb3duc3RyZWFtLAog CQkJCQkJICBic3RhdHVzKTsKIAkJaWYgKCFyZXQpCkBAIC01NzYsNiArNTk1LDcgQEAgc3RhdGlj IGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OwogCWNvbnN0IHN0 cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0gPSBoZGNwLT5zaGltOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdjsKKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBj b25uZWN0b3ItPmhkY3AuY3B1X3RyYW5zY29kZXI7CiAJZW51bSBwb3J0IHBvcnQ7CiAJdW5zaWdu ZWQgbG9uZyByMF9wcmltZV9nZW5fc3RhcnQ7CiAJaW50IHJldCwgaSwgdHJpZXMgPSAyOwpAQCAt NjE1LDE4ICs2MzUsMjEgQEAgc3RhdGljIGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCiAJLyogSW5pdGlhbGl6ZSBBbiB3aXRoIDIgcmFuZG9t IHZhbHVlcyBhbmQgYWNxdWlyZSBpdCAqLwogCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspCi0JCUk5 MTVfV1JJVEUoUE9SVF9IRENQX0FOSU5JVChwb3J0KSwgZ2V0X3JhbmRvbV91MzIoKSk7Ci0JSTkx NV9XUklURShQT1JUX0hEQ1BfQ09ORihwb3J0KSwgSERDUF9DT05GX0NBUFRVUkVfQU4pOworCQlJ OTE1X1dSSVRFKEhEQ1BfQU5JTklUKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgcG9ydCksCisJ CQkgICBnZXRfcmFuZG9tX3UzMigpKTsKKwlJOTE1X1dSSVRFKEhEQ1BfQ09ORihkZXZfcHJpdiwg Y3B1X3RyYW5zY29kZXIsIHBvcnQpLAorCQkgICBIRENQX0NPTkZfQ0FQVFVSRV9BTik7CiAKIAkv KiBXYWl0IGZvciBBbiB0byBiZSBhY3F1aXJlZCAqLwotCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9z ZXQoZGV2X3ByaXYsIFBPUlRfSERDUF9TVEFUVVMocG9ydCksCisJaWYgKGludGVsX2RlX3dhaXRf Zm9yX3NldChkZXZfcHJpdiwKKwkJCQkgIEhEQ1BfU1RBVFVTKGRldl9wcml2LCBjcHVfdHJhbnNj b2RlciwgcG9ydCksCiAJCQkJICBIRENQX1NUQVRVU19BTl9SRUFEWSwgMSkpIHsKIAkJRFJNX0VS Uk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgQW5cbiIpOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsK IAl9CiAKLQlhbi5yZWdbMF0gPSBJOTE1X1JFQUQoUE9SVF9IRENQX0FOTE8ocG9ydCkpOwotCWFu LnJlZ1sxXSA9IEk5MTVfUkVBRChQT1JUX0hEQ1BfQU5ISShwb3J0KSk7CisJYW4ucmVnWzBdID0g STkxNV9SRUFEKEhEQ1BfQU5MTyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpKTsKKwlh bi5yZWdbMV0gPSBJOTE1X1JFQUQoSERDUF9BTkhJKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rlciwg cG9ydCkpOwogCXJldCA9IHNoaW0tPndyaXRlX2FuX2Frc3YoaW50ZWxfZGlnX3BvcnQsIGFuLnNo aW0pOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC02NDQsMjQgKzY2NywyNiBAQCBzdGF0 aWMgaW50IGludGVsX2hkY3BfYXV0aChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip CiAJCXJldHVybiAtRVBFUk07CiAJfQogCi0JSTkxNV9XUklURShQT1JUX0hEQ1BfQktTVkxPKHBv cnQpLCBia3N2LnJlZ1swXSk7Ci0JSTkxNV9XUklURShQT1JUX0hEQ1BfQktTVkhJKHBvcnQpLCBi a3N2LnJlZ1sxXSk7CisJSTkxNV9XUklURShIRENQX0JLU1ZMTyhkZXZfcHJpdiwgY3B1X3RyYW5z Y29kZXIsIHBvcnQpLCBia3N2LnJlZ1swXSk7CisJSTkxNV9XUklURShIRENQX0JLU1ZISShkZXZf cHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpLCBia3N2LnJlZ1sxXSk7CiAKIAlyZXQgPSBzaGlt LT5yZXBlYXRlcl9wcmVzZW50KGludGVsX2RpZ19wb3J0LCAmcmVwZWF0ZXJfcHJlc2VudCk7CiAJ aWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAlpZiAocmVwZWF0ZXJfcHJlc2VudCkKIAkJSTkxNV9X UklURShIRENQX1JFUF9DVEwsCi0JCQkgICBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoaW50 ZWxfZGlnX3BvcnQpKTsKKwkJCSAgIGludGVsX2hkY3BfZ2V0X3JlcGVhdGVyX2N0bChkZXZfcHJp diwgY3B1X3RyYW5zY29kZXIsCisJCQkJCQkgICAgICAgcG9ydCkpOwogCiAJcmV0ID0gc2hpbS0+ dG9nZ2xlX3NpZ25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIHRydWUpOwogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQlJOTE1X1dSSVRFKFBPUlRfSERDUF9DT05GKHBvcnQpLCBIRENQX0NPTkZf QVVUSF9BTkRfRU5DKTsKKwlJOTE1X1dSSVRFKEhEQ1BfQ09ORihkZXZfcHJpdiwgY3B1X3RyYW5z Y29kZXIsIHBvcnQpLAorCQkgICBIRENQX0NPTkZfQVVUSF9BTkRfRU5DKTsKIAogCS8qIFdhaXQg Zm9yIFIwIHJlYWR5ICovCi0JaWYgKHdhaXRfZm9yKEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVT KHBvcnQpKSAmCisJaWYgKHdhaXRfZm9yKEk5MTVfUkVBRChIRENQX1NUQVRVUyhkZXZfcHJpdiwg Y3B1X3RyYW5zY29kZXIsIHBvcnQpKSAmCiAJCSAgICAgKEhEQ1BfU1RBVFVTX1IwX1JFQURZIHwg SERDUF9TVEFUVVNfRU5DKSwgMSkpIHsKIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBm b3IgUjAgcmVhZHlcbiIpOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsKQEAgLTY4OSwyMiArNzE0LDI1 IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9hdXRoKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKIAkJcmV0ID0gc2hpbS0+cmVhZF9yaV9wcmltZShpbnRlbF9kaWdfcG9ydCwgcmku c2hpbSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwotCQlJOTE1X1dSSVRFKFBPUlRfSERD UF9SUFJJTUUocG9ydCksIHJpLnJlZyk7CisJCUk5MTVfV1JJVEUoSERDUF9SUFJJTUUoZGV2X3By aXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KSwgcmkucmVnKTsKIAogCQkvKiBXYWl0IGZvciBSaSBw cmltZSBtYXRjaCAqLwotCQlpZiAoIXdhaXRfZm9yKEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVT KHBvcnQpKSAmCisJCWlmICghd2FpdF9mb3IoSTkxNV9SRUFEKEhEQ1BfU1RBVFVTKGRldl9wcml2 LCBjcHVfdHJhbnNjb2RlciwKKwkJCQkJCSAgICBwb3J0KSkgJgogCQkgICAgKEhEQ1BfU1RBVFVT X1JJX01BVENIIHwgSERDUF9TVEFUVVNfRU5DKSwgMSkpCiAJCQlicmVhazsKIAl9CiAKIAlpZiAo aSA9PSB0cmllcykgewogCQlEUk1fREVCVUdfS01TKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgUmkg cHJpbWUgbWF0Y2ggKCV4KVxuIiwKLQkJCSAgICAgIEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVT KHBvcnQpKSk7CisJCQkgICAgICBJOTE1X1JFQUQoSERDUF9TVEFUVVMoZGV2X3ByaXYsIGNwdV90 cmFuc2NvZGVyLAorCQkJCQkJICAgIHBvcnQpKSk7CiAJCXJldHVybiAtRVRJTUVET1VUOwogCX0K IAogCS8qIFdhaXQgZm9yIGVuY3J5cHRpb24gY29uZmlybWF0aW9uICovCi0JaWYgKGludGVsX2Rl X3dhaXRfZm9yX3NldChkZXZfcHJpdiwgUE9SVF9IRENQX1NUQVRVUyhwb3J0KSwKKwlpZiAoaW50 ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LAorCQkJCSAgSERDUF9TVEFUVVMoZGV2X3ByaXYs IGNwdV90cmFuc2NvZGVyLCBwb3J0KSwKIAkJCQkgIEhEQ1BfU1RBVFVTX0VOQywKIAkJCQkgIEVO Q1JZUFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKSkgewogCQlEUk1fRVJST1IoIlRpbWVkIG91 dCB3YWl0aW5nIGZvciBlbmNyeXB0aW9uXG4iKTsKQEAgLTcyOSwxNSArNzU3LDE3IEBAIHN0YXRp YyBpbnQgX2ludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNl LmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CiAJZW51bSBwb3J0IHBvcnQgPSBp bnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0OworCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2Rl ciA9IGhkY3AtPmNwdV90cmFuc2NvZGVyOwogCWludCByZXQ7CiAKIAlEUk1fREVCVUdfS01TKCJb JXM6JWRdIEhEQ1AgaXMgYmVpbmcgZGlzYWJsZWQuLi5cbiIsCiAJCSAgICAgIGNvbm5lY3Rvci0+ YmFzZS5uYW1lLCBjb25uZWN0b3ItPmJhc2UuYmFzZS5pZCk7CiAKIAloZGNwLT5oZGNwX2VuY3J5 cHRlZCA9IGZhbHNlOwotCUk5MTVfV1JJVEUoUE9SVF9IRENQX0NPTkYocG9ydCksIDApOwotCWlm IChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwgUE9SVF9IRENQX1NUQVRVUyhwb3J0 KSwgfjAsCi0JCQkJICAgIEVOQ1JZUFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKSkgeworCUk5 MTVfV1JJVEUoSERDUF9DT05GKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgcG9ydCksIDApOwor CWlmIChpbnRlbF9kZV93YWl0X2Zvcl9jbGVhcihkZXZfcHJpdiwKKwkJCQkgICAgSERDUF9TVEFU VVMoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KSwKKwkJCQkgICAgfjAsIEVOQ1JZUFRf U1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKSkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBkaXNh YmxlIEhEQ1AsIHRpbWVvdXQgY2xlYXJpbmcgc3RhdHVzXG4iKTsKIAkJcmV0dXJuIC1FVElNRURP VVQ7CiAJfQpAQCAtODA4LDkgKzgzOCwxMSBAQCBzdGF0aWMgaW50IGludGVsX2hkY3BfY2hlY2tf bGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19w b3J0KGNvbm5lY3Rvcik7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5w b3J0OworCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcjsKIAlpbnQgcmV0ID0gMDsKIAog CW11dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKKwljcHVfdHJhbnNjb2RlciA9IGhkY3AtPmNwdV90 cmFuc2NvZGVyOwogCiAJLyogQ2hlY2tfbGluayB2YWxpZCBvbmx5IHdoZW4gSERDUDEuNCBpcyBl bmFibGVkICovCiAJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElP Tl9FTkFCTEVEIHx8CkBAIC04MTksMTAgKzg1MSwxMSBAQCBzdGF0aWMgaW50IGludGVsX2hkY3Bf Y2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJCWdvdG8gb3V0 OwogCX0KIAotCWlmIChXQVJOX09OKCFpbnRlbF9oZGNwX2luX3VzZShjb25uZWN0b3IpKSkgewor CWlmIChXQVJOX09OKCFpbnRlbF9oZGNwX2luX3VzZShkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIs IHBvcnQpKSkgewogCQlEUk1fRVJST1IoIiVzOiVkIEhEQ1AgbGluayBzdG9wcGVkIGVuY3J5cHRp b24sJXhcbiIsCiAJCQkgIGNvbm5lY3Rvci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPmJhc2UuYmFz ZS5pZCwKLQkJCSAgSTkxNV9SRUFEKFBPUlRfSERDUF9TVEFUVVMocG9ydCkpKTsKKwkJCSAgSTkx NV9SRUFEKEhEQ1BfU1RBVFVTKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwKKwkJCQkJCXBvcnQp KSk7CiAJCXJldCA9IC1FTlhJTzsKIAkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BS T1RFQ1RJT05fREVTSVJFRDsKIAkJc2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKQEAg LTE0OTMsMTAgKzE1MjYsMTEgQEAgc3RhdGljIGludCBoZGNwMl9lbmFibGVfZW5jcnlwdGlvbihz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CiAJZW51bSBwb3J0IHBvcnQgPSBjb25u ZWN0b3ItPmVuY29kZXItPnBvcnQ7CisJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g aGRjcC0+Y3B1X3RyYW5zY29kZXI7CiAJaW50IHJldDsKIAotCVdBUk5fT04oSTkxNV9SRUFEKEhE Q1AyX1NUQVRVU19EREkocG9ydCkpICYgTElOS19FTkNSWVBUSU9OX1NUQVRVUyk7Ci0KKwlXQVJO X09OKEk5MTVfUkVBRChIRENQMl9TVEFUVVMoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0 KSkgJgorCQlMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKTsKIAlpZiAoaGRjcC0+c2hpbS0+dG9nZ2xl X3NpZ25hbGxpbmcpIHsKIAkJcmV0ID0gaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcoaW50 ZWxfZGlnX3BvcnQsIHRydWUpOwogCQlpZiAocmV0KSB7CkBAIC0xNTA2LDE0ICsxNTQwLDE4IEBA IHN0YXRpYyBpbnQgaGRjcDJfZW5hYmxlX2VuY3J5cHRpb24oc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogCQl9CiAJfQogCi0JaWYgKEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJ KHBvcnQpKSAmIExJTktfQVVUSF9TVEFUVVMpIHsKKwlpZiAoSTkxNV9SRUFEKEhEQ1AyX1NUQVRV UyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpKSAmCisJICAgIExJTktfQVVUSF9TVEFU VVMpIHsKIAkJLyogTGluayBpcyBBdXRoZW50aWNhdGVkLiBOb3cgc2V0IGZvciBFbmNyeXB0aW9u ICovCi0JCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RESShwb3J0KSwKLQkJCSAgIEk5MTVfUkVBRChI RENQMl9DVExfRERJKHBvcnQpKSB8CisJCUk5MTVfV1JJVEUoSERDUDJfQ1RMKGRldl9wcml2LCBj cHVfdHJhbnNjb2RlciwgcG9ydCksCisJCQkgICBJOTE1X1JFQUQoSERDUDJfQ1RMKGRldl9wcml2 LCBjcHVfdHJhbnNjb2RlciwKKwkJCQkJICAgICAgIHBvcnQpKSB8CiAJCQkgICBDVExfTElOS19F TkNSWVBUSU9OX1JFUSk7CiAJfQogCi0JcmV0ID0gaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9w cml2LCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAorCXJldCA9IGludGVsX2RlX3dhaXRfZm9yX3Nl dChkZXZfcHJpdiwKKwkJCQkgICAgSERDUDJfU1RBVFVTKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rl ciwKKwkJCQkJCSBwb3J0KSwKIAkJCQkgICAgTElOS19FTkNSWVBUSU9OX1NUQVRVUywKIAkJCQkg ICAgRU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpOwogCkBAIC0xNTI2LDE0ICsxNTY0 LDE5IEBAIHN0YXRpYyBpbnQgaGRjcDJfZGlzYWJsZV9lbmNyeXB0aW9uKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNw ID0gJmNvbm5lY3Rvci0+aGRjcDsKIAllbnVtIHBvcnQgcG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rl ci0+cG9ydDsKKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBoZGNwLT5jcHVfdHJh bnNjb2RlcjsKIAlpbnQgcmV0OwogCi0JV0FSTl9PTighKEk5MTVfUkVBRChIRENQMl9TVEFUVVNf RERJKHBvcnQpKSAmIExJTktfRU5DUllQVElPTl9TVEFUVVMpKTsKKwlXQVJOX09OKCEoSTkxNV9S RUFEKEhEQ1AyX1NUQVRVUyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpKSAmCisJCQkg ICAgTElOS19FTkNSWVBUSU9OX1NUQVRVUykpOwogCi0JSTkxNV9XUklURShIRENQMl9DVExfRERJ KHBvcnQpLAotCQkgICBJOTE1X1JFQUQoSERDUDJfQ1RMX0RESShwb3J0KSkgJiB+Q1RMX0xJTktf RU5DUllQVElPTl9SRVEpOworCUk5MTVfV1JJVEUoSERDUDJfQ1RMKGRldl9wcml2LCBjcHVfdHJh bnNjb2RlciwgcG9ydCksCisJCSAgIEk5MTVfUkVBRChIRENQMl9DVEwoZGV2X3ByaXYsIGNwdV90 cmFuc2NvZGVyLCBwb3J0KSkgJgorCQkgICB+Q1RMX0xJTktfRU5DUllQVElPTl9SRVEpOwogCi0J cmV0ID0gaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsIEhEQ1AyX1NUQVRVU19EREko cG9ydCksCisJcmV0ID0gaW50ZWxfZGVfd2FpdF9mb3JfY2xlYXIoZGV2X3ByaXYsCisJCQkJICAg ICAgSERDUDJfU1RBVFVTKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwKKwkJCQkJCSAgIHBvcnQp LAogCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsCiAJCQkJICAgICAgRU5DUllQVF9T VEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpOwogCWlmIChyZXQgPT0gLUVUSU1FRE9VVCkKQEAgLTE2 MzIsOSArMTY3NSwxMSBAQCBzdGF0aWMgaW50IGludGVsX2hkY3AyX2NoZWNrX2xpbmsoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2hk Y3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCWVudW0gcG9ydCBwb3J0ID0gY29ubmVjdG9y LT5lbmNvZGVyLT5wb3J0OworCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcjsKIAlpbnQg cmV0ID0gMDsKIAogCW11dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKKwljcHVfdHJhbnNjb2RlciA9 IGhkY3AtPmNwdV90cmFuc2NvZGVyOwogCiAJLyogaGRjcDJfY2hlY2tfbGluayBpcyBleHBlY3Rl ZCBvbmx5IHdoZW4gSERDUDIuMiBpcyBFbmFibGVkICovCiAJaWYgKGhkY3AtPnZhbHVlICE9IERS TV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9FTkFCTEVEIHx8CkBAIC0xNjQzLDkgKzE2ODgsMTAg QEAgc3RhdGljIGludCBpbnRlbF9oZGNwMl9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKFdBUk5fT04oIWludGVsX2hk Y3AyX2luX3VzZShjb25uZWN0b3IpKSkgeworCWlmIChXQVJOX09OKCFpbnRlbF9oZGNwMl9pbl91 c2UoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0KSkpIHsKIAkJRFJNX0VSUk9SKCJIRENQ Mi4yIGxpbmsgc3RvcHBlZCB0aGUgZW5jcnlwdGlvbiwgJXhcbiIsCi0JCQkgIEk5MTVfUkVBRChI RENQMl9TVEFUVVNfRERJKHBvcnQpKSk7CisJCQkgIEk5MTVfUkVBRChIRENQMl9TVEFUVVMoZGV2 X3ByaXYsIGNwdV90cmFuc2NvZGVyLAorCQkJCQkJIHBvcnQpKSk7CiAJCXJldCA9IC1FTlhJTzsK IAkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKIAkJ c2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9oZG1pLmMKaW5kZXggNmU5YmI2YmQxZWUyLi5mNmJiNzdmZDA5MzAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCkBAIC0xNDkxLDcgKzE0OTEs MTAgQEAgYm9vbCBpbnRlbF9oZG1pX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPQogCQlpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJ c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0KKwkJaW50ZWxfZGlnX3BvcnQtPmhk bWkuYXR0YWNoZWRfY29ubmVjdG9yOwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQt PmJhc2UucG9ydDsKKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjb25uZWN0b3It PmhkY3AuY3B1X3RyYW5zY29kZXI7CiAJaW50IHJldDsKIAl1bmlvbiB7CiAJCXUzMiByZWc7CkBA IC0xNTAyLDEzICsxNTA1LDE0IEBAIGJvb2wgaW50ZWxfaGRtaV9oZGNwX2NoZWNrX2xpbmsoc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiAJaWYgKHJldCkKIAkJcmV0 dXJuIGZhbHNlOwogCi0JSTkxNV9XUklURShQT1JUX0hEQ1BfUlBSSU1FKHBvcnQpLCByaS5yZWcp OworCUk5MTVfV1JJVEUoSERDUF9SUFJJTUUoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBwb3J0 KSwgcmkucmVnKTsKIAogCS8qIFdhaXQgZm9yIFJpIHByaW1lIG1hdGNoICovCi0JaWYgKHdhaXRf Zm9yKEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSAmCisJaWYgKHdhaXRfZm9yKEk5 MTVfUkVBRChIRENQX1NUQVRVUyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpKSAmCiAJ CSAgICAgKEhEQ1BfU1RBVFVTX1JJX01BVENIIHwgSERDUF9TVEFUVVNfRU5DKSwgMSkpIHsKIAkJ RFJNX0VSUk9SKCJSaScgbWlzbWF0Y2ggZGV0ZWN0ZWQsIGxpbmsgY2hlY2sgZmFpbGVkICgleClc biIsCi0JCQkgIEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSk7CisJCQkgIEk5MTVf UkVBRChIRENQX1NUQVRVUyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsCisJCQkJCQlwb3J0KSkp OwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCXJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKaW5kZXggMmFiZDE5OTA5M2M1Li41NzJlNGNiYTg0N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaApAQCAtOTI1NiwxMiArOTI1NiwyMCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKIAogLyog SERDUCBSZXBlYXRlciBSZWdpc3RlcnMgKi8KICNkZWZpbmUgSERDUF9SRVBfQ1RMCQkJX01NSU8o MHg2NmQwMCkKKyNkZWZpbmUgIEhEQ1BfVFJBTlNBX1JFUF9QUkVTRU5UCUJJVCgzMSkKKyNkZWZp bmUgIEhEQ1BfVFJBTlNCX1JFUF9QUkVTRU5UCUJJVCgzMCkKKyNkZWZpbmUgIEhEQ1BfVFJBTlND X1JFUF9QUkVTRU5UCUJJVCgyOSkKKyNkZWZpbmUgIEhEQ1BfVFJBTlNEX1JFUF9QUkVTRU5UCUJJ VCgyOCkKICNkZWZpbmUgIEhEQ1BfRERJQl9SRVBfUFJFU0VOVAkJQklUKDMwKQogI2RlZmluZSAg SERDUF9ERElBX1JFUF9QUkVTRU5UCQlCSVQoMjkpCiAjZGVmaW5lICBIRENQX0RESUNfUkVQX1BS RVNFTlQJCUJJVCgyOCkKICNkZWZpbmUgIEhEQ1BfRERJRF9SRVBfUFJFU0VOVAkJQklUKDI3KQog I2RlZmluZSAgSERDUF9ERElGX1JFUF9QUkVTRU5UCQlCSVQoMjYpCiAjZGVmaW5lICBIRENQX0RE SUVfUkVQX1BSRVNFTlQJCUJJVCgyNSkKKyNkZWZpbmUgIEhEQ1BfVFJBTlNBX1NIQTFfTTAJCSgx IDw8IDIwKQorI2RlZmluZSAgSERDUF9UUkFOU0JfU0hBMV9NMAkJKDIgPDwgMjApCisjZGVmaW5l ICBIRENQX1RSQU5TQ19TSEExX00wCQkoMyA8PCAyMCkKKyNkZWZpbmUgIEhEQ1BfVFJBTlNEX1NI QTFfTTAJCSg0IDw8IDIwKQogI2RlZmluZSAgSERDUF9ERElCX1NIQTFfTTAJCSgxIDw8IDIwKQog I2RlZmluZSAgSERDUF9ERElBX1NIQTFfTTAJCSgyIDw8IDIwKQogI2RlZmluZSAgSERDUF9ERElD X1NIQTFfTTAJCSgzIDw8IDIwKQpAQCAtOTMwMSwxNSArOTMwOSw5MiBAQCBlbnVtIHNrbF9wb3dl cl9nYXRlIHsKIAkJCQkJICBfUE9SVEVfSERDUF9BVVRIRU5DLCBcCiAJCQkJCSAgX1BPUlRGX0hE Q1BfQVVUSEVOQykgKyAoeCkpCiAjZGVmaW5lIFBPUlRfSERDUF9DT05GKHBvcnQpCQlfUE9SVF9I RENQX0FVVEhFTkMocG9ydCwgMHgwKQorI2RlZmluZSBfVFJBTlNBX0hEQ1BfQ09ORgkJMHg2NjQw MAorI2RlZmluZSBfVFJBTlNCX0hEQ1BfQ09ORgkJMHg2NjUwMAorI2RlZmluZSBUUkFOU19IRENQ X0NPTkYodHJhbnMpCQlfTU1JT19UUkFOUyh0cmFucywgX1RSQU5TQV9IRENQX0NPTkYsIFwKKwkJ CQkJCSAgICBfVFJBTlNCX0hEQ1BfQ09ORikKKyNkZWZpbmUgSERDUF9DT05GKGRldl9wcml2LCB0 cmFucywgcG9ydCkgXAorCQkJCQkoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiA/IFwKKwkJCQkJ IFRSQU5TX0hEQ1BfQ09ORih0cmFucykgOiBcCisJCQkJCSBQT1JUX0hEQ1BfQ09ORihwb3J0KSkK KwogI2RlZmluZSAgSERDUF9DT05GX0NBUFRVUkVfQU4JCUJJVCgwKQogI2RlZmluZSAgSERDUF9D T05GX0FVVEhfQU5EX0VOQwkJKEJJVCgxKSB8IEJJVCgwKSkKICNkZWZpbmUgUE9SVF9IRENQX0FO SU5JVChwb3J0KQkJX1BPUlRfSERDUF9BVVRIRU5DKHBvcnQsIDB4NCkKKyNkZWZpbmUgX1RSQU5T QV9IRENQX0FOSU5JVAkJMHg2NjQwNAorI2RlZmluZSBfVFJBTlNCX0hEQ1BfQU5JTklUCQkweDY2 NTA0CisjZGVmaW5lIFRSQU5TX0hEQ1BfQU5JTklUKHRyYW5zKQlfTU1JT19UUkFOUyh0cmFucywg XAorCQkJCQkJICAgIF9UUkFOU0FfSERDUF9BTklOSVQsIFwKKwkJCQkJCSAgICBfVFJBTlNCX0hE Q1BfQU5JTklUKQorI2RlZmluZSBIRENQX0FOSU5JVChkZXZfcHJpdiwgdHJhbnMsIHBvcnQpIFwK KwkJCQkJKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgPyBcCisJCQkJCSBUUkFOU19IRENQX0FO SU5JVCh0cmFucykgOiBcCisJCQkJCSBQT1JUX0hEQ1BfQU5JTklUKHBvcnQpKQorCiAjZGVmaW5l IFBPUlRfSERDUF9BTkxPKHBvcnQpCQlfUE9SVF9IRENQX0FVVEhFTkMocG9ydCwgMHg4KQorI2Rl ZmluZSBfVFJBTlNBX0hEQ1BfQU5MTwkJMHg2NjQwOAorI2RlZmluZSBfVFJBTlNCX0hEQ1BfQU5M TwkJMHg2NjUwOAorI2RlZmluZSBUUkFOU19IRENQX0FOTE8odHJhbnMpCQlfTU1JT19UUkFOUyh0 cmFucywgX1RSQU5TQV9IRENQX0FOTE8sIFwKKwkJCQkJCSAgICBfVFJBTlNCX0hEQ1BfQU5MTykK KyNkZWZpbmUgSERDUF9BTkxPKGRldl9wcml2LCB0cmFucywgcG9ydCkgXAorCQkJCQkoSU5URUxf R0VOKGRldl9wcml2KSA+PSAxMiA/IFwKKwkJCQkJIFRSQU5TX0hEQ1BfQU5MTyh0cmFucykgOiBc CisJCQkJCSBQT1JUX0hEQ1BfQU5MTyhwb3J0KSkKKwogI2RlZmluZSBQT1JUX0hEQ1BfQU5ISShw b3J0KQkJX1BPUlRfSERDUF9BVVRIRU5DKHBvcnQsIDB4QykKKyNkZWZpbmUgX1RSQU5TQV9IRENQ X0FOSEkJCTB4NjY0MEMKKyNkZWZpbmUgX1RSQU5TQl9IRENQX0FOSEkJCTB4NjY1MEMKKyNkZWZp bmUgVFJBTlNfSERDUF9BTkhJKHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMsIF9UUkFOU0FfSERD UF9BTkhJLCBcCisJCQkJCQkgICAgX1RSQU5TQl9IRENQX0FOSEkpCisjZGVmaW5lIEhEQ1BfQU5I SShkZXZfcHJpdiwgdHJhbnMsIHBvcnQpIFwKKwkJCQkJKElOVEVMX0dFTihkZXZfcHJpdikgPj0g MTIgPyBcCisJCQkJCSBUUkFOU19IRENQX0FOSEkodHJhbnMpIDogXAorCQkJCQkgUE9SVF9IRENQ X0FOSEkocG9ydCkpCisKICNkZWZpbmUgUE9SVF9IRENQX0JLU1ZMTyhwb3J0KQkJX1BPUlRfSERD UF9BVVRIRU5DKHBvcnQsIDB4MTApCisjZGVmaW5lIF9UUkFOU0FfSERDUF9CS1NWTE8JCTB4NjY0 MTAKKyNkZWZpbmUgX1RSQU5TQl9IRENQX0JLU1ZMTwkJMHg2NjUxMAorI2RlZmluZSBUUkFOU19I RENQX0JLU1ZMTyh0cmFucykJX01NSU9fVFJBTlModHJhbnMsIFwKKwkJCQkJCSAgICBfVFJBTlNB X0hEQ1BfQktTVkxPLCBcCisJCQkJCQkgICAgX1RSQU5TQl9IRENQX0JLU1ZMTykKKyNkZWZpbmUg SERDUF9CS1NWTE8oZGV2X3ByaXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJCShJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDEyID8gXAorCQkJCQkgVFJBTlNfSERDUF9CS1NWTE8odHJhbnMpIDogXAorCQkJ CQkgUE9SVF9IRENQX0JLU1ZMTyhwb3J0KSkKKwogI2RlZmluZSBQT1JUX0hEQ1BfQktTVkhJKHBv cnQpCQlfUE9SVF9IRENQX0FVVEhFTkMocG9ydCwgMHgxNCkKKyNkZWZpbmUgX1RSQU5TQV9IRENQ X0JLU1ZISQkJMHg2NjQxNAorI2RlZmluZSBfVFJBTlNCX0hEQ1BfQktTVkhJCQkweDY2NTE0Cisj ZGVmaW5lIFRSQU5TX0hEQ1BfQktTVkhJKHRyYW5zKQlfTU1JT19UUkFOUyh0cmFucywgXAorCQkJ CQkJICAgIF9UUkFOU0FfSERDUF9CS1NWSEksIFwKKwkJCQkJCSAgICBfVFJBTlNCX0hEQ1BfQktT VkhJKQorI2RlZmluZSBIRENQX0JLU1ZISShkZXZfcHJpdiwgdHJhbnMsIHBvcnQpIFwKKwkJCQkJ KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgPyBcCisJCQkJCSBUUkFOU19IRENQX0JLU1ZISSh0 cmFucykgOiBcCisJCQkJCSBQT1JUX0hEQ1BfQktTVkhJKHBvcnQpKQorCiAjZGVmaW5lIFBPUlRf SERDUF9SUFJJTUUocG9ydCkJCV9QT1JUX0hEQ1BfQVVUSEVOQyhwb3J0LCAweDE4KQorI2RlZmlu ZSBfVFJBTlNBX0hEQ1BfUlBSSU1FCQkweDY2NDE4CisjZGVmaW5lIF9UUkFOU0JfSERDUF9SUFJJ TUUJCTB4NjY1MTgKKyNkZWZpbmUgVFJBTlNfSERDUF9SUFJJTUUodHJhbnMpCV9NTUlPX1RSQU5T KHRyYW5zLCBcCisJCQkJCQkgICAgX1RSQU5TQV9IRENQX1JQUklNRSwgXAorCQkJCQkJICAgIF9U UkFOU0JfSERDUF9SUFJJTUUpCisjZGVmaW5lIEhEQ1BfUlBSSU1FKGRldl9wcml2LCB0cmFucywg cG9ydCkgXAorCQkJCQkoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiA/IFwKKwkJCQkJIFRSQU5T X0hEQ1BfUlBSSU1FKHRyYW5zKSA6IFwKKwkJCQkJIFBPUlRfSERDUF9SUFJJTUUocG9ydCkpCisK ICNkZWZpbmUgUE9SVF9IRENQX1NUQVRVUyhwb3J0KQkJX1BPUlRfSERDUF9BVVRIRU5DKHBvcnQs IDB4MUMpCisjZGVmaW5lIF9UUkFOU0FfSERDUF9TVEFUVVMJCTB4NjY0MUMKKyNkZWZpbmUgX1RS QU5TQl9IRENQX1NUQVRVUwkJMHg2NjUxQworI2RlZmluZSBUUkFOU19IRENQX1NUQVRVUyh0cmFu cykJX01NSU9fVFJBTlModHJhbnMsIFwKKwkJCQkJCSAgICBfVFJBTlNBX0hEQ1BfU1RBVFVTLCBc CisJCQkJCQkgICAgX1RSQU5TQl9IRENQX1NUQVRVUykKKyNkZWZpbmUgSERDUF9TVEFUVVMoZGV2 X3ByaXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJCShJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8g XAorCQkJCQkgVFJBTlNfSERDUF9TVEFUVVModHJhbnMpIDogXAorCQkJCQkgUE9SVF9IRENQX1NU QVRVUyhwb3J0KSkKKwogI2RlZmluZSAgSERDUF9TVEFUVVNfU1RSRUFNX0FfRU5DCUJJVCgzMSkK ICNkZWZpbmUgIEhEQ1BfU1RBVFVTX1NUUkVBTV9CX0VOQwlCSVQoMzApCiAjZGVmaW5lICBIRENQ X1NUQVRVU19TVFJFQU1fQ19FTkMJQklUKDI5KQpAQCAtOTMzNiwyMyArOTQyMSw0NCBAQCBlbnVt IHNrbF9wb3dlcl9nYXRlIHsKIAkJCQkJICBfUE9SVERfSERDUDJfQkFTRSwgXAogCQkJCQkgIF9Q T1JURV9IRENQMl9CQVNFLCBcCiAJCQkJCSAgX1BPUlRGX0hEQ1AyX0JBU0UpICsgKHgpKQotCi0j ZGVmaW5lIEhEQ1AyX0FVVEhfRERJKHBvcnQpCQlfUE9SVF9IRENQMl9CQVNFKHBvcnQsIDB4OTgp CisjZGVmaW5lIFBPUlRfSERDUDJfQVVUSChwb3J0KQkJX1BPUlRfSERDUDJfQkFTRShwb3J0LCAw eDk4KQorI2RlZmluZSBfVFJBTlNBX0hEQ1AyX0FVVEgJCTB4NjY0OTgKKyNkZWZpbmUgX1RSQU5T Ql9IRENQMl9BVVRICQkweDY2NTk4CisjZGVmaW5lIFRSQU5TX0hEQ1AyX0FVVEgodHJhbnMpCQlf TU1JT19UUkFOUyh0cmFucywgX1RSQU5TQV9IRENQMl9BVVRILCBcCisJCQkJCQkgICAgX1RSQU5T Ql9IRENQMl9BVVRIKQogI2RlZmluZSAgIEFVVEhfTElOS19BVVRIRU5USUNBVEVECUJJVCgzMSkK ICNkZWZpbmUgICBBVVRIX0xJTktfVFlQRQkJQklUKDMwKQogI2RlZmluZSAgIEFVVEhfRk9SQ0Vf Q0xSX0lOUFVUQ1RSCUJJVCgxOSkKICNkZWZpbmUgICBBVVRIX0NMUl9LRVlTCQkJQklUKDE4KQot Ci0jZGVmaW5lIEhEQ1AyX0NUTF9EREkocG9ydCkJCV9QT1JUX0hEQ1AyX0JBU0UocG9ydCwgMHhC MCkKKyNkZWZpbmUgSERDUDJfQVVUSChkZXZfcHJpdiwgdHJhbnMsIHBvcnQpIFwKKwkJCQkJKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTIgPyBcCisJCQkJCSBUUkFOU19IRENQMl9BVVRIKHRyYW5z KSA6IFwKKwkJCQkJIFBPUlRfSERDUDJfQVVUSChwb3J0KSkKKworI2RlZmluZSBQT1JUX0hEQ1Ay X0NUTChwb3J0KQkJX1BPUlRfSERDUDJfQkFTRShwb3J0LCAweEIwKQorI2RlZmluZSBfVFJBTlNB X0hEQ1AyX0NUTAkJMHg2NjRCMAorI2RlZmluZSBfVFJBTlNCX0hEQ1AyX0NUTAkJMHg2NjVCMAor I2RlZmluZSBUUkFOU19IRENQMl9DVEwodHJhbnMpCQlfTU1JT19UUkFOUyh0cmFucywgX1RSQU5T QV9IRENQMl9DVEwsIFwKKwkJCQkJCSAgICBfVFJBTlNCX0hEQ1AyX0NUTCkKICNkZWZpbmUgICBD VExfTElOS19FTkNSWVBUSU9OX1JFUQlCSVQoMzEpCi0KLSNkZWZpbmUgSERDUDJfU1RBVFVTX0RE SShwb3J0KQkJX1BPUlRfSERDUDJfQkFTRShwb3J0LCAweEI0KQotI2RlZmluZSAgIFNUUkVBTV9F TkNSWVBUSU9OX1NUQVRVU19BCUJJVCgzMSkKLSNkZWZpbmUgICBTVFJFQU1fRU5DUllQVElPTl9T VEFUVVNfQglCSVQoMzApCi0jZGVmaW5lICAgU1RSRUFNX0VOQ1JZUFRJT05fU1RBVFVTX0MJQklU KDI5KQorI2RlZmluZSBIRENQMl9DVEwoZGV2X3ByaXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJCShJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8gXAorCQkJCQkgVFJBTlNfSERDUDJfQ1RMKHRyYW5z KSA6IFwKKwkJCQkJIFBPUlRfSERDUDJfQ1RMKHBvcnQpKQorCisjZGVmaW5lIFBPUlRfSERDUDJf U1RBVFVTKHBvcnQpCQlfUE9SVF9IRENQMl9CQVNFKHBvcnQsIDB4QjQpCisjZGVmaW5lIF9UUkFO U0FfSERDUDJfU1RBVFVTCQkweDY2NEI0CisjZGVmaW5lIF9UUkFOU0JfSERDUDJfU1RBVFVTCQkw eDY2NUI0CisjZGVmaW5lIFRSQU5TX0hEQ1AyX1NUQVRVUyh0cmFucykJX01NSU9fVFJBTlModHJh bnMsIFwKKwkJCQkJCSAgICBfVFJBTlNBX0hEQ1AyX1NUQVRVUywgXAorCQkJCQkJICAgIF9UUkFO U0JfSERDUDJfU1RBVFVTKQogI2RlZmluZSAgIExJTktfVFlQRV9TVEFUVVMJCUJJVCgyMikKICNk ZWZpbmUgICBMSU5LX0FVVEhfU1RBVFVTCQlCSVQoMjEpCiAjZGVmaW5lICAgTElOS19FTkNSWVBU SU9OX1NUQVRVUwlCSVQoMjApCisjZGVmaW5lIEhEQ1AyX1NUQVRVUyhkZXZfcHJpdiwgdHJhbnMs IHBvcnQpIFwKKwkJCQkJKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgPyBcCisJCQkJCSBUUkFO U19IRENQMl9TVEFUVVModHJhbnMpIDogXAorCQkJCQkgUE9SVF9IRENQMl9TVEFUVVMocG9ydCkp CiAKIC8qIFBlci1waXBlIERESSBGdW5jdGlvbiBDb250cm9sICovCiAjZGVmaW5lIF9UUkFOU19E RElfRlVOQ19DVExfQQkJMHg2MDQwMAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWw=