From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v10 08/40] drm/i915: Enable and Disable of HDCP2.2 Date: Thu, 31 Jan 2019 12:29:24 +0530 Message-ID: <1548917996-28081-9-git-send-email-ramalingam.c@intel.com> References: <1548917996-28081-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: <1548917996-28081-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 Q29uc2lkZXJpbmcgdGhhdCBIRENQMi4yIGlzIG1vcmUgc2VjdXJlIHRoYW4gSERDUDEuNCwgV2hl biBhIHNldHVwCnN1cHBvcnRzIEhEQ1AyLjIgYW5kIEhEQ1AxLjQsIEhEQ1AyLjIgd2lsbCBiZSBl bmFibGVkLgoKV2hlbiBIRENQMi4yIGVuYWJsaW5nIGZhaWxzIGFuZCBIRENQMS40IGlzIHN1cHBv cnRlZCwgSERDUDEuNCBpcwplbmFibGVkLgoKVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBhIHNlcXVl bmNlIG9mIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgb2YKSERDUDIuMiBhdXRoZW50aWNhdGlvbiBh bmQgSERDUDIuMiBwb3J0IGVuY3J5cHRpb24uCgp2MjoKICBJbmNsdWRlZCBmZXcgb3B0aW1pemF0 aW9uIHN1Z2dlc3Rpb25zIFtDaHJpcyBXaWxzb25dCiAgQ29tbWl0IG1lc3NhZ2UgaXMgdXBkYXRl ZCBhcyBwZXIgdGhlIHJlYmFzZWQgdmVyc2lvbi4KICBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlciBp cyB1c2VkIGluc3RlYWQgb2Ygd2FpdF9mb3IuIFtDaHJpcyBXaWxzb25dCnYzOgogIEV4dHJhIGNv bW1lbnQgYWRkZWQgYW5kIFN0eWxlIGlzc3VlIGZpeGVkIFtVbWFdCnY0OgogIFJlYmFzZWQgYXMg cGFydCBvZiBwYXRjaCByZW9yZGVyaW5nLgogIEhEQ1AyIGVuY3J5cHRpb24gc3RhdHVzIGlzIHRy YWNrZWQuCiAgSFcgc3RhdGUgY2hlY2sgaXMgbW92ZWQgaW50byBXQVJOX09OIFtEYW5pZWxdCnY1 OgogIFJlZGVmaW5lZCB0aGUgbWVpIHNlcnZpY2UgZnVuY3Rpb25zIGFzIHBlciBjb21wIHJlZGVz aWduLgogIE1lcmdlZCBwYXRjaGVzIHJlbGF0ZWQgdG8gaGRjcDIuMiBlbmFibGluZyBhbmQgZGlz YWJsaW5nIFtTZWFuIFBhdWxdLgogIFJlcXVpcmVkIHNoaW0gZnVuY3Rpb25hbGl0eSBpcyBkZWZp bmVkIFtTZWFuIFBhdWxdCnY2OgogIFJldHVybiB2YWx1ZXMgYXJlIGhhbmRsZXMgW1VtYV0KICBS ZWFsaWduZWQgdGhlIGNvZGUuCiAgQ2hlY2sgZm9yIGNvbXBfbWFzdGVyIGlzIHJlbW92ZWQuCnY3 OgogIEhEQ1AyLjIgaXMgYXR0ZW1wdGVkIG9ubHkgaWYgbWVpIGludGVyZmFjZSBpcyB1cC4KICBB ZGp1c3QgdG8gdGhlIG5ldyBpbnRlcmZhY2UKICBBdm9pZCBib29sIHVzYWdlIGluIHN0cnVjdCBb VG9tYXNdCnY4OgogIG1laV9iaW5kZWQgc3RhdHVzIGNoZWNrIGlzIHJlbW92ZWQuCiAgJXMvaGRj cDJfaW5fdXNlL2hkY3AyX2VuY3J5cHRlZAp2OToKICBib29sIGlzIHVzZWQgaW4gc3RydWN0IGlu dGVsX2hkY3AuIFtEYW5pZWxdCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5n YW0uY0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVy QGZmd2xsLmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICB8ICAgNyAr KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMjAyICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDEzYTQx ZThjZjRmZi4uMzFjN2E0NTc3Y2E5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMzg5 LDYgKzM4OSwxMCBAQCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIHsKIAogCS8qIEhEQ1AgYWRhcHRh dGlvbihEUC9IRE1JKSByZXF1aXJlZCBvbiB0aGUgcG9ydCAqLwogCWVudW0gaGRjcF93aXJlZF9w cm90b2NvbCBwcm90b2NvbDsKKworCS8qIERldGVjdHMgd2hldGhlciBQYW5lbCBpcyBIRENQMi4y IGNhcGFibGUgKi8KKwlpbnQgKCpoZGNwXzJfMl9jYXBhYmxlKShzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCQlib29sICpjYXBhYmxlKTsKIH07CiAKIHN0cnVj dCBpbnRlbF9oZGNwIHsKQEAgLTQwNiw2ICs0MTAsOSBAQCBzdHJ1Y3QgaW50ZWxfaGRjcCB7CiAJ LyogRmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGlzIGNvbm5lY3RvciBzdXBwb3J0cyBIRENQMi4y IG9yIG5vdC4gKi8KIAlib29sIGhkY3AyX3N1cHBvcnRlZDsKIAorCS8qIEhEQ1AyLjIgRW5jcnlw dGlvbiBzdGF0dXMgKi8KKwlib29sIGhkY3AyX2VuY3J5cHRlZDsKKwogCS8qCiAJICogQ29udGVu dCBTdHJlYW0gVHlwZSBkZWZpbmVkIGJ5IGNvbnRlbnQgb3duZXIuIFRZUEUwKDB4MCkgY29udGVu dCBjYW4KIAkgKiBmbG93IGluIHRoZSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4yIG9yIEhEQ1Ax LjQsIHdoZXJlIGFzIFRZUEUxKDB4MSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwppbmRleCBj MWIwNTdmMTUwMWIuLmZiZjhiNzg5M2JmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRjcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwpA QCAtNzQsNiArNzQsMjMgQEAgYm9vbCBpbnRlbF9oZGNwX2NhcGFibGUoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiBjYXBhYmxlOwogfQogCisvKiBJcyBIRENQMi4y IGNhcGFibGUgb24gUGxhdGZvcm0gYW5kIFNpbmsgKi8KK3N0YXRpYyBib29sIGludGVsX2hkY3Ay X2NhcGFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25u ZWN0b3IpOworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwli b29sIGNhcGFibGUgPSBmYWxzZTsKKworCS8qIEk5MTUgc3VwcG9ydCBmb3IgSERDUDIuMiAqLwor CWlmICghaGRjcC0+aGRjcDJfc3VwcG9ydGVkKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBTaW5r J3MgY2FwYWJpbGl0eSBmb3IgSERDUDIuMiAqLworCWhkY3AtPnNoaW0tPmhkY3BfMl8yX2NhcGFi bGUoaW50ZWxfZGlnX3BvcnQsICZjYXBhYmxlKTsKKworCXJldHVybiBjYXBhYmxlOworfQorCiBz dGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfaGRjcF9pbl91c2Uoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CkBAIC0xMDk0LDggKzExMTEsNyBAQCBpbnQgaGRj cDJfYXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog CXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQotaW50IGhk Y3AyX2Nsb3NlX21laV9zZXNzaW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK K3N0YXRpYyBpbnQgaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3Rl ciAqY29tcDsKQEAgLTExMTYsMTIgKzExMzIsMTU3IEBAIGludCBoZGNwMl9jbG9zZV9tZWlfc2Vz c2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJcmV0dXJuIHJldDsKIH0K IAotc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCi1pbnQgaGRjcDJfZGVhdXRoZW50aWNh dGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgaW50IGhk Y3AyX2RlYXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogewogCXJldHVybiBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihjb25uZWN0b3IpOwogfQogCitz dGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9zaW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKK3sKKwlEUk1fRVJST1IoIlNpbmsgYXV0aGVudGljYXRpb24gaXMgZG9uZSBp biBzdWJzZXF1ZW50IHBhdGNoZXNcbiIpOworCisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRp YyBpbnQgaGRjcDJfZW5hYmxlX2VuY3J5cHRpb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g Y29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2hk Y3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCWVudW0gcG9ydCBwb3J0ID0gY29ubmVjdG9y LT5lbmNvZGVyLT5wb3J0OworCWludCByZXQ7CisKKwlXQVJOX09OKEk5MTVfUkVBRChIRENQMl9T VEFUVVNfRERJKHBvcnQpKSAmIExJTktfRU5DUllQVElPTl9TVEFUVVMpOworCisJaWYgKGhkY3At PnNoaW0tPnRvZ2dsZV9zaWduYWxsaW5nKSB7CisJCXJldCA9IGhkY3AtPnNoaW0tPnRvZ2dsZV9z aWduYWxsaW5nKGludGVsX2RpZ19wb3J0LCB0cnVlKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gZW5hYmxlIEhEQ1Agc2lnbmFsbGluZy4gJWRcbiIsCisJCQkJICByZXQp OworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWlmIChJOTE1X1JFQUQoSERDUDJfU1RBVFVT X0RESShwb3J0KSkgJiBMSU5LX0FVVEhfU1RBVFVTKSB7CisJCS8qIExpbmsgaXMgQXV0aGVudGlj YXRlZC4gTm93IHNldCBmb3IgRW5jcnlwdGlvbiAqLworCQlJOTE1X1dSSVRFKEhEQ1AyX0NUTF9E REkocG9ydCksCisJCQkgICBJOTE1X1JFQUQoSERDUDJfQ1RMX0RESShwb3J0KSkgfAorCQkJICAg Q1RMX0xJTktfRU5DUllQVElPTl9SRVEpOworCX0KKworCXJldCA9IGludGVsX3dhaXRfZm9yX3Jl Z2lzdGVyKGRldl9wcml2LCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAorCQkJCSAgICAgIExJTktf RU5DUllQVElPTl9TVEFUVVMsCisJCQkJICAgICAgTElOS19FTkNSWVBUSU9OX1NUQVRVUywKKwkJ CQkgICAgICBFTkNSWVBUX1NUQVRVU19DSEFOR0VfVElNRU9VVF9NUyk7CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgaW50IGhkY3AyX2Rpc2FibGVfZW5jcnlwdGlvbihzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlz dHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJZW51bSBwb3J0IHBv cnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7CisJaW50IHJldDsKKworCVdBUk5fT04oIShJ OTE1X1JFQUQoSERDUDJfU1RBVFVTX0RESShwb3J0KSkgJiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVT KSk7CisKKwlJOTE1X1dSSVRFKEhEQ1AyX0NUTF9EREkocG9ydCksCisJCSAgIEk5MTVfUkVBRChI RENQMl9DVExfRERJKHBvcnQpKSAmIH5DVExfTElOS19FTkNSWVBUSU9OX1JFUSk7CisKKwlyZXQg PSBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwgSERDUDJfU1RBVFVTX0RESShwb3J0 KSwKKwkJCQkgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTLCAweDAsCisJCQkJICAgICAgRU5D UllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpOworCWlmIChyZXQgPT0gLUVUSU1FRE9VVCkK KwkJRFJNX0RFQlVHX0tNUygiRGlzYWJsZSBFbmNyeXB0aW9uIFRpbWVkb3V0Iik7CisKKwlpZiAo aGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsKKwkJcmV0ID0gaGRjcC0+c2hpbS0+dG9n Z2xlX3NpZ25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIGZhbHNlKTsKKwkJaWYgKHJldCkgeworCQkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBIRENQIHNpZ25hbGxpbmcuICVkXG4iLAorCQkJ CSAgcmV0KTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9hbmRfZW5jcnlwdChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldCwgaSwgdHJpZXMgPSAzOworCisJZm9yIChp ID0gMDsgaSA8IHRyaWVzOyBpKyspIHsKKwkJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRlX3Npbmso Y29ubmVjdG9yKTsKKwkJaWYgKCFyZXQpCisJCQlicmVhazsKKworCQkvKiBDbGVhcmluZyB0aGUg bWVpIGhkY3Agc2Vzc2lvbiAqLworCQlEUk1fREVCVUdfS01TKCJIRENQMi4yIEF1dGggJWQgb2Yg JWQgRmFpbGVkLiglZClcbiIsCisJCQkgICAgICBpICsgMSwgdHJpZXMsIHJldCk7CisJCWlmICho ZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQorCQkJRFJNX0RFQlVHX0tN UygiUG9ydCBkZWF1dGggZmFpbGVkLlxuIik7CisJfQorCisJaWYgKGkgIT0gdHJpZXMpIHsKKwkJ LyoKKwkJICogRW5zdXJpbmcgdGhlIHJlcXVpcmVkIDIwMG1TZWMgbWluIHRpbWUgaW50ZXJ2YWwg YmV0d2VlbgorCQkgKiBTZXNzaW9uIEtleSBFeGNoYW5nZSBhbmQgZW5jcnlwdGlvbi4KKwkJICov CisJCW1zbGVlcChIRENQXzJfMl9ERUxBWV9CRUZPUkVfRU5DUllQVElPTl9FTik7CisJCXJldCA9 IGhkY3AyX2VuYWJsZV9lbmNyeXB0aW9uKGNvbm5lY3Rvcik7CisJCWlmIChyZXQgPCAwKSB7CisJ CQlEUk1fREVCVUdfS01TKCJFbmNyeXB0aW9uIEVuYWJsZSBGYWlsZWQuKCVkKVxuIiwgcmV0KTsK KwkJCWlmIChoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQorCQkJCURS TV9ERUJVR19LTVMoIlBvcnQgZGVhdXRoIGZhaWxlZC5cbiIpOworCQl9CisJfQorCisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIGludCBfaW50ZWxfaGRjcDJfZW5hYmxlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25u ZWN0b3ItPmhkY3A7CisJaW50IHJldDsKKworCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIu MiBpcyBiZWluZyBlbmFibGVkLiBUeXBlOiAlZFxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNl Lm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAorCQkgICAgICBoZGNwLT5jb250ZW50X3R5 cGUpOworCisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRlX2FuZF9lbmNyeXB0KGNvbm5lY3Rvcik7 CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfS01TKCJIRENQMiBUeXBlJWQgIEVuYWJsaW5nIEZh aWxlZC4gKCVkKVxuIiwKKwkJCSAgICAgIGhkY3AtPmNvbnRlbnRfdHlwZSwgcmV0KTsKKwkJcmV0 dXJuIHJldDsKKwl9CisKKwlEUk1fREVCVUdfS01TKCJbJXM6JWRdIEhEQ1AyLjIgaXMgZW5hYmxl ZC4gVHlwZSAlZFxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+ YmFzZS5iYXNlLmlkLAorCQkgICAgICBoZGNwLT5jb250ZW50X3R5cGUpOworCisJaGRjcC0+aGRj cDJfZW5jcnlwdGVkID0gdHJ1ZTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfaW50ZWxf aGRjcDJfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50 IHJldDsKKworCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBiZWluZyBEaXNhYmxl ZFxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNl LmlkKTsKKworCXJldCA9IGhkY3AyX2Rpc2FibGVfZW5jcnlwdGlvbihjb25uZWN0b3IpOworCisJ aWYgKGhkY3AyX2RlYXV0aGVudGljYXRlX3BvcnQoY29ubmVjdG9yKSA8IDApCisJCURSTV9ERUJV R19LTVMoIlBvcnQgZGVhdXRoIGZhaWxlZC5cbiIpOworCisJY29ubmVjdG9yLT5oZGNwLmhkY3Ay X2VuY3J5cHRlZCA9IGZhbHNlOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIHZvaWQgaW50 ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3Qg aW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih0b19kZWxheWVkX3dvcmsod29yayksCkBA IC0xMjcwLDIyICsxNDMxLDMzIEBAIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25u ZWN0b3ItPmhkY3A7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKIAogCWlmICghaGRj cC0+c2hpbSkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKIAltdXRleF9sb2NrKCZoZGNwLT5tdXRleCk7 CiAKLQlyZXQgPSBfaW50ZWxfaGRjcF9lbmFibGUoY29ubmVjdG9yKTsKLQlpZiAocmV0KQotCQln b3RvIG91dDsKKwkvKgorCSAqIENvbnNpZGVyaW5nIHRoYXQgSERDUDIuMiBpcyBtb3JlIHNlY3Vy ZSB0aGFuIEhEQ1AxLjQsIElmIHRoZSBzZXR1cAorCSAqIGlzIGNhcGFibGUgb2YgSERDUDIuMiwg aXQgaXMgcHJlZmVycmVkIHRvIHVzZSBIRENQMi4yLgorCSAqLworCWlmIChpbnRlbF9oZGNwMl9j YXBhYmxlKGNvbm5lY3RvcikpCisJCXJldCA9IF9pbnRlbF9oZGNwMl9lbmFibGUoY29ubmVjdG9y KTsKKworCS8qIFdoZW4gSERDUDIuMiBmYWlscywgSERDUDEuNCB3aWxsIGJlIGF0dGVtcHRlZCAq LworCWlmIChyZXQgJiYgaW50ZWxfaGRjcF9jYXBhYmxlKGNvbm5lY3RvcikpIHsKKwkJcmV0ID0g X2ludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3Rvcik7CisJCWlmICghcmV0KQorCQkJc2NoZWR1bGVf ZGVsYXllZF93b3JrKCZoZGNwLT5jaGVja193b3JrLAorCQkJCQkgICAgICBEUk1fSERDUF9DSEVD S19QRVJJT0RfTVMpOworCX0KKworCWlmICghcmV0KSB7CisJCWhkY3AtPnZhbHVlID0gRFJNX01P REVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnBy b3Bfd29yayk7CisJfQogCi0JaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJ T05fRU5BQkxFRDsKLQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwotCXNjaGVkdWxl X2RlbGF5ZWRfd29yaygmaGRjcC0+Y2hlY2tfd29yaywKLQkJCSAgICAgIERSTV9IRENQX0NIRUNL X1BFUklPRF9NUyk7Ci1vdXQ6CiAJbXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJcmV0dXJu IHJldDsKIH0KQEAgLTEzMDIsNyArMTQ3NCw5IEBAIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCiAJaWYgKGhkY3AtPnZhbHVlICE9IERS TV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsKIAkJaGRjcC0+dmFsdWUgPSBE Uk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEOwotCQlpZiAoaGRjcC0+aGRjcF9l bmNyeXB0ZWQpCisJCWlmIChoZGNwLT5oZGNwMl9lbmNyeXB0ZWQpCisJCQlyZXQgPSBfaW50ZWxf aGRjcDJfZGlzYWJsZShjb25uZWN0b3IpOworCQllbHNlIGlmIChoZGNwLT5oZGNwX2VuY3J5cHRl ZCkKIAkJCXJldCA9IF9pbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKIAl9CiAKLS0gCjIu Ny40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK