From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v12 07/38] drm/i915: Enable and Disable of HDCP2.2 Date: Sat, 9 Feb 2019 12:42:36 +0530 Message-ID: <1549696387-28268-8-git-send-email-ramalingam.c@intel.com> References: <1549696387-28268-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: <1549696387-28268-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 dGVsX2hkY3AuIFtEYW5pZWxdCnYxMDoKICBwYW5lbCBpcyByZXBsYWNlZCB3aXRoIHNpbmsgW1Vt YV0KICBNZWkgaW50ZXJmYWNlIGRlY2lkZWQgdGhlIGhkY3AyX2NhcGFiaWxpdHkuCiAgV0FSTl9P TiBpZiBoZGNwX2VuYWJsZSBpcyBjYWxsZWQgd2hlbiBoZGNwIHN0YXRlIGlzIEVOQUJMRUQuCiAg UmV2aWV3ZWQtYnkgVW1hLgoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2Ft LmNAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBm ZndsbC5jaD4KUmV2aWV3ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgICA3ICsrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgfCAyMTIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKyksIDE0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggMTFmMWU1NWJiNWZiLi5j MDY5NGZjNjNlYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0zOTksNiArMzk5LDEw IEBAIHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gewogCiAJLyogSERDUCBhZGFwdGF0aW9uKERQL0hE TUkpIHJlcXVpcmVkIG9uIHRoZSBwb3J0ICovCiAJZW51bSBoZGNwX3dpcmVkX3Byb3RvY29sIHBy b3RvY29sOworCisJLyogRGV0ZWN0cyB3aGV0aGVyIHNpbmsgaXMgSERDUDIuMiBjYXBhYmxlICov CisJaW50ICgqaGRjcF8yXzJfY2FwYWJsZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCisJCQkJYm9vbCAqY2FwYWJsZSk7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfaGRj cCB7CkBAIC00MTYsNiArNDIwLDkgQEAgc3RydWN0IGludGVsX2hkY3AgewogCS8qIEZsYWcgaW5k aWNhdGVzIHdoZXRoZXIgdGhpcyBjb25uZWN0b3Igc3VwcG9ydHMgSERDUDIuMiBvciBub3QuICov CiAJYm9vbCBoZGNwMl9zdXBwb3J0ZWQ7CiAKKwkvKiBIRENQMi4yIEVuY3J5cHRpb24gc3RhdHVz ICovCisJYm9vbCBoZGNwMl9lbmNyeXB0ZWQ7CisKIAkvKgogCSAqIENvbnRlbnQgU3RyZWFtIFR5 cGUgZGVmaW5lZCBieSBjb250ZW50IG93bmVyLiBUWVBFMCgweDApIGNvbnRlbnQgY2FuCiAJICog ZmxvdyBpbiB0aGUgbGluayBwcm90ZWN0ZWQgYnkgSERDUDIuMiBvciBIRENQMS40LCB3aGVyZSBh cyBUWVBFMSgweDEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKaW5kZXggNjZlMzg1MGE1N2Ew Li4wYjZjY2IzZDI0ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk Y3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKQEAgLTc0LDYgKzc0 LDMyIEBAIGJvb2wgaW50ZWxfaGRjcF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKIAlyZXR1cm4gY2FwYWJsZTsKIH0KIAorLyogSXMgSERDUDIuMiBjYXBhYmxlIG9u IFBsYXRmb3JtIGFuZCBTaW5rICovCitzdGF0aWMgYm9vbCBpbnRlbF9oZGNwMl9jYXBhYmxlKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25u ZWN0b3IpOworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwli b29sIGNhcGFibGUgPSBmYWxzZTsKKworCS8qIEk5MTUgc3VwcG9ydCBmb3IgSERDUDIuMiAqLwor CWlmICghaGRjcC0+aGRjcDJfc3VwcG9ydGVkKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBNRUkg aW50ZXJmYWNlIGlzIHNvbGlkICovCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9t dXRleCk7CisJCWlmICghZGV2X3ByaXYtPmhkY3BfY29tcF9hZGRlZCB8fCAgIWRldl9wcml2LT5o ZGNwX21hc3RlcikgeworCQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4 KTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7CisKKwkvKiBTaW5rJ3MgY2FwYWJpbGl0eSBmb3IgSERDUDIuMiAqLworCWhk Y3AtPnNoaW0tPmhkY3BfMl8yX2NhcGFibGUoaW50ZWxfZGlnX3BvcnQsICZjYXBhYmxlKTsKKwor CXJldHVybiBjYXBhYmxlOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfaGRjcF9pbl91 c2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CkBAIC0x MDk0LDggKzExMjAsNyBAQCBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBfX2F0dHJp YnV0ZV9fKCh1bnVzZWQpKQotaW50IGhkY3AyX2Nsb3NlX21laV9zZXNzaW9uKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyBpbnQgaGRjcDJfY2xvc2VfbWVpX3Nlc3Np b24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3Ry dWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKQEAgLTExMTYsMTIgKzExNDEsMTU3IEBA IGludCBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkp Ci1pbnQgaGRjcDJfZGVhdXRoZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCitzdGF0aWMgaW50IGhkY3AyX2RlYXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXJldHVybiBoZGNwMl9jbG9zZV9tZWlfc2Vz c2lvbihjb25uZWN0b3IpOwogfQogCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9zaW5r KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlEUk1fRVJST1IoIlNpbmsg YXV0aGVudGljYXRpb24gaXMgZG9uZSBpbiBzdWJzZXF1ZW50IHBhdGNoZXNcbiIpOworCisJcmV0 dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgaGRjcDJfZW5hYmxlX2VuY3J5cHRpb24oc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNl LmRldik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCWVu dW0gcG9ydCBwb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0OworCWludCByZXQ7CisKKwlX QVJOX09OKEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSAmIExJTktfRU5DUllQVElP Tl9TVEFUVVMpOworCisJaWYgKGhkY3AtPnNoaW0tPnRvZ2dsZV9zaWduYWxsaW5nKSB7CisJCXJl dCA9IGhkY3AtPnNoaW0tPnRvZ2dsZV9zaWduYWxsaW5nKGludGVsX2RpZ19wb3J0LCB0cnVlKTsK KwkJaWYgKHJldCkgeworCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIEhEQ1Agc2lnbmFs bGluZy4gJWRcbiIsCisJCQkJICByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWlm IChJOTE1X1JFQUQoSERDUDJfU1RBVFVTX0RESShwb3J0KSkgJiBMSU5LX0FVVEhfU1RBVFVTKSB7 CisJCS8qIExpbmsgaXMgQXV0aGVudGljYXRlZC4gTm93IHNldCBmb3IgRW5jcnlwdGlvbiAqLwor CQlJOTE1X1dSSVRFKEhEQ1AyX0NUTF9EREkocG9ydCksCisJCQkgICBJOTE1X1JFQUQoSERDUDJf Q1RMX0RESShwb3J0KSkgfAorCQkJICAgQ1RMX0xJTktfRU5DUllQVElPTl9SRVEpOworCX0KKwor CXJldCA9IGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LCBIRENQMl9TVEFUVVNfRERJ KHBvcnQpLAorCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsCisJCQkJICAgICAgTElO S19FTkNSWVBUSU9OX1NUQVRVUywKKwkJCQkgICAgICBFTkNSWVBUX1NUQVRVU19DSEFOR0VfVElN RU9VVF9NUyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGhkY3AyX2Rpc2FibGVf ZW5jcnlwdGlvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNv bm5lY3Rvcik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj b25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0 b3ItPmhkY3A7CisJZW51bSBwb3J0IHBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7CisJ aW50IHJldDsKKworCVdBUk5fT04oIShJOTE1X1JFQUQoSERDUDJfU1RBVFVTX0RESShwb3J0KSkg JiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKSk7CisKKwlJOTE1X1dSSVRFKEhEQ1AyX0NUTF9EREko cG9ydCksCisJCSAgIEk5MTVfUkVBRChIRENQMl9DVExfRERJKHBvcnQpKSAmIH5DVExfTElOS19F TkNSWVBUSU9OX1JFUSk7CisKKwlyZXQgPSBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJp diwgSERDUDJfU1RBVFVTX0RESShwb3J0KSwKKwkJCQkgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RB VFVTLCAweDAsCisJCQkJICAgICAgRU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpOwor CWlmIChyZXQgPT0gLUVUSU1FRE9VVCkKKwkJRFJNX0RFQlVHX0tNUygiRGlzYWJsZSBFbmNyeXB0 aW9uIFRpbWVkb3V0Iik7CisKKwlpZiAoaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsK KwkJcmV0ID0gaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIGZh bHNlKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBIRENQ IHNpZ25hbGxpbmcuICVkXG4iLAorCQkJCSAgcmV0KTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9 CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9hbmRf ZW5jcnlwdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldCwg aSwgdHJpZXMgPSAzOworCisJZm9yIChpID0gMDsgaSA8IHRyaWVzOyBpKyspIHsKKwkJcmV0ID0g aGRjcDJfYXV0aGVudGljYXRlX3NpbmsoY29ubmVjdG9yKTsKKwkJaWYgKCFyZXQpCisJCQlicmVh azsKKworCQkvKiBDbGVhcmluZyB0aGUgbWVpIGhkY3Agc2Vzc2lvbiAqLworCQlEUk1fREVCVUdf S01TKCJIRENQMi4yIEF1dGggJWQgb2YgJWQgRmFpbGVkLiglZClcbiIsCisJCQkgICAgICBpICsg MSwgdHJpZXMsIHJldCk7CisJCWlmIChoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3Rv cikgPCAwKQorCQkJRFJNX0RFQlVHX0tNUygiUG9ydCBkZWF1dGggZmFpbGVkLlxuIik7CisJfQor CisJaWYgKGkgIT0gdHJpZXMpIHsKKwkJLyoKKwkJICogRW5zdXJpbmcgdGhlIHJlcXVpcmVkIDIw MG1TZWMgbWluIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbgorCQkgKiBTZXNzaW9uIEtleSBFeGNoYW5n ZSBhbmQgZW5jcnlwdGlvbi4KKwkJICovCisJCW1zbGVlcChIRENQXzJfMl9ERUxBWV9CRUZPUkVf RU5DUllQVElPTl9FTik7CisJCXJldCA9IGhkY3AyX2VuYWJsZV9lbmNyeXB0aW9uKGNvbm5lY3Rv cik7CisJCWlmIChyZXQgPCAwKSB7CisJCQlEUk1fREVCVUdfS01TKCJFbmNyeXB0aW9uIEVuYWJs ZSBGYWlsZWQuKCVkKVxuIiwgcmV0KTsKKwkJCWlmIChoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0 KGNvbm5lY3RvcikgPCAwKQorCQkJCURSTV9ERUJVR19LTVMoIlBvcnQgZGVhdXRoIGZhaWxlZC5c biIpOworCQl9CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBfaW50ZWxfaGRj cDJfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3Qg aW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJaW50IHJldDsKKworCURSTV9E RUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBiZWluZyBlbmFibGVkLiBUeXBlOiAlZFxuIiwK KwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAor CQkgICAgICBoZGNwLT5jb250ZW50X3R5cGUpOworCisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRl X2FuZF9lbmNyeXB0KGNvbm5lY3Rvcik7CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfS01TKCJI RENQMiBUeXBlJWQgIEVuYWJsaW5nIEZhaWxlZC4gKCVkKVxuIiwKKwkJCSAgICAgIGhkY3AtPmNv bnRlbnRfdHlwZSwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlEUk1fREVCVUdfS01TKCJb JXM6JWRdIEhEQ1AyLjIgaXMgZW5hYmxlZC4gVHlwZSAlZFxuIiwKKwkJICAgICAgY29ubmVjdG9y LT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAorCQkgICAgICBoZGNwLT5jb250 ZW50X3R5cGUpOworCisJaGRjcC0+aGRjcDJfZW5jcnlwdGVkID0gdHJ1ZTsKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIGludCBfaW50ZWxfaGRjcDJfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldDsKKworCURSTV9ERUJVR19LTVMoIlslczolZF0g SERDUDIuMiBpcyBiZWluZyBEaXNhYmxlZFxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5h bWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkKTsKKworCXJldCA9IGhkY3AyX2Rpc2FibGVfZW5j cnlwdGlvbihjb25uZWN0b3IpOworCisJaWYgKGhkY3AyX2RlYXV0aGVudGljYXRlX3BvcnQoY29u bmVjdG9yKSA8IDApCisJCURSTV9ERUJVR19LTVMoIlBvcnQgZGVhdXRoIGZhaWxlZC5cbiIpOwor CisJY29ubmVjdG9yLT5oZGNwLmhkY3AyX2VuY3J5cHRlZCA9IGZhbHNlOworCisJcmV0dXJuIHJl dDsKK30KKwogc3RhdGljIHZvaWQgaW50ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih0 b19kZWxheWVkX3dvcmsod29yayksCkBAIC0xMjYzLDIyICsxNDMzLDM0IEBAIGludCBpbnRlbF9o ZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogaW50IGludGVsX2hk Y3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3Qg aW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Ci0JaW50IHJldDsKKwlpbnQgcmV0 ID0gLUVJTlZBTDsKIAogCWlmICghaGRjcC0+c2hpbSkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKIAlt dXRleF9sb2NrKCZoZGNwLT5tdXRleCk7CisJV0FSTl9PTihoZGNwLT52YWx1ZSA9PSBEUk1fTU9E RV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRCk7CiAKLQlyZXQgPSBfaW50ZWxfaGRjcF9lbmFi bGUoY29ubmVjdG9yKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dDsKKwkvKgorCSAqIENvbnNpZGVy aW5nIHRoYXQgSERDUDIuMiBpcyBtb3JlIHNlY3VyZSB0aGFuIEhEQ1AxLjQsIElmIHRoZSBzZXR1 cAorCSAqIGlzIGNhcGFibGUgb2YgSERDUDIuMiwgaXQgaXMgcHJlZmVycmVkIHRvIHVzZSBIRENQ Mi4yLgorCSAqLworCWlmIChpbnRlbF9oZGNwMl9jYXBhYmxlKGNvbm5lY3RvcikpCisJCXJldCA9 IF9pbnRlbF9oZGNwMl9lbmFibGUoY29ubmVjdG9yKTsKKworCS8qIFdoZW4gSERDUDIuMiBmYWls cywgSERDUDEuNCB3aWxsIGJlIGF0dGVtcHRlZCAqLworCWlmIChyZXQgJiYgaW50ZWxfaGRjcF9j YXBhYmxlKGNvbm5lY3RvcikpIHsKKwkJcmV0ID0gX2ludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3Rv cik7CisJCWlmICghcmV0KQorCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZoZGNwLT5jaGVja193 b3JrLAorCQkJCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOworCX0KKworCWlmICgh cmV0KSB7CisJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJM RUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7CisJfQogCi0JaGRjcC0+dmFs dWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsKLQlzY2hlZHVsZV93b3Jr KCZoZGNwLT5wcm9wX3dvcmspOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+Y2hlY2tf d29yaywKLQkJCSAgICAgIERSTV9IRENQX0NIRUNLX1BFUklPRF9NUyk7Ci1vdXQ6CiAJbXV0ZXhf dW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTEyOTUsNyArMTQ3Nyw5 IEBAIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQogCiAJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9V TkRFU0lSRUQpIHsKIAkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05f VU5ERVNJUkVEOwotCQlpZiAoaGRjcC0+aGRjcF9lbmNyeXB0ZWQpCisJCWlmIChoZGNwLT5oZGNw Ml9lbmNyeXB0ZWQpCisJCQlyZXQgPSBfaW50ZWxfaGRjcDJfZGlzYWJsZShjb25uZWN0b3IpOwor CQllbHNlIGlmIChoZGNwLT5oZGNwX2VuY3J5cHRlZCkKIAkJCXJldCA9IF9pbnRlbF9oZGNwX2Rp c2FibGUoY29ubmVjdG9yKTsKIAl9CiAKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK