From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v8 06/35] drm/i915: Enable and Disable of HDCP2.2 Date: Tue, 27 Nov 2018 16:13:04 +0530 Message-ID: <1543315413-24302-7-git-send-email-ramalingam.c@intel.com> References: <1543315413-24302-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: <1543315413-24302-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 Cc: uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org Q29uc2lkZXJpbmcgdGhhdCBIRENQMi4yIGlzIG1vcmUgc2VjdXJlIHRoYW4gSERDUDEuNCwgV2hl biBhIHNldHVwCnN1cHBvcnRzIEhEQ1AyLjIgYW5kIEhEQ1AxLjQsIEhEQ1AyLjIgd2lsbCBiZSBl bmFibGVkLgoKV2hlbiBIRENQMi4yIGVuYWJsaW5nIGZhaWxzIGFuZCBIRENQMS40IGlzIHN1cHBv cnRlZCwgSERDUDEuNCBpcwplbmFibGVkLgoKVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBhIHNlcXVl bmNlIG9mIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgb2YKSERDUDIuMiBhdXRoZW50aWNhdGlvbiBh bmQgSERDUDIuMiBwb3J0IGVuY3J5cHRpb24uCgp2MjoKICBJbmNsdWRlZCBmZXcgb3B0aW1pemF0 aW9uIHN1Z2dlc3Rpb25zIFtDaHJpcyBXaWxzb25dCiAgQ29tbWl0IG1lc3NhZ2UgaXMgdXBkYXRl ZCBhcyBwZXIgdGhlIHJlYmFzZWQgdmVyc2lvbi4KICBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlciBp cyB1c2VkIGluc3RlYWQgb2Ygd2FpdF9mb3IuIFtDaHJpcyBXaWxzb25dCnYzOgogIE5vIGNoYW5n ZXMuCnY0OgogIEV4dHJhIGNvbW1lbnQgYWRkZWQgYW5kIFN0eWxlIGlzc3VlIGZpeGVkIFtVbWFd CnY1OgogIFJlYmFzZWQgYXMgcGFydCBvZiBwYXRjaCByZW9yZGVyaW5nLgogIEhEQ1AyIGVuY3J5 cHRpb24gc3RhdHVzIGlzIHRyYWNrZWQuCiAgSFcgc3RhdGUgY2hlY2sgaXMgbW92ZWQgaW50byBX QVJOX09OIFtEYW5pZWxdCnY2OgogIFJlZGVmaW5lZCB0aGUgbWVpIHNlcnZpY2UgZnVuY3Rpb25z IGFzIHBlciBjb21wIHJlZGVzaWduLgogIE1lcmdlZCBwYXRjaGVzIHJlbGF0ZWQgdG8gaGRjcDIu MiBlbmFibGluZyBhbmQgZGlzYWJsaW5nIFtTZWFuIFBhdWxdLgogIFJlcXVpcmVkIHNoaW0gZnVu Y3Rpb25hbGl0eSBpcyBkZWZpbmVkIFtTZWFuIFBhdWxdCnY3OgogIFJldHVybiB2YWx1ZXMgYXJl IGhhbmRsZXMgW1VtYV0KICBSZWFsaWduZWQgdGhlIGNvZGUuCiAgQ2hlY2sgZm9yIGNvbXBfbWFz dGVyIGlzIHJlbW92ZWQuCnY4OgogIEhEQ1AyLjIgaXMgYXR0ZW1wdGVkIG9ubHkgaWYgbWVpIGlu dGVyZmFjZSBpcyB1cC4KICBBZGp1c3QgdG8gdGhlIG5ldyBpbnRlcmZhY2UKICBBdm9pZCBib29s IHVzYWdlIGluIHN0cnVjdCBbVG9tYXNdCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJh bWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggIHwgICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8IDIyMyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMTQg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApp bmRleCBiZGU4MmYzYWRhODUuLjNlOWYyMWQyMzQ0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKQEAgLTM4Myw2ICszODMsMTAgQEAgc3RydWN0IGludGVsX2hkY3Bfc2hpbSB7CiAKIAkvKiBE ZXRlY3RzIHRoZSBIRENQIHByb3RvY29sKERQL0hETUkpIHJlcXVpcmVkIG9uIHRoZSBwb3J0ICov CiAJZW51bSBtZWlfaGRjcF93aXJlZF9wcm90b2NvbCAoKmhkY3BfcHJvdG9jb2wpKHZvaWQpOwor CisJLyogRGV0ZWN0cyB3aGV0aGVyIFBhbmVsIGlzIEhEQ1AyLjIgY2FwYWJsZSAqLworCWludCAo KmhkY3BfMl8yX2NhcGFibGUpKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAorCQkJCWJvb2wgKmNhcGFibGUpOwogfTsKIAogc3RydWN0IGludGVsX2hkY3AgewpAQCAt Mzk2LDYgKzQwMCw3IEBAIHN0cnVjdCBpbnRlbF9oZGNwIHsKIAkvKiBIRENQMi4yIHJlbGF0ZWQg ZGVmaW5pdGlvbnMgKi8KIAkvKiBGbGFnIGluZGljYXRlcyB3aGV0aGVyIHRoaXMgY29ubmVjdG9y IHN1cHBvcnRzIEhEQ1AyLjIgb3Igbm90LiAqLwogCXU4IGhkY3AyX3N1cHBvcnRlZDsKKwl1OCBo ZGNwMl9pbl91c2U7CiAKIAkvKgogCSAqIENvbnRlbnQgU3RyZWFtIFR5cGUgZGVmaW5lZCBieSBj b250ZW50IG93bmVyLiBUWVBFMCgweDApIGNvbnRlbnQgY2FuCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZGNwLmMKaW5kZXggNzYwNzgwZjExMDVjLi5jMWJkMWNjZDQ3Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZGNwLmMKQEAgLTc5LDYgKzc5LDQzIEBAIGJvb2wgaW50ZWxfaGRjcF9jYXBhYmxlKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlyZXR1cm4gY2FwYWJsZTsKIH0KIAor LyogQXQgcHJlc2VudCB3aGV0aGVyIG1laV9oZGNwIGNvbXBvbmVudCBpcyBiaW5kZWQgd2l0aCBp OTE1IG1hc3RlciBjb21wb25lbnQgKi8KK3N0YXRpYyBib29sIGludGVsX2hkY3AyX21laV9iaW5k ZWQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3Ry dWN0IGk5MTVfaGRjcF9jb21wb25lbnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmhkY3BfY29t cDsKKworCW11dGV4X2xvY2soJmNvbXAtPm11dGV4KTsKKwlpZiAoIWNvbXAtPm9wcyB8fCAhY29t cC0+ZGV2KSB7CisJCW11dGV4X3VubG9jaygmY29tcC0+bXV0ZXgpOworCQlyZXR1cm4gZmFsc2U7 CisJfQorCW11dGV4X3VubG9jaygmY29tcC0+bXV0ZXgpOworCisJcmV0dXJuIHRydWU7Cit9CisK Ky8qIElzIEhEQ1AyLjIgY2FwYWJsZSBvbiBQbGF0Zm9ybSBhbmQgU2luayAqLworc3RhdGljIGJv b2wgaW50ZWxfaGRjcDJfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Cit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3Rv X2RpZ19wb3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVj dG9yLT5oZGNwOworCWJvb2wgY2FwYWJsZSA9IGZhbHNlOworCisJLyogSTkxNSBzdXBwb3J0IGZv ciBIRENQMi4yICovCisJaWYgKCFoZGNwLT5oZGNwMl9zdXBwb3J0ZWQpCisJCXJldHVybiBmYWxz ZTsKKworCS8qIE1FSSBzZXJ2aWNlcyBmb3IgSERDUDIuMiAqLworCWlmICghaW50ZWxfaGRjcDJf bWVpX2JpbmRlZChjb25uZWN0b3IpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBTaW5rJ3MgY2Fw YWJpbGl0eSBmb3IgSERDUDIuMiAqLworCWhkY3AtPnNoaW0tPmhkY3BfMl8yX2NhcGFibGUoaW50 ZWxfZGlnX3BvcnQsICZjYXBhYmxlKTsKKworCXJldHVybiBjYXBhYmxlOworfQorCiBzdGF0aWMg aW50IGludGVsX2hkY3BfcG9sbF9rc3ZfZmlmbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hp bSkKIHsKQEAgLTExMTQsOCArMTE1MSw3IEBAIGludCBoZGNwMl9hdXRoZW50aWNhdGVfcG9ydChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCi1pbnQgaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24o c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIGludCBoZGNwMl9jbG9z ZV9tZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3Ry dWN0IG1laV9oZGNwX2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLm1laV9kYXRhOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNl LmRldik7CkBAIC0xMTM3LDEyICsxMTczLDE1NyBAQCBpbnQgaGRjcDJfY2xvc2VfbWVpX3Nlc3Np b24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiByZXQ7CiB9CiAK LXN0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQotaW50IGhkY3AyX2RlYXV0aGVudGljYXRl X3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIGludCBoZGNw Ml9kZWF1dGhlbnRpY2F0ZV9wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK IHsKIAlyZXR1cm4gaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oY29ubmVjdG9yKTsKIH0KIAorc3Rh dGljIGludCBoZGNwMl9hdXRoZW50aWNhdGVfc2luayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCit7CisJRFJNX0VSUk9SKCJTaW5rIGF1dGhlbnRpY2F0aW9uIGlzIGRvbmUgaW4g c3Vic2VxdWVudCBwYXRjaGVzXG4iKTsKKworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMg aW50IGhkY3AyX2VuYWJsZV9lbmNyeXB0aW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNv bm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVjdCBpbnRlbF9oZGNw ICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwllbnVtIHBvcnQgcG9ydCA9IGNvbm5lY3Rvci0+ ZW5jb2Rlci0+cG9ydDsKKwlpbnQgcmV0OworCisJV0FSTl9PTihJOTE1X1JFQUQoSERDUDJfU1RB VFVTX0RESShwb3J0KSkgJiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKTsKKworCWlmIChoZGNwLT5z aGltLT50b2dnbGVfc2lnbmFsbGluZykgeworCQlyZXQgPSBoZGNwLT5zaGltLT50b2dnbGVfc2ln bmFsbGluZyhpbnRlbF9kaWdfcG9ydCwgdHJ1ZSk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9FUlJP UigiRmFpbGVkIHRvIGVuYWJsZSBIRENQIHNpZ25hbGxpbmcuICVkXG4iLAorCQkJCSAgcmV0KTsK KwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlpZiAoSTkxNV9SRUFEKEhEQ1AyX1NUQVRVU19E REkocG9ydCkpICYgTElOS19BVVRIX1NUQVRVUykgeworCQkvKiBMaW5rIGlzIEF1dGhlbnRpY2F0 ZWQuIE5vdyBzZXQgZm9yIEVuY3J5cHRpb24gKi8KKwkJSTkxNV9XUklURShIRENQMl9DVExfRERJ KHBvcnQpLAorCQkJICAgSTkxNV9SRUFEKEhEQ1AyX0NUTF9EREkocG9ydCkpIHwKKwkJCSAgIENU TF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsKKwl9CisKKwlyZXQgPSBpbnRlbF93YWl0X2Zvcl9yZWdp c3RlcihkZXZfcHJpdiwgSERDUDJfU1RBVFVTX0RESShwb3J0KSwKKwkJCQkgICAgICBMSU5LX0VO Q1JZUFRJT05fU1RBVFVTLAorCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsCisJCQkJ ICAgICAgVElNRV9GT1JfRU5DUllQVF9TVEFUVVNfQ0hBTkdFKTsKKworCXJldHVybiByZXQ7Cit9 CisKK3N0YXRpYyBpbnQgaGRjcDJfZGlzYWJsZV9lbmNyeXB0aW9uKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVj dCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwllbnVtIHBvcnQgcG9ydCA9 IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKKwlpbnQgcmV0OworCisJV0FSTl9PTighKEk5MTVf UkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSAmIExJTktfRU5DUllQVElPTl9TVEFUVVMpKTsK KworCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RESShwb3J0KSwKKwkJICAgSTkxNV9SRUFEKEhEQ1Ay X0NUTF9EREkocG9ydCkpICYgfkNUTF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsKKworCXJldCA9IGlu dGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAor CQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsIDB4MCwKKwkJCQkgICAgICBUSU1FX0ZP Ul9FTkNSWVBUX1NUQVRVU19DSEFOR0UpOworCWlmIChyZXQgPT0gLUVUSU1FRE9VVCkKKwkJRFJN X0RFQlVHX0tNUygiRGlzYWJsZSBFbmNyeXB0aW9uIFRpbWVkb3V0Iik7CisKKwlpZiAoaGRjcC0+ c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsKKwkJcmV0ID0gaGRjcC0+c2hpbS0+dG9nZ2xlX3Np Z25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIGZhbHNlKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBIRENQIHNpZ25hbGxpbmcuICVkXG4iLAorCQkJCSAgcmV0 KTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMg aW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9hbmRfZW5jcnlwdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCit7CisJaW50IHJldCwgaSwgdHJpZXMgPSAzOworCisJZm9yIChpID0gMDsg aSA8IHRyaWVzOyBpKyspIHsKKwkJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRlX3NpbmsoY29ubmVj dG9yKTsKKwkJaWYgKCFyZXQpCisJCQlicmVhazsKKworCQkvKiBDbGVhcmluZyB0aGUgbWVpIGhk Y3Agc2Vzc2lvbiAqLworCQlEUk1fREVCVUdfS01TKCJIRENQMi4yIEF1dGggJWQgb2YgJWQgRmFp bGVkLiglZClcbiIsCisJCQkgICAgICBpICsgMSwgdHJpZXMsIHJldCk7CisJCWlmIChoZGNwMl9k ZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQorCQkJRFJNX0RFQlVHX0tNUygiUG9y dCBkZWF1dGggZmFpbGVkLlxuIik7CisJfQorCisJaWYgKGkgIT0gdHJpZXMpIHsKKwkJLyoKKwkJ ICogRW5zdXJpbmcgdGhlIHJlcXVpcmVkIDIwMG1TZWMgbWluIHRpbWUgaW50ZXJ2YWwgYmV0d2Vl bgorCQkgKiBTZXNzaW9uIEtleSBFeGNoYW5nZSBhbmQgZW5jcnlwdGlvbi4KKwkJICovCisJCW1z bGVlcChIRENQXzJfMl9ERUxBWV9CRUZPUkVfRU5DUllQVElPTl9FTik7CisJCXJldCA9IGhkY3Ay X2VuYWJsZV9lbmNyeXB0aW9uKGNvbm5lY3Rvcik7CisJCWlmIChyZXQgPCAwKSB7CisJCQlEUk1f REVCVUdfS01TKCJFbmNyeXB0aW9uIEVuYWJsZSBGYWlsZWQuKCVkKVxuIiwgcmV0KTsKKwkJCWlm IChoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQorCQkJCURSTV9ERUJV R19LTVMoIlBvcnQgZGVhdXRoIGZhaWxlZC5cbiIpOworCQl9CisJfQorCisJcmV0dXJuIHJldDsK K30KKworc3RhdGljIGludCBfaW50ZWxfaGRjcDJfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3It PmhkY3A7CisJaW50IHJldDsKKworCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBi ZWluZyBlbmFibGVkLiBUeXBlOiAlZFxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUs IGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAorCQkgICAgICBoZGNwLT5jb250ZW50X3R5cGUpOwor CisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRlX2FuZF9lbmNyeXB0KGNvbm5lY3Rvcik7CisJaWYg KHJldCkgeworCQlEUk1fREVCVUdfS01TKCJIRENQMiBUeXBlJWQgIEVuYWJsaW5nIEZhaWxlZC4g KCVkKVxuIiwKKwkJCSAgICAgIGhkY3AtPmNvbnRlbnRfdHlwZSwgcmV0KTsKKwkJcmV0dXJuIHJl dDsKKwl9CisKKwlEUk1fREVCVUdfS01TKCJbJXM6JWRdIEhEQ1AyLjIgaXMgZW5hYmxlZC4gVHlw ZSAlZFxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5i YXNlLmlkLAorCQkgICAgICBoZGNwLT5jb250ZW50X3R5cGUpOworCisJaGRjcC0+aGRjcDJfaW5f dXNlID0gdHJ1ZTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfaW50ZWxfaGRjcDJfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldDsKKwor CURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBiZWluZyBEaXNhYmxlZFxuIiwKKwkJ ICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkKTsKKwor CXJldCA9IGhkY3AyX2Rpc2FibGVfZW5jcnlwdGlvbihjb25uZWN0b3IpOworCisJaWYgKGhkY3Ay X2RlYXV0aGVudGljYXRlX3BvcnQoY29ubmVjdG9yKSA8IDApCisJCURSTV9ERUJVR19LTVMoIlBv cnQgZGVhdXRoIGZhaWxlZC5cbiIpOworCisJY29ubmVjdG9yLT5oZGNwLmhkY3AyX2luX3VzZSA9 IGZhbHNlOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCBpOTE1X2hkY3BfY29tcG9u ZW50X21hc3Rlcl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoZGV2KTsKQEAgLTEzNDIsMjIgKzE1MjMs MzMgQEAgdm9pZCBpbnRlbF9oZGNwX2V4aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Ci0J aW50IHJldDsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKIAogCWlmICghaGRjcC0+c2hpbSkKIAkJcmV0 dXJuIC1FTk9FTlQ7CiAKIAltdXRleF9sb2NrKCZoZGNwLT5tdXRleCk7CiAKLQlyZXQgPSBfaW50 ZWxfaGRjcF9lbmFibGUoY29ubmVjdG9yKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dDsKKwkvKgor CSAqIENvbnNpZGVyaW5nIHRoYXQgSERDUDIuMiBpcyBtb3JlIHNlY3VyZSB0aGFuIEhEQ1AxLjQs IElmIHRoZSBzZXR1cAorCSAqIGlzIGNhcGFibGUgb2YgSERDUDIuMiwgaXQgaXMgcHJlZmVycmVk IHRvIHVzZSBIRENQMi4yLgorCSAqLworCWlmIChpbnRlbF9oZGNwMl9jYXBhYmxlKGNvbm5lY3Rv cikpCisJCXJldCA9IF9pbnRlbF9oZGNwMl9lbmFibGUoY29ubmVjdG9yKTsKKworCS8qIFdoZW4g SERDUDIuMiBmYWlscywgSERDUDEuNCB3aWxsIGJlIGF0dGVtcHRlZCAqLworCWlmIChyZXQgJiYg aW50ZWxfaGRjcF9jYXBhYmxlKGNvbm5lY3RvcikpIHsKKwkJcmV0ID0gX2ludGVsX2hkY3BfZW5h YmxlKGNvbm5lY3Rvcik7CisJCWlmICghcmV0KQorCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZo ZGNwLT5jaGVja193b3JrLAorCQkJCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOwor CX0KKworCWlmICghcmV0KSB7CisJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9U RUNUSU9OX0VOQUJMRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7CisJfQog Ci0JaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsKLQlz Y2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygm aGRjcC0+Y2hlY2tfd29yaywKLQkJCSAgICAgIERSTV9IRENQX0NIRUNLX1BFUklPRF9NUyk7Ci1v dXQ6CiAJbXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTEz NzQsNyArMTU2NiwxMCBAQCBpbnQgaW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcikKIAogCWlmIChoZGNwLT52YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5U X1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7CiAJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVO VF9QUk9URUNUSU9OX1VOREVTSVJFRDsKLQkJcmV0ID0gX2ludGVsX2hkY3BfZGlzYWJsZShjb25u ZWN0b3IpOworCQlpZiAoaGRjcC0+aGRjcDJfaW5fdXNlKQorCQkJcmV0ID0gX2ludGVsX2hkY3Ay X2Rpc2FibGUoY29ubmVjdG9yKTsKKwkJZWxzZQorCQkJcmV0ID0gX2ludGVsX2hkY3BfZGlzYWJs ZShjb25uZWN0b3IpOwogCX0KIAogCW11dGV4X3VubG9jaygmaGRjcC0+bXV0ZXgpOwotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=