From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Subject: [PATCH v4] drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Date: Wed, 6 Feb 2019 13:18:45 -0800 Message-ID: <20190206211845.5322-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 381996EBBF for ; Wed, 6 Feb 2019 21:18:48 +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 ZW4pCgp2NDogQWRkaW5nIGJhY2sgdGhlIG1pc3NpbmcgY2FsbCB0byBpbnRlbF9wc3JfaXJxX2Nv bnRyb2woRGhpbmFrYXJhbikKCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3Jn L3Nob3dfYnVnLmNnaT9pZD0xMDgzNDEKQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWth cmFuLnBhbmRpeWFuQGludGVsLmNvbT4KQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6 YUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAg MTQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAgMiArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYyAgICB8IDE4MiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiA1IGZpbGVzIGNo YW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCmluZGV4IDBiZDg5MGMwNGZlNC4uMjBhNDljYzRhOWExIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjYwNyw3ICsyNjA3LDYgQEAgc3RhdGljIGlu dAogaTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Ci0Jc3RydWN0IGRybV9tb2Rlc2V0 X2FjcXVpcmVfY3R4IGN0eDsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAlpbnQgcmV0Owog CkBAIC0yNjE4LDE4ICsyNjE3LDcgQEAgaTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lkICpkYXRh LCB1NjQgdmFsKQogCiAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsK IAotCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lO VEVSUlVQVElCTEUpOwotCi1yZXRyeToKLQlyZXQgPSBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNfbW9k ZShkZXZfcHJpdiwgJmN0eCwgdmFsKTsKLQlpZiAocmV0ID09IC1FREVBRExLKSB7Ci0JCXJldCA9 IGRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7Ci0JCWlmICghcmV0KQotCQkJZ290byByZXRyeTsK LQl9Ci0KLQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwotCWRybV9tb2Rlc2V0X2FjcXVp cmVfZmluaSgmY3R4KTsKKwlyZXQgPSBpbnRlbF9wc3JfZGVidWdfc2V0KGRldl9wcml2LCB2YWwp OwogCiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHdha2VyZWYpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAppbmRleCBhMjI5MzE1MmNiNmEuLjk4OWQxYWM3MmVjOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC00OTYsNyArNDk2LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKIAog CXUzMiBkZWJ1ZzsKIAlib29sIHNpbmtfc3VwcG9ydDsKLQlib29sIHByZXBhcmVkLCBlbmFibGVk OworCWJvb2wgZW5hYmxlZDsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmRwOwogCWVudW0gcGlwZSBwaXBl OwogCWJvb2wgYWN0aXZlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwppbmRleCBjYTcwNTU0NmEw YWIuLjkyMTFlNDU3OTQ4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKQEAgLTM1NTYsNyAr MzU1Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV91cGRhdGVfcGlwZV9kcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5j X3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAotCWludGVsX3Bzcl9lbmFibGUoaW50ZWxf ZHAsIGNydGNfc3RhdGUpOworCWludGVsX3Bzcl91cGRhdGUoaW50ZWxfZHAsIGNydGNfc3RhdGUp OwogCWludGVsX2VkcF9kcnJzX2VuYWJsZShpbnRlbF9kcCwgY3J0Y19zdGF0ZSk7CiAKIAlpbnRl bF9wYW5lbF91cGRhdGVfYmFja2xpZ2h0KGVuY29kZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA5ZWMzZDAwZmJkMTkuLjNlYmEzM2EyZjk1 MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTIwNzcsOSArMjA3Nyw5IEBAIHZvaWQg aW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX3Bzcl9k aXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSk7Ci1pbnQgaW50ZWxfcHNyX3NldF9kZWJ1 Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgICAgIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAotCQkJICAgICAgIHU2NCB2YWx1ZSk7 Cit2b2lkIGludGVsX3Bzcl91cGRhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJICAg ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOworaW50IGludGVs X3Bzcl9kZWJ1Z19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgdmFs dWUpOwogdm9pZCBpbnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMsCiAJCQkgIGVudW0gZmJf b3Bfb3JpZ2luIG9yaWdpbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCmluZGV4IDg0YTBmYjk4 MTU2MS4uNzVjMWE1ZGVlYmY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl 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 CkBAIC04NDgsMTggKzg0Niw1NCBAQCB2b2lkIGludGVsX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCiAJCXJldHVybjsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5wc3Iu bG9jayk7Ci0JaWYgKCFkZXZfcHJpdi0+cHNyLnByZXBhcmVkKSB7Ci0JCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPnBzci5sb2NrKTsKLQkJcmV0dXJuOwotCX0KIAogCWludGVsX3Bzcl9kaXNhYmxl X2xvY2tlZChpbnRlbF9kcCk7CiAKLQlkZXZfcHJpdi0+cHNyLnByZXBhcmVkID0gZmFsc2U7CiAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwogCWNhbmNlbF93b3JrX3N5bmMoJmRl dl9wcml2LT5wc3Iud29yayk7CiB9CiAKKy8qKgorICogaW50ZWxfcHNyX3VwZGF0ZSAtIFVwZGF0 ZSBQU1Igc3RhdGUKKyAqIEBpbnRlbF9kcDogSW50ZWwgRFAKKyAqIEBjcnRjX3N0YXRlOiBuZXcg Q1JUQyBzdGF0ZQorICoKKyAqIFRoaXMgZnVuY3Rpb25zIHdpbGwgdXBkYXRlIFBTUiBzdGF0ZXMs IGRpc2FibGluZywgZW5hYmxpbmcgb3Igc3dpdGNoaW5nIFBTUgorICogdmVyc2lvbiB3aGVuIGV4 ZWN1dGluZyBmYXN0c2V0cy4gRm9yIGZ1bGwgbW9kZXNldCwgaW50ZWxfcHNyX2Rpc2FibGUoKSBh bmQKKyAqIGludGVsX3Bzcl9lbmFibGUoKSBzaG91bGQgYmUgY2FsbGVkIGluc3RlYWQuCisgKi8K K3ZvaWQgaW50ZWxfcHNyX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKKwlzdHJ1 Y3QgaTkxNV9wc3IgKnBzciA9ICZkZXZfcHJpdi0+cHNyOworCWJvb2wgZW5hYmxlLCBwc3IyX2Vu YWJsZTsKKworCWlmICghQ0FOX1BTUihkZXZfcHJpdikgfHwgUkVBRF9PTkNFKHBzci0+ZHApICE9 IGludGVsX2RwKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2sp OworCisJZW5hYmxlID0gY3J0Y19zdGF0ZS0+aGFzX3BzciAmJiBwc3JfZ2xvYmFsX2VuYWJsZWQo cHNyLT5kZWJ1Zyk7CisJcHNyMl9lbmFibGUgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYs IGNydGNfc3RhdGUpOworCisJaWYgKGVuYWJsZSA9PSBwc3ItPmVuYWJsZWQgJiYgcHNyMl9lbmFi bGUgPT0gcHNyLT5wc3IyX2VuYWJsZWQpCisJCWdvdG8gdW5sb2NrOworCisJaWYgKHBzci0+ZW5h YmxlZCkgeworCQlpZiAoIWVuYWJsZSB8fCBwc3IyX2VuYWJsZSAhPSBwc3ItPnBzcjJfZW5hYmxl ZCkKKwkJCWludGVsX3Bzcl9kaXNhYmxlX2xvY2tlZChpbnRlbF9kcCk7CisJfQorCisJaWYgKGVu YWJsZSkgeworCQlpZiAoIXBzci0+ZW5hYmxlZCB8fCBwc3IyX2VuYWJsZSAhPSBwc3ItPnBzcjJf ZW5hYmxlZCkKKwkJCWludGVsX3Bzcl9lbmFibGVfbG9ja2VkKGRldl9wcml2LCBjcnRjX3N0YXRl KTsKKwl9CisKK3VubG9jazoKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cit9 CisKIC8qKgogICogaW50ZWxfcHNyX3dhaXRfZm9yX2lkbGUgLSB3YWl0IGZvciBQU1IxIHRvIGlk bGUKICAqIEBuZXdfY3J0Y19zdGF0ZTogbmV3IENSVEMgc3RhdGUKQEAgLTkyNCwzNiArOTU4LDY0 IEBAIHN0YXRpYyBib29sIF9fcHNyX3dhaXRfZm9yX2lkbGVfbG9ja2VkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gZXJyID09IDAgJiYgZGV2X3ByaXYtPnBzci5l bmFibGVkOwogfQogCi1zdGF0aWMgYm9vbCBzd2l0Y2hpbmdfcHNyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKLQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCi0JCQkgIHUzMiBtb2RlKQorc3RhdGljIGludCBpbnRlbF9wc3JfZmFzdHNldF9mb3JjZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JLyogQ2FuJ3Qgc3dpdGNoIHBz ciBzdGF0ZSBhbnl3YXkgaWYgUFNSMiBpcyBub3Qgc3VwcG9ydGVkLiAqLwotCWlmICghY3J0Y19z dGF0ZSB8fCAhY3J0Y19zdGF0ZS0+aGFzX3BzcjIpCi0JCXJldHVybiBmYWxzZTsKKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CisJc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4IGN0eDsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CisJc3RydWN0 IGRybV9jcnRjICpjcnRjOworCWludCBlcnI7CiAKLQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2Vu YWJsZWQgJiYgbW9kZSA9PSBJOTE1X1BTUl9ERUJVR19GT1JDRV9QU1IxKQotCQlyZXR1cm4gdHJ1 ZTsKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKKwlpZiAoIXN0YXRlKQor CQlyZXR1cm4gLUVOT01FTTsKIAotCWlmICghZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgJiYg bW9kZSAhPSBJOTE1X1BTUl9ERUJVR19GT1JDRV9QU1IxKQotCQlyZXR1cm4gdHJ1ZTsKKwlkcm1f bW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgRFJNX01PREVTRVRfQUNRVUlSRV9JTlRFUlJVUFRJ QkxFKTsKKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4OworCityZXRyeToKKwlkcm1fZm9yX2Vh Y2hfY3J0YyhjcnRjLCBkZXYpIHsKKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl OworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKKworCQljcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJCWlmIChJ U19FUlIoY3J0Y19zdGF0ZSkpIHsKKwkJCWVyciA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisJCQln b3RvIGVycm9yOworCQl9CisKKwkJaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Y19zdGF0ZSk7CisKKwkJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoaW50ZWxfY3J0Y19z dGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkgJiYKKwkJICAgIGludGVsX2NydGNfc3RhdGUtPmhhc19w c3IpIHsKKwkJCS8qIE1hcmsgbW9kZSBhcyBjaGFuZ2VkIHRvIHRyaWdnZXIgYSBwaXBlLT51cGRh dGUoKSAqLworCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKKwkJCWJyZWFrOwor CQl9CisJfQorCisJZXJyID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwogCi0JcmV0dXJuIGZh bHNlOworZXJyb3I6CisJaWYgKGVyciA9PSAtRURFQURMSykgeworCQlkcm1fYXRvbWljX3N0YXRl X2NsZWFyKHN0YXRlKTsKKwkJZXJyID0gZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKKwkJaWYg KCFlcnIpCisJCQlnb3RvIHJldHJ5OworCX0KKworCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0 eCk7CisJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOworCWRybV9hdG9taWNfc3RhdGVf cHV0KHN0YXRlKTsKKworCXJldHVybiBlcnI7CiB9CiAKLWludCBpbnRlbF9wc3Jfc2V0X2RlYnVn ZnNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCi0JCQkgICAgICAgdTY0IHZhbCkKK2lu dCBpbnRlbF9wc3JfZGVidWdfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg dTY0IHZhbCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0J c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Ci0Jc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUgPSBOVUxMOwotCXN0cnVjdCBkcm1fY3J0Y19jb21taXQgKmNv bW1pdDsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGludGVsX2RwICpkcDsKKwlj b25zdCB1MzIgbW9kZSA9IHZhbCAmIEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSzsKKwl1MzIgb2xk X21vZGU7CiAJaW50IHJldDsKLQlib29sIGVuYWJsZTsKLQl1MzIgbW9kZSA9IHZhbCAmIEk5MTVf UFNSX0RFQlVHX01PREVfTUFTSzsKIAogCWlmICh2YWwgJiB+KEk5MTVfUFNSX0RFQlVHX0lSUSB8 IEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSykgfHwKIAkgICAgbW9kZSA+IEk5MTVfUFNSX0RFQlVH X0ZPUkNFX1BTUjEpIHsKQEAgLTk2MSw0OSArMTAyMywxOSBAQCBpbnQgaW50ZWxfcHNyX3NldF9k ZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXR1cm4g LUVJTlZBTDsKIAl9CiAKLQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCS8q IGRldl9wcml2LT5wc3IuZHAgc2hvdWxkIGJlIHNldCBvbmNlIGFuZCB0aGVuIG5ldmVyIHRvdWNo ZWQgYWdhaW4uICovCi0JZHAgPSBSRUFEX09OQ0UoZGV2X3ByaXYtPnBzci5kcCk7Ci0JY29ubl9z dGF0ZSA9IGRwLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2Uuc3RhdGU7Ci0JY3J0YyA9IGNvbm5f c3RhdGUtPmNydGM7Ci0JaWYgKGNydGMpIHsKLQkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0 Yy0+bXV0ZXgsIGN0eCk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCi0JCWNydGNfc3Rh dGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQkJY29tbWl0ID0gY3J0Y19z dGF0ZS0+YmFzZS5jb21taXQ7Ci0JfSBlbHNlIHsKLQkJY29tbWl0ID0gY29ubl9zdGF0ZS0+Y29t bWl0OwotCX0KLQlpZiAoY29tbWl0KSB7Ci0JCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50 ZXJydXB0aWJsZSgmY29tbWl0LT5od19kb25lKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7 Ci0JfQotCiAJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXZfcHJpdi0+cHNyLmxv Y2spOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQllbmFibGUgPSBwc3JfZ2xvYmFsX2Vu YWJsZWQodmFsKTsKLQotCWlmICghZW5hYmxlIHx8IHN3aXRjaGluZ19wc3IoZGV2X3ByaXYsIGNy dGNfc3RhdGUsIG1vZGUpKQotCQlpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoZGV2X3ByaXYtPnBz ci5kcCk7Ci0KKwlvbGRfbW9kZSA9IGRldl9wcml2LT5wc3IuZGVidWcgJiBJOTE1X1BTUl9ERUJV R19NT0RFX01BU0s7CiAJZGV2X3ByaXYtPnBzci5kZWJ1ZyA9IHZhbDsKLQlpZiAoY3J0YykKLQkJ ZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYs IGNydGNfc3RhdGUpOwotCiAJaW50ZWxfcHNyX2lycV9jb250cm9sKGRldl9wcml2LCBkZXZfcHJp di0+cHNyLmRlYnVnKTsKIAotCWlmIChkZXZfcHJpdi0+cHNyLnByZXBhcmVkICYmIGVuYWJsZSkK LQkJaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwotCiAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOworCisJaWYgKG9sZF9tb2RlICE9IG1vZGUp CisJCXJldCA9IGludGVsX3Bzcl9mYXN0c2V0X2ZvcmNlKGRldl9wcml2KTsKKwogCXJldHVybiBy ZXQ7CiB9CiAKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==