From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v9 09/39] drm/i915: Enable and Disable of HDCP2.2 Date: Thu, 13 Dec 2018 09:31:11 +0530 Message-ID: <1544673701-6353-10-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: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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 Q29uc2lkZXJpbmcgdGhhdCBIRENQMi4yIGlzIG1vcmUgc2VjdXJlIHRoYW4gSERDUDEuNCwgV2hl biBhIHNldHVwCnN1cHBvcnRzIEhEQ1AyLjIgYW5kIEhEQ1AxLjQsIEhEQ1AyLjIgd2lsbCBiZSBl bmFibGVkLgoKV2hlbiBIRENQMi4yIGVuYWJsaW5nIGZhaWxzIGFuZCBIRENQMS40IGlzIHN1cHBv cnRlZCwgSERDUDEuNCBpcwplbmFibGVkLgoKVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBhIHNlcXVl bmNlIG9mIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgb2YKSERDUDIuMiBhdXRoZW50aWNhdGlvbiBh bmQgSERDUDIuMiBwb3J0IGVuY3J5cHRpb24uCgp2MjoKICBJbmNsdWRlZCBmZXcgb3B0aW1pemF0 aW9uIHN1Z2dlc3Rpb25zIFtDaHJpcyBXaWxzb25dCiAgQ29tbWl0IG1lc3NhZ2UgaXMgdXBkYXRl ZCBhcyBwZXIgdGhlIHJlYmFzZWQgdmVyc2lvbi4KICBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlciBp cyB1c2VkIGluc3RlYWQgb2Ygd2FpdF9mb3IuIFtDaHJpcyBXaWxzb25dCnYzOgogIEV4dHJhIGNv bW1lbnQgYWRkZWQgYW5kIFN0eWxlIGlzc3VlIGZpeGVkIFtVbWFdCnY0OgogIFJlYmFzZWQgYXMg cGFydCBvZiBwYXRjaCByZW9yZGVyaW5nLgogIEhEQ1AyIGVuY3J5cHRpb24gc3RhdHVzIGlzIHRy YWNrZWQuCiAgSFcgc3RhdGUgY2hlY2sgaXMgbW92ZWQgaW50byBXQVJOX09OIFtEYW5pZWxdCnY1 OgogIFJlZGVmaW5lZCB0aGUgbWVpIHNlcnZpY2UgZnVuY3Rpb25zIGFzIHBlciBjb21wIHJlZGVz aWduLgogIE1lcmdlZCBwYXRjaGVzIHJlbGF0ZWQgdG8gaGRjcDIuMiBlbmFibGluZyBhbmQgZGlz YWJsaW5nIFtTZWFuIFBhdWxdLgogIFJlcXVpcmVkIHNoaW0gZnVuY3Rpb25hbGl0eSBpcyBkZWZp bmVkIFtTZWFuIFBhdWxdCnY2OgogIFJldHVybiB2YWx1ZXMgYXJlIGhhbmRsZXMgW1VtYV0KICBS ZWFsaWduZWQgdGhlIGNvZGUuCiAgQ2hlY2sgZm9yIGNvbXBfbWFzdGVyIGlzIHJlbW92ZWQuCnY3 OgogIEhEQ1AyLjIgaXMgYXR0ZW1wdGVkIG9ubHkgaWYgbWVpIGludGVyZmFjZSBpcyB1cC4KICBB ZGp1c3QgdG8gdGhlIG5ldyBpbnRlcmZhY2UKICBBdm9pZCBib29sIHVzYWdlIGluIHN0cnVjdCBb VG9tYXNdCnY4OgogIG1laV9iaW5kZWQgc3RhdHVzIGNoZWNrIGlzIHJlbW92ZWQuCiAgJXMvaGRj cDJfaW5fdXNlL2hkY3AyX2VuY3J5cHRlZAoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxy YW1hbGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oICB8ICAgNyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMjAyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE5 NSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CmluZGV4IGRlY2QwMzQ2YzZhNy4uNmQ1MzYxNjE2Y2EzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaApAQCAtMzgzLDYgKzM4MywxMCBAQCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIHsKIAogCS8q IEhEQ1AgYWRhcHRhdGlvbihEUC9IRE1JKSByZXF1aXJlZCBvbiB0aGUgcG9ydCAqLwogCWVudW0g aGRjcF93aXJlZF9wcm90b2NvbCBwcm90b2NvbDsKKworCS8qIERldGVjdHMgd2hldGhlciBQYW5l bCBpcyBIRENQMi4yIGNhcGFibGUgKi8KKwlpbnQgKCpoZGNwXzJfMl9jYXBhYmxlKShzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCQlib29sICpjYXBhYmxlKTsK IH07CiAKIHN0cnVjdCBpbnRlbF9oZGNwIHsKQEAgLTQwMCw2ICs0MDQsOSBAQCBzdHJ1Y3QgaW50 ZWxfaGRjcCB7CiAJLyogRmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGlzIGNvbm5lY3RvciBzdXBw b3J0cyBIRENQMi4yIG9yIG5vdC4gKi8KIAl1OCBoZGNwMl9zdXBwb3J0ZWQ7CiAKKwkvKiBIRENQ Mi4yIEVuY3J5cHRpb24gc3RhdHVzICovCisJdTggaGRjcDJfZW5jcnlwdGVkOworCiAJLyoKIAkg KiBDb250ZW50IFN0cmVhbSBUeXBlIGRlZmluZWQgYnkgY29udGVudCBvd25lci4gVFlQRTAoMHgw KSBjb250ZW50IGNhbgogCSAqIGZsb3cgaW4gdGhlIGxpbmsgcHJvdGVjdGVkIGJ5IEhEQ1AyLjIg b3IgSERDUDEuNCwgd2hlcmUgYXMgVFlQRTEoMHgxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5j CmluZGV4IDJiNzgxNGE2ZjEyYi4uZjBlZTQ0OGU2NTQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRjcC5jCkBAIC03NSw2ICs3NSwyMyBAQCBib29sIGludGVsX2hkY3BfY2FwYWJsZShzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJcmV0dXJuIGNhcGFibGU7CiB9CiAKKy8qIElz IEhEQ1AyLjIgY2FwYWJsZSBvbiBQbGF0Zm9ybSBhbmQgU2luayAqLworc3RhdGljIGJvb2wgaW50 ZWxfaGRjcDJfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19w b3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5o ZGNwOworCWJvb2wgY2FwYWJsZSA9IGZhbHNlOworCisJLyogSTkxNSBzdXBwb3J0IGZvciBIRENQ Mi4yICovCisJaWYgKCFoZGNwLT5oZGNwMl9zdXBwb3J0ZWQpCisJCXJldHVybiBmYWxzZTsKKwor CS8qIFNpbmsncyBjYXBhYmlsaXR5IGZvciBIRENQMi4yICovCisJaGRjcC0+c2hpbS0+aGRjcF8y XzJfY2FwYWJsZShpbnRlbF9kaWdfcG9ydCwgJmNhcGFibGUpOworCisJcmV0dXJuIGNhcGFibGU7 Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9oZGNwX2luX3VzZShzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKQEAgLTEwMTQsOCArMTAzMSw3IEBA IGludCBoZGNwMl9hdXRoZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkp Ci1pbnQgaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQorc3RhdGljIGludCBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaTkxNV9jb21wb25l bnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmNvbXBfbWFzdGVyOwpAQCAtMTAyNCwxMiArMTA0 MCwxNTcgQEAgaW50IGhkY3AyX2Nsb3NlX21laV9zZXNzaW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAkJCQkJCSAgJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGEpOwogfQog Ci1zdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKLWludCBoZGNwMl9kZWF1dGhlbnRpY2F0 ZV9wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyBpbnQgaGRj cDJfZGVhdXRoZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip CiB7CiAJcmV0dXJuIGhkY3AyX2Nsb3NlX21laV9zZXNzaW9uKGNvbm5lY3Rvcik7CiB9CiAKK3N0 YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQoreworCURSTV9FUlJPUigiU2luayBhdXRoZW50aWNhdGlvbiBpcyBkb25lIGlu IHN1YnNlcXVlbnQgcGF0Y2hlc1xuIik7CisKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGlj IGludCBoZGNwMl9lbmFibGVfZW5jcnlwdGlvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBj b25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfaGRj cCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJZW51bSBwb3J0IHBvcnQgPSBjb25uZWN0b3It PmVuY29kZXItPnBvcnQ7CisJaW50IHJldDsKKworCVdBUk5fT04oSTkxNV9SRUFEKEhEQ1AyX1NU QVRVU19EREkocG9ydCkpICYgTElOS19FTkNSWVBUSU9OX1NUQVRVUyk7CisKKwlpZiAoaGRjcC0+ c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsKKwkJcmV0ID0gaGRjcC0+c2hpbS0+dG9nZ2xlX3Np Z25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIHRydWUpOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJS T1IoIkZhaWxlZCB0byBlbmFibGUgSERDUCBzaWduYWxsaW5nLiAlZFxuIiwKKwkJCQkgIHJldCk7 CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCisJaWYgKEk5MTVfUkVBRChIRENQMl9TVEFUVVNf RERJKHBvcnQpKSAmIExJTktfQVVUSF9TVEFUVVMpIHsKKwkJLyogTGluayBpcyBBdXRoZW50aWNh dGVkLiBOb3cgc2V0IGZvciBFbmNyeXB0aW9uICovCisJCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RE SShwb3J0KSwKKwkJCSAgIEk5MTVfUkVBRChIRENQMl9DVExfRERJKHBvcnQpKSB8CisJCQkgICBD VExfTElOS19FTkNSWVBUSU9OX1JFUSk7CisJfQorCisJcmV0ID0gaW50ZWxfd2FpdF9mb3JfcmVn aXN0ZXIoZGV2X3ByaXYsIEhEQ1AyX1NUQVRVU19EREkocG9ydCksCisJCQkJICAgICAgTElOS19F TkNSWVBUSU9OX1NUQVRVUywKKwkJCQkgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTLAorCQkJ CSAgICAgIEVOQ1JZUFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKTsKKworCXJldHVybiByZXQ7 Cit9CisKK3N0YXRpYyBpbnQgaGRjcDJfZGlzYWJsZV9lbmNyeXB0aW9uKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0 cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwllbnVtIHBvcnQgcG9y dCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKKwlpbnQgcmV0OworCisJV0FSTl9PTighKEk5 MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSAmIExJTktfRU5DUllQVElPTl9TVEFUVVMp KTsKKworCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RESShwb3J0KSwKKwkJICAgSTkxNV9SRUFEKEhE Q1AyX0NUTF9EREkocG9ydCkpICYgfkNUTF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsKKworCXJldCA9 IGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LCBIRENQMl9TVEFUVVNfRERJKHBvcnQp LAorCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsIDB4MCwKKwkJCQkgICAgICBFTkNS WVBUX1NUQVRVU19DSEFOR0VfVElNRU9VVF9NUyk7CisJaWYgKHJldCA9PSAtRVRJTUVET1VUKQor CQlEUk1fREVCVUdfS01TKCJEaXNhYmxlIEVuY3J5cHRpb24gVGltZWRvdXQiKTsKKworCWlmICho ZGNwLT5zaGltLT50b2dnbGVfc2lnbmFsbGluZykgeworCQlyZXQgPSBoZGNwLT5zaGltLT50b2dn bGVfc2lnbmFsbGluZyhpbnRlbF9kaWdfcG9ydCwgZmFsc2UpOworCQlpZiAocmV0KSB7CisJCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBkaXNhYmxlIEhEQ1Agc2lnbmFsbGluZy4gJWRcbiIsCisJCQkJ ICByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0 YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX2FuZF9lbmNyeXB0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlpbnQgcmV0LCBpLCB0cmllcyA9IDM7CisKKwlmb3IgKGkg PSAwOyBpIDwgdHJpZXM7IGkrKykgeworCQlyZXQgPSBoZGNwMl9hdXRoZW50aWNhdGVfc2luayhj b25uZWN0b3IpOworCQlpZiAoIXJldCkKKwkJCWJyZWFrOworCisJCS8qIENsZWFyaW5nIHRoZSBt ZWkgaGRjcCBzZXNzaW9uICovCisJCURSTV9ERUJVR19LTVMoIkhEQ1AyLjIgQXV0aCAlZCBvZiAl ZCBGYWlsZWQuKCVkKVxuIiwKKwkJCSAgICAgIGkgKyAxLCB0cmllcywgcmV0KTsKKwkJaWYgKGhk Y3AyX2RlYXV0aGVudGljYXRlX3BvcnQoY29ubmVjdG9yKSA8IDApCisJCQlEUk1fREVCVUdfS01T KCJQb3J0IGRlYXV0aCBmYWlsZWQuXG4iKTsKKwl9CisKKwlpZiAoaSAhPSB0cmllcykgeworCQkv KgorCQkgKiBFbnN1cmluZyB0aGUgcmVxdWlyZWQgMjAwbVNlYyBtaW4gdGltZSBpbnRlcnZhbCBi ZXR3ZWVuCisJCSAqIFNlc3Npb24gS2V5IEV4Y2hhbmdlIGFuZCBlbmNyeXB0aW9uLgorCQkgKi8K KwkJbXNsZWVwKEhEQ1BfMl8yX0RFTEFZX0JFRk9SRV9FTkNSWVBUSU9OX0VOKTsKKwkJcmV0ID0g aGRjcDJfZW5hYmxlX2VuY3J5cHRpb24oY29ubmVjdG9yKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJ CURSTV9ERUJVR19LTVMoIkVuY3J5cHRpb24gRW5hYmxlIEZhaWxlZC4oJWQpXG4iLCByZXQpOwor CQkJaWYgKGhkY3AyX2RlYXV0aGVudGljYXRlX3BvcnQoY29ubmVjdG9yKSA8IDApCisJCQkJRFJN X0RFQlVHX0tNUygiUG9ydCBkZWF1dGggZmFpbGVkLlxuIik7CisJCX0KKwl9CisKKwlyZXR1cm4g cmV0OworfQorCitzdGF0aWMgaW50IF9pbnRlbF9oZGNwMl9lbmFibGUoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5l Y3Rvci0+aGRjcDsKKwlpbnQgcmV0OworCisJRFJNX0RFQlVHX0tNUygiWyVzOiVkXSBIRENQMi4y IGlzIGJlaW5nIGVuYWJsZWQuIFR5cGU6ICVkXG4iLAorCQkgICAgICBjb25uZWN0b3ItPmJhc2Uu bmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCisJCSAgICAgIGhkY3AtPmNvbnRlbnRfdHlw ZSk7CisKKwlyZXQgPSBoZGNwMl9hdXRoZW50aWNhdGVfYW5kX2VuY3J5cHQoY29ubmVjdG9yKTsK KwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19LTVMoIkhEQ1AyIFR5cGUlZCAgRW5hYmxpbmcgRmFp bGVkLiAoJWQpXG4iLAorCQkJICAgICAgaGRjcC0+Y29udGVudF90eXBlLCByZXQpOworCQlyZXR1 cm4gcmV0OworCX0KKworCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBlbmFibGVk LiBUeXBlICVkXG4iLAorCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5i YXNlLmJhc2UuaWQsCisJCSAgICAgIGhkY3AtPmNvbnRlbnRfdHlwZSk7CisKKwloZGNwLT5oZGNw Ml9lbmNyeXB0ZWQgPSAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9pbnRlbF9oZGNw Ml9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlpbnQgcmV0 OworCisJRFJNX0RFQlVHX0tNUygiWyVzOiVkXSBIRENQMi4yIGlzIGJlaW5nIERpc2FibGVkXG4i LAorCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQp OworCisJcmV0ID0gaGRjcDJfZGlzYWJsZV9lbmNyeXB0aW9uKGNvbm5lY3Rvcik7CisKKwlpZiAo aGRjcDJfZGVhdXRoZW50aWNhdGVfcG9ydChjb25uZWN0b3IpIDwgMCkKKwkJRFJNX0RFQlVHX0tN UygiUG9ydCBkZWF1dGggZmFpbGVkLlxuIik7CisKKwljb25uZWN0b3ItPmhkY3AuaGRjcDJfZW5j cnlwdGVkID0gMDsKKworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBfaW50 ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsK IAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CkBAIC0xMTQ1LDIy ICsxMzA2LDMzIEBAIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAogaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhk Y3A7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKIAogCWlmICghaGRjcC0+c2hpbSkK IAkJcmV0dXJuIC1FTk9FTlQ7CiAKIAltdXRleF9sb2NrKCZoZGNwLT5tdXRleCk7CiAKLQlyZXQg PSBfaW50ZWxfaGRjcF9lbmFibGUoY29ubmVjdG9yKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dDsK KwkvKgorCSAqIENvbnNpZGVyaW5nIHRoYXQgSERDUDIuMiBpcyBtb3JlIHNlY3VyZSB0aGFuIEhE Q1AxLjQsIElmIHRoZSBzZXR1cAorCSAqIGlzIGNhcGFibGUgb2YgSERDUDIuMiwgaXQgaXMgcHJl ZmVycmVkIHRvIHVzZSBIRENQMi4yLgorCSAqLworCWlmIChpbnRlbF9oZGNwMl9jYXBhYmxlKGNv bm5lY3RvcikpCisJCXJldCA9IF9pbnRlbF9oZGNwMl9lbmFibGUoY29ubmVjdG9yKTsKKworCS8q IFdoZW4gSERDUDIuMiBmYWlscywgSERDUDEuNCB3aWxsIGJlIGF0dGVtcHRlZCAqLworCWlmIChy ZXQgJiYgaW50ZWxfaGRjcF9jYXBhYmxlKGNvbm5lY3RvcikpIHsKKwkJcmV0ID0gX2ludGVsX2hk Y3BfZW5hYmxlKGNvbm5lY3Rvcik7CisJCWlmICghcmV0KQorCQkJc2NoZWR1bGVfZGVsYXllZF93 b3JrKCZoZGNwLT5jaGVja193b3JrLAorCQkJCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0Rf TVMpOworCX0KKworCWlmICghcmV0KSB7CisJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVO VF9QUk9URUNUSU9OX0VOQUJMRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7 CisJfQogCi0JaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxF RDsKLQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwotCXNjaGVkdWxlX2RlbGF5ZWRf d29yaygmaGRjcC0+Y2hlY2tfd29yaywKLQkJCSAgICAgIERSTV9IRENQX0NIRUNLX1BFUklPRF9N Uyk7Ci1vdXQ6CiAJbXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0K QEAgLTExNzcsNyArMTM0OSw5IEBAIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCiAJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NP TlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsKIAkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9D T05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEOwotCQlpZiAoaGRjcC0+aGRjcF9lbmNyeXB0ZWQp CisJCWlmIChoZGNwLT5oZGNwMl9lbmNyeXB0ZWQpCisJCQlyZXQgPSBfaW50ZWxfaGRjcDJfZGlz YWJsZShjb25uZWN0b3IpOworCQllbHNlIGlmIChoZGNwLT5oZGNwX2VuY3J5cHRlZCkKIAkJCXJl dCA9IF9pbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKIAl9CiAKLS0gCjIuNy40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK