From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Subject: [PATCH v3] drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Date: Thu, 31 Jan 2019 17:59:58 -0800 Message-ID: <20190201015958.24692-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id A9F766E04F for ; Fri, 1 Feb 2019 02:00:01 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org Q2hhbmdpbmcgdGhlIGk5MTVfZWRwX3Bzcl9kZWJ1ZyB3YXMgZW5hYmxpbmcsIGRpc2FibGluZyBv ciBzd2l0Y2hpbmcKUFNSIHZlcnNpb24gYnkgZGlyZWN0bHkgY2FsbGluZyBpbnRlbF9wc3JfZGlz YWJsZV9sb2NrZWQoKSBhbmQKaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoKSwgd2hhdCBpcyBub3Qg dGhlIGRlZmF1bHQgUFNSIHBhdGggdGhhdCB3aWxsCmJlIGV4ZWN1dGVkIGJ5IHJlYWwgdXNlcnMu CgpTbyBsZXRzIGZvcmNlIGEgZmFzdHNldCBpbiB0aGUgUFNSIENSVEMgdG8gdHJpZ2dlciBhIHBp cGUgdXBkYXRlIGFuZApzdHJlc3MgdGhlIGRlZmF1bHQgY29kZSBwYXRoLgoKUmVjZW50bHkgYSBi dWcgd2FzIGZvdW5kIHdoZW4gc3dpdGNoaW5nIGZyb20gUFNSMiB0byBQU1IxIHdoaWxlCmVuYWJs ZV9wc3Iga2VybmVsIHBhcmFtZXRlciB3YXMgc2V0IHRvIHRoZSBkZWZhdWx0IHBhcmFtZXRlciwg dGhpcwpjaGFuZ2VzIGZpeCBpdCBhbmQgYWxzbyBmaXhlcyB0aGUgYnVnIGxpbmtlZCBiZWxsb3cg d2VyZSBEUlJTIHdhcwpsZWZ0IGVuYWJsZWQgdG9nZXRoZXIgd2l0aCBQU1Igd2hlbiBlbmFibGlu ZyBQU1IgZnJvbSBkZWJ1Z2ZzLgoKdjI6IEhhbmRsaW5nIG1pc3NpbmcgY2FzZTogZGlzYWJsZWQg dG8gUFNSMQoKdjM6IE5vdCBkdXBsaWNhdGluZyB0aGUgd2hvbGUgYXRvbWljIHN0YXRlKE1hYXJ0 ZW4pCgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MTA4MzQxCkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgpDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBp bnRlbC5jb20+CkNjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ClNpZ25l ZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgIDE0ICstLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgICAgfCAx ODggKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5z ZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwppbmRleCBmYTJjMjI2ZmM3NzkuLjc2NmE1YjRhZDNkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKQEAgLTI2MDcsNyArMjYwNyw2IEBAIHN0YXRpYyBpbnQKIGk5MTVfZWRwX3Bz cl9kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwotCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBj dHg7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJaW50IHJldDsKIApAQCAtMjYxOCwxOCAr MjYxNyw3IEBAIGk5MTVfZWRwX3Bzcl9kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAog CXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAKLQlkcm1fbW9kZXNl dF9hY3F1aXJlX2luaXQoJmN0eCwgRFJNX01PREVTRVRfQUNRVUlSRV9JTlRFUlJVUFRJQkxFKTsK LQotcmV0cnk6Ci0JcmV0ID0gaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoZGV2X3ByaXYsICZj dHgsIHZhbCk7Ci0JaWYgKHJldCA9PSAtRURFQURMSykgewotCQlyZXQgPSBkcm1fbW9kZXNldF9i YWNrb2ZmKCZjdHgpOwotCQlpZiAoIXJldCkKLQkJCWdvdG8gcmV0cnk7Ci0JfQotCi0JZHJtX21v ZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKLQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7 CisJcmV0ID0gaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoZGV2X3ByaXYsIHZhbCk7CiAKIAlp bnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCmluZGV4IGYxMWM2NmQxNzJkMy4uYmFlZTU4MWEwZDViIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKQEAgLTQ5Niw3ICs0OTYsNyBAQCBzdHJ1Y3QgaTkxNV9wc3IgewogCiAJdTMyIGRl YnVnOwogCWJvb2wgc2lua19zdXBwb3J0OwotCWJvb2wgcHJlcGFyZWQsIGVuYWJsZWQ7CisJYm9v bCBlbmFibGVkOwogCXN0cnVjdCBpbnRlbF9kcCAqZHA7CiAJZW51bSBwaXBlIHBpcGU7CiAJYm9v bCBhY3RpdmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IGNhNzA1NTQ2YTBhYi4uOTIx MWU0NTc5NDg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMzU1Niw3ICszNTU2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3VwZGF0ZV9waXBlX2RwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCi0JaW50ZWxfcHNyX2VuYWJsZShpbnRlbF9kcCwgY3J0 Y19zdGF0ZSk7CisJaW50ZWxfcHNyX3VwZGF0ZShpbnRlbF9kcCwgY3J0Y19zdGF0ZSk7CiAJaW50 ZWxfZWRwX2RycnNfZW5hYmxlKGludGVsX2RwLCBjcnRjX3N0YXRlKTsKIAogCWludGVsX3BhbmVs X3VwZGF0ZV9iYWNrbGlnaHQoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDkwYmE1NDM2MzcwZS4uNGMwMWRlY2MzMGQzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMjA2Nyw5ICsyMDY3LDkgQEAgdm9pZCBpbnRlbF9w c3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCSAgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIHZvaWQgaW50ZWxfcHNyX2Rpc2FibGUo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKTsKLWludCBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNfbW9k ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICAgc3RydWN0IGRy bV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCi0JCQkgICAgICAgdTY0IHZhbHVlKTsKK3ZvaWQg aW50ZWxfcHNyX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CitpbnQgaW50ZWxfcHNyX3Nl dF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgdmFs dWUpOwogdm9pZCBpbnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMsCiAJCQkgIGVudW0gZmJf b3Bfb3JpZ2luIG9yaWdpbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCmluZGV4IDg0YTBmYjk4 MTU2MS4uZTk3MGZmZDdkZDBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwpAQCAtNTEsNiAr NTEsOCBAQAogICogbXVzdCBiZSBjb3JyZWN0bHkgc3luY2hyb25pemVkL2NhbmNlbGxlZCB3aGVu IHNodXR0aW5nIGRvd24gdGhlIHBpcGUuIgogICovCiAKKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgor I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiaW50ZWxfZHJ2 LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKQEAgLTcxOCw4ICs3MjAsMTEgQEAgc3RhdGljIHZv aWQgaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+cHNyLmRwOwog Ci0JaWYgKGRldl9wcml2LT5wc3IuZW5hYmxlZCkKLQkJcmV0dXJuOworCVdBUk5fT04oZGV2X3By aXYtPnBzci5lbmFibGVkKTsKKworCWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID0gaW50ZWxf cHNyMl9lbmFibGVkKGRldl9wcml2LCBjcnRjX3N0YXRlKTsKKwlkZXZfcHJpdi0+cHNyLmJ1c3lf ZnJvbnRidWZmZXJfYml0cyA9IDA7CisJZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwogCiAJRFJNX0RFQlVHX0tNUygiRW5hYmxp bmcgUFNSJXNcbiIsCiAJCSAgICAgIGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID8gIjIiIDog IjEiKTsKQEAgLTc1MiwyMCArNzU3LDEzIEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAogCVdBUk5fT04oZGV2X3ByaXYtPmRycnMuZHApOwogCiAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKLQlpZiAoZGV2X3ByaXYtPnBzci5wcmVwYXJl ZCkgewotCQlEUk1fREVCVUdfS01TKCJQU1IgYWxyZWFkeSBpbiB1c2VcbiIpOworCisJaWYgKCFw c3JfZ2xvYmFsX2VuYWJsZWQoZGV2X3ByaXYtPnBzci5kZWJ1ZykpIHsKKwkJRFJNX0RFQlVHX0tN UygiUFNSIGRpc2FibGVkIGJ5IGZsYWdcbiIpOwogCQlnb3RvIHVubG9jazsKIAl9CiAKLQlkZXZf cHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA9IGludGVsX3BzcjJfZW5hYmxlZChkZXZfcHJpdiwgY3J0 Y19zdGF0ZSk7Ci0JZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwotCWRl dl9wcml2LT5wc3IucHJlcGFyZWQgPSB0cnVlOwotCWRldl9wcml2LT5wc3IucGlwZSA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKLQotCWlmIChwc3JfZ2xvYmFs X2VuYWJsZWQoZGV2X3ByaXYtPnBzci5kZWJ1ZykpCi0JCWludGVsX3Bzcl9lbmFibGVfbG9ja2Vk KGRldl9wcml2LCBjcnRjX3N0YXRlKTsKLQllbHNlCi0JCURSTV9ERUJVR19LTVMoIlBTUiBkaXNh YmxlZCBieSBmbGFnXG4iKTsKKwlpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0 Y19zdGF0ZSk7CiAKIHVubG9jazoKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7 CkBAIC04NDgsMTggKzg0Niw2MiBAQCB2b2lkIGludGVsX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCiAJCXJldHVybjsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5wc3Iu bG9jayk7Ci0JaWYgKCFkZXZfcHJpdi0+cHNyLnByZXBhcmVkKSB7Ci0JCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPnBzci5sb2NrKTsKLQkJcmV0dXJuOwotCX0KIAogCWludGVsX3Bzcl9kaXNhYmxl X2xvY2tlZChpbnRlbF9kcCk7CiAKLQlkZXZfcHJpdi0+cHNyLnByZXBhcmVkID0gZmFsc2U7CiAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwogCWNhbmNlbF93b3JrX3N5bmMoJmRl dl9wcml2LT5wc3Iud29yayk7CiB9CiAKKyNkZWZpbmUgUFNSX01PREVfU1RSSU5HX0dFVChlbmFi bGVkLCBwc3IyX2VuYWJsZWQpIFwKKwkJZW5hYmxlZCA/IChwc3IyX2VuYWJsZWQgPyAiUFNSMiIg OiAiUFNSMSIpIDogImRpc2FibGVkIgorCisvKioKKyAqIGludGVsX3Bzcl91cGRhdGUgLSBVcGRh dGUgUFNSIHN0YXRlCisgKiBAaW50ZWxfZHA6IEludGVsIERQCisgKiBAY3J0Y19zdGF0ZTogbmV3 IENSVEMgc3RhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9ucyB3aWxsIHVwZGF0ZSBQU1Igc3RhdGVz LCBkaXNhYmxpbmcsIGVuYWJsaW5nIG9yIHN3aXRjaGluZyBQU1IKKyAqIHZlcnNpb24gd2hlbiBl eGVjdXRpbmcgZmFzdHNldHMuIEZvciBmdWxsIG1vZGVzZXQsIGludGVsX3Bzcl9kaXNhYmxlKCkg YW5kCisgKiBpbnRlbF9wc3JfZW5hYmxlKCkgc2hvdWxkIGJlIGNhbGxlZCBpbnN0ZWFkLgorICov Cit2b2lkIGludGVsX3Bzcl91cGRhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJICAg ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7CisJc3Ry dWN0IGk5MTVfcHNyICpwc3IgPSAmZGV2X3ByaXYtPnBzcjsKKwlib29sIGVuYWJsZSwgcHNyMl9l bmFibGU7CisJY29uc3QgY2hhciAqb2xkX21vZGUsICpuZXdfbW9kZTsKKworCWlmICghQ0FOX1BT UihkZXZfcHJpdikgfHwgUkVBRF9PTkNFKHBzci0+ZHApICE9IGludGVsX2RwKQorCQlyZXR1cm47 CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOworCisJZW5hYmxlID0gY3J0Y19z dGF0ZS0+aGFzX3BzciAmJiBwc3JfZ2xvYmFsX2VuYWJsZWQocHNyLT5kZWJ1Zyk7CisJcHNyMl9l bmFibGUgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOworCisJaWYg KHBzci0+ZW5hYmxlZCA9PSBlbmFibGUgJiYgcHNyMl9lbmFibGUgPT0gcHNyLT5wc3IyX2VuYWJs ZWQpCisJCWdvdG8gdW5sb2NrOworCisJb2xkX21vZGUgPSBQU1JfTU9ERV9TVFJJTkdfR0VUKHBz ci0+ZW5hYmxlZCwgcHNyLT5wc3IyX2VuYWJsZWQpOworCW5ld19tb2RlID0gUFNSX01PREVfU1RS SU5HX0dFVChlbmFibGUsIHBzcjJfZW5hYmxlKTsKKwlEUk1fREVCVUdfS01TKCJVcGRhdGluZyBm cm9tICVzIHRvICVzIiwgb2xkX21vZGUsIG5ld19tb2RlKTsKKworCWlmIChwc3ItPmVuYWJsZWQp IHsKKwkJaWYgKCFlbmFibGUgfHwgcHNyMl9lbmFibGUgIT0gcHNyLT5wc3IyX2VuYWJsZWQpCisJ CQlpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoaW50ZWxfZHApOworCX0KKworCWlmIChlbmFibGUp IHsKKwkJaWYgKCFwc3ItPmVuYWJsZWQgfHwgcHNyMl9lbmFibGUgIT0gcHNyLT5wc3IyX2VuYWJs ZWQpCisJCQlpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7CisJ fQorCit1bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOworfQorCiAv KioKICAqIGludGVsX3Bzcl93YWl0X2Zvcl9pZGxlIC0gd2FpdCBmb3IgUFNSMSB0byBpZGxlCiAg KiBAbmV3X2NydGNfc3RhdGU6IG5ldyBDUlRDIHN0YXRlCkBAIC05MjQsMzYgKzk2Niw2MyBAQCBz dGF0aWMgYm9vbCBfX3Bzcl93YWl0X2Zvcl9pZGxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIGVyciA9PSAwICYmIGRldl9wcml2LT5wc3IuZW5hYmxl ZDsKIH0KIAotc3RhdGljIGJvb2wgc3dpdGNoaW5nX3BzcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCi0JCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAot CQkJICB1MzIgbW9kZSkKK3N0YXRpYyBpbnQgaW50ZWxfcHNyX2Zhc3RzZXRfZm9yY2Uoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCS8qIENhbid0IHN3aXRjaCBwc3Igc3Rh dGUgYW55d2F5IGlmIFBTUjIgaXMgbm90IHN1cHBvcnRlZC4gKi8KLQlpZiAoIWNydGNfc3RhdGUg fHwgIWNydGNfc3RhdGUtPmhhc19wc3IyKQotCQlyZXR1cm4gZmFsc2U7CisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOworCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJl X2N0eCBjdHg7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YzsKKwlpbnQgZXJyOwogCi0JaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVk ICYmIG1vZGUgPT0gSTkxNV9QU1JfREVCVUdfRk9SQ0VfUFNSMSkKLQkJcmV0dXJuIHRydWU7CisJ c3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7CisJaWYgKCFzdGF0ZSkKKwkJcmV0 dXJuIC1FTk9NRU07CiAKLQlpZiAoIWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkICYmIG1vZGUg IT0gSTkxNV9QU1JfREVCVUdfRk9SQ0VfUFNSMSkKLQkJcmV0dXJuIHRydWU7CisJZHJtX21vZGVz ZXRfYWNxdWlyZV9pbml0KCZjdHgsIERSTV9NT0RFU0VUX0FDUVVJUkVfSU5URVJSVVBUSUJMRSk7 CisJc3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKKworcmV0cnk6CisJZHJtX2Zvcl9lYWNoX2Ny dGMoY3J0YywgZGV2KSB7CisJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwkJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7CisKKwkJY3J0Y19zdGF0 ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCQlpZiAoSVNfRVJS KGNydGNfc3RhdGUpKSB7CisJCQllcnIgPSBQVFJfRVJSKGNydGNfc3RhdGUpOworCQkJZ290byBl cnJvcjsKKwkJfQorCisJCWludGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGNfc3RhdGUpOworCisJCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGludGVsX2NydGNfc3RhdGUs IElOVEVMX09VVFBVVF9FRFApKSB7CisJCQkvKiBNYXJrIG1vZGUgYXMgY2hhbmdlZCB0byB0cmln Z2VyIGEgcGlwZS0+dXBkYXRlKCkgKi8KKwkJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRy dWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCWVyciA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRl KTsKKworZXJyb3I6CisJaWYgKGVyciA9PSAtRURFQURMSykgeworCQlkcm1fYXRvbWljX3N0YXRl X2NsZWFyKHN0YXRlKTsKKwkJZXJyID0gZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKKwkJaWYg KCFlcnIpCisJCQlnb3RvIHJldHJ5OworCX0KKworCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0 eCk7CisJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOworCWRybV9hdG9taWNfc3RhdGVf cHV0KHN0YXRlKTsKIAotCXJldHVybiBmYWxzZTsKKwlyZXR1cm4gZXJyOwogfQogCi1pbnQgaW50 ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAotCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAotCQkJICAg ICAgIHU2NCB2YWwpCitpbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgdmFsKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSAmZGV2X3ByaXYtPmRybTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IE5VTEw7Ci0Jc3Ry dWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlz dHJ1Y3QgaW50ZWxfZHAgKmRwOworCWNvbnN0IHUzMiBtb2RlID0gdmFsICYgSTkxNV9QU1JfREVC VUdfTU9ERV9NQVNLOworCXUzMiBvbGRfbW9kZTsKIAlpbnQgcmV0OwotCWJvb2wgZW5hYmxlOwot CXUzMiBtb2RlID0gdmFsICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLOwogCiAJaWYgKHZhbCAm IH4oSTkxNV9QU1JfREVCVUdfSVJRIHwgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLKSB8fAogCSAg ICBtb2RlID4gSTkxNV9QU1JfREVCVUdfRk9SQ0VfUFNSMSkgewpAQCAtOTYxLDQ5ICsxMDMwLDE4 IEBAIGludCBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCXJldCA9IGRybV9tb2Rlc2V0 X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgY3R4KTsKLQlpZiAocmV0 KQotCQlyZXR1cm4gcmV0OwotCi0JLyogZGV2X3ByaXYtPnBzci5kcCBzaG91bGQgYmUgc2V0IG9u Y2UgYW5kIHRoZW4gbmV2ZXIgdG91Y2hlZCBhZ2Fpbi4gKi8KLQlkcCA9IFJFQURfT05DRShkZXZf cHJpdi0+cHNyLmRwKTsKLQljb25uX3N0YXRlID0gZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFz ZS5zdGF0ZTsKLQljcnRjID0gY29ubl9zdGF0ZS0+Y3J0YzsKLQlpZiAoY3J0YykgewotCQlyZXQg PSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgY3R4KTsKLQkJaWYgKHJldCkKLQkJCXJl dHVybiByZXQ7Ci0KLQkJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3Rh dGUpOwotCQljb21taXQgPSBjcnRjX3N0YXRlLT5iYXNlLmNvbW1pdDsKLQl9IGVsc2UgewotCQlj b21taXQgPSBjb25uX3N0YXRlLT5jb21taXQ7Ci0JfQotCWlmIChjb21taXQpIHsKLQkJcmV0ID0g d2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjb21taXQtPmh3X2RvbmUpOwotCQlp ZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVw dGlibGUoJmRldl9wcml2LT5wc3IubG9jayk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAot CWVuYWJsZSA9IHBzcl9nbG9iYWxfZW5hYmxlZCh2YWwpOwotCi0JaWYgKCFlbmFibGUgfHwgc3dp dGNoaW5nX3BzcihkZXZfcHJpdiwgY3J0Y19zdGF0ZSwgbW9kZSkpCi0JCWludGVsX3Bzcl9kaXNh YmxlX2xvY2tlZChkZXZfcHJpdi0+cHNyLmRwKTsKLQorCW9sZF9tb2RlID0gZGV2X3ByaXYtPnBz ci5kZWJ1ZyAmIEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSzsKIAlkZXZfcHJpdi0+cHNyLmRlYnVn ID0gdmFsOwotCWlmIChjcnRjKQotCQlkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA9IGludGVs X3BzcjJfZW5hYmxlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7CiAKLQlpbnRlbF9wc3JfaXJxX2Nv bnRyb2woZGV2X3ByaXYsIGRldl9wcml2LT5wc3IuZGVidWcpOworCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPnBzci5sb2NrKTsKIAotCWlmIChkZXZfcHJpdi0+cHNyLnByZXBhcmVkICYmIGVuYWJs ZSkKLQkJaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOworCWlm IChvbGRfbW9kZSAhPSBtb2RlKQorCQlyZXQgPSBpbnRlbF9wc3JfZmFzdHNldF9mb3JjZShkZXZf cHJpdik7CiAKLQltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7CiAJcmV0dXJuIHJl dDsKIH0KIAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK