From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Subject: [PATCH 2/2] drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Date: Thu, 29 Nov 2018 18:31:33 -0800 Message-ID: <20181130023133.31636-2-jose.souza@intel.com> References: <20181130023133.31636-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 518FC6E596 for ; Fri, 30 Nov 2018 02:31:39 +0000 (UTC) In-Reply-To: <20181130023133.31636-1-jose.souza@intel.com> 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 , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org Q2hhbmdpbmcgdGhlIGk5MTVfZWRwX3Bzcl9kZWJ1ZyB3YXMgZW5hYmxpbmcsIGRpc2FibGluZyBv ciBzd2l0Y2hpbmcKUFNSIHZlcnNpb24gYnkgZGlyZWN0bHkgY2FsbGluZyBpbnRlbF9wc3JfZGlz YWJsZV9sb2NrZWQoKSBhbmQKaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoKSwgd2hhdCBpcyBub3Qg dGhlIGRlZmF1bHQgUFNSIHBhdGggdGhhdCBpcwpleGVjdXRlZCBpbiBhIHJlZ3VsYXIgbW9kZXNl dHMuCgpTbyBsZXRzIGZvcmNlIGEgbW9kZXNldCBpbiB0aGUgUFNSIENSVEMgdG8gdHJpZ2dlciB0 aGUgcmVxdWVzdGVkIFBTUgpzdGF0ZSBjaGFuZ2UgYW5kIHJlYWxseSBzdHJlc3MgdGhlIGNvZGUg cGF0aCB0aGF0IG1hdHRlcnMgZm9yIHRoZQpyZWd1bGFyIHVzZXIuCgpBbHNvIGJ5IGRvaW5nIHRo aXMgd2F5IGl0IGZpeGVzIHRoZSBpc3N1ZSBiZWxvdywgd2VyZSBEUlJTIHdhcyBsZWZ0CmVuYWJs ZWQgdG9nZXRoZXIgd2l0aCBQU1Igd2hlbiBlbmFibGluZyBQU1IgZnJvbSBkZWJ1Z2ZzLgoKQnVn emlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODM0 MQpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29t PgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8ICAxNCArLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAg IHwgMTE5ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNTUg aW5zZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwppbmRleCAxMjliOWE2ZjgzMDkuLmJjMzJmNjgzZGM0NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKQEAgLTI3NzUsNyArMjc3NSw2IEBAIHN0YXRpYyBpbnQKIGk5MTVfZWRw X3Bzcl9kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwotCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0 eCBjdHg7CiAJaW50IHJldDsKIAogCWlmICghQ0FOX1BTUihkZXZfcHJpdikpCkBAIC0yNzg1LDE4 ICsyNzg0LDcgQEAgaTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQog CiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCi0JZHJtX21vZGVzZXRfYWNxdWly ZV9pbml0KCZjdHgsIERSTV9NT0RFU0VUX0FDUVVJUkVfSU5URVJSVVBUSUJMRSk7Ci0KLXJldHJ5 OgotCXJldCA9IGludGVsX3Bzcl9zZXRfZGVidWdmc19tb2RlKGRldl9wcml2LCAmY3R4LCB2YWwp OwotCWlmIChyZXQgPT0gLUVERUFETEspIHsKLQkJcmV0ID0gZHJtX21vZGVzZXRfYmFja29mZigm Y3R4KTsKLQkJaWYgKCFyZXQpCi0JCQlnb3RvIHJldHJ5OwotCX0KLQotCWRybV9tb2Rlc2V0X2Ry b3BfbG9ja3MoJmN0eCk7Ci0JZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOworCXJldCA9 IGludGVsX3Bzcl9zZXRfZGVidWdmc19tb2RlKGRldl9wcml2LCB2YWwpOwogCiAJaW50ZWxfcnVu dGltZV9wbV9wdXQoZGV2X3ByaXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA0M2Fj Njg3M2EyYmIuLjkzZDhjYTljMDM3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC00OTMs NyArNDkzLDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKIAogCXUzMiBkZWJ1ZzsKIAlib29sIHNpbmtf c3VwcG9ydDsKLQlib29sIHByZXBhcmVkLCBlbmFibGVkOworCWJvb2wgZW5hYmxlZDsKIAlzdHJ1 Y3QgaW50ZWxfZHAgKmRwOwogCWJvb2wgYWN0aXZlOwogCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3Jr OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA4NmZmNTc3MzhjZDkuLjg5ZDRlZWQwZGQ4 OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTIwNTYsOSArMjA1Niw3IEBAIHZvaWQg aW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX3Bzcl9k aXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSk7Ci1pbnQgaW50ZWxfcHNyX3NldF9kZWJ1 Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICAgICAgIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAotCQkJICAgICAgIHU2NCB2YWx1ZSk7 CitpbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1NjQgdmFsdWUpOwogdm9pZCBpbnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgIHVuc2lnbmVkIGZyb250YnVmZmVyX2Jp dHMsCiAJCQkgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bz ci5jCmluZGV4IDgyN2I4YzMxNzgzZC4uMzA1ODQ4Y2NlZGE3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYwpAQCAtNTIsNiArNTIsNyBAQAogICovCiAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgor I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogCiAjaW5jbHVkZSAiaW50ZWxfZHJ2 LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKQEAgLTcxMSwxMCArNzEyLDYgQEAgdm9pZCBpbnRl bF9wc3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJV0FSTl9PTihkZXZfcHJp di0+ZHJycy5kcCk7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwotCWlmIChk ZXZfcHJpdi0+cHNyLnByZXBhcmVkKSB7Ci0JCURSTV9ERUJVR19LTVMoIlBTUiBhbHJlYWR5IGlu IHVzZVxuIik7Ci0JCWdvdG8gdW5sb2NrOwotCX0KIAogCWlmICghcHNyX2dsb2JhbF9lbmFibGVk KGRldl9wcml2LT5wc3IuZGVidWcpKSB7CiAJCURSTV9ERUJVR19LTVMoIlBTUiBkaXNhYmxlZCBi eSBmbGFnXG4iKTsKQEAgLTcyMyw3ICs3MjAsNiBAQCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKIAogCWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID0g aW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LCBjcnRjX3N0YXRlKTsKIAlkZXZfcHJpdi0+cHNy LmJ1c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7Ci0JZGV2X3ByaXYtPnBzci5wcmVwYXJlZCA9IHRy dWU7CiAJaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwogCiB1 bmxvY2s6CkBAIC04MDcsMTQgKzgwMyw5IEBAIHZvaWQgaW50ZWxfcHNyX2Rpc2FibGUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKIAkJcmV0dXJuOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYt PnBzci5sb2NrKTsKLQlpZiAoIWRldl9wcml2LT5wc3IucHJlcGFyZWQpIHsKLQkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwotCQlyZXR1cm47Ci0JfQogCiAJaW50ZWxfcHNyX2Rp c2FibGVfbG9ja2VkKGludGVsX2RwKTsKIAotCWRldl9wcml2LT5wc3IucHJlcGFyZWQgPSBmYWxz ZTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7CiAJY2FuY2VsX3dvcmtfc3lu YygmZGV2X3ByaXYtPnBzci53b3JrKTsKIH0KQEAgLTg4MywzNiArODc0LDYxIEBAIHN0YXRpYyBi b29sIF9fcHNyX3dhaXRfZm9yX2lkbGVfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAlyZXR1cm4gZXJyID09IDAgJiYgZGV2X3ByaXYtPnBzci5lbmFibGVkOwogfQog Ci1zdGF0aWMgYm9vbCBzd2l0Y2hpbmdfcHNyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKLQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkgIHUz MiBtb2RlKQorc3RhdGljIGludCBpbnRlbF9wc3JfbW9kZXNldF9mb3JjZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JLyogQ2FuJ3Qgc3dpdGNoIHBzciBzdGF0ZSBhbnl3 YXkgaWYgUFNSMiBpcyBub3Qgc3VwcG9ydGVkLiAqLwotCWlmICghY3J0Y19zdGF0ZSB8fCAhY3J0 Y19zdGF0ZS0+aGFzX3BzcjIpCi0JCXJldHVybiBmYWxzZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gJmRldl9wcml2LT5kcm07CisJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0 eDsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlpbnQgZXJyLCBpOwor CisJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CisJZHJtX21vZGVzZXRfYWNx dWlyZV9pbml0KCZjdHgsIDApOworCittb2Rlc2V0X2xvY2tfcmV0cnk6CisJZXJyID0gZHJtX21v ZGVzZXRfbG9ja19hbGxfY3R4KGRldiwgJmN0eCk7CisJaWYgKGVycikgeworCQlpZiAoZXJyID09 IC1FREVBRExLKSB7CisJCQllcnIgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCQkJaWYg KCFlcnIpCisJCQkJZ290byBtb2Rlc2V0X2xvY2tfcmV0cnk7CisJCX0KIAotCWlmIChkZXZfcHJp di0+cHNyLnBzcjJfZW5hYmxlZCAmJiBtb2RlID09IEk5MTVfUFNSX0RFQlVHX0ZPUkNFX1BTUjEp Ci0JCXJldHVybiB0cnVlOworCQlnb3RvIHVubG9jazsKKwl9CiAKLQlpZiAoIWRldl9wcml2LT5w c3IucHNyMl9lbmFibGVkICYmIG1vZGUgIT0gSTkxNV9QU1JfREVCVUdfRk9SQ0VfUFNSMSkKLQkJ cmV0dXJuIHRydWU7CisJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUo ZGV2LCAmY3R4KTsKKwlpZiAoSVNfRVJSKHN0YXRlKSkgeworCQllcnIgPSBQVFJfRVJSKHN0YXRl KTsKKwkJZ290byB1bmxvY2s7CisJfQorCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfc3RhdGU7CisKKwkJcGlwZV9zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0 ZSk7CisJCS8qIE1hcmsgbW9kZSBhcyBjaGFuZ2VkIHRvIGZvcmNlIGEgbW9kZXNldCAqLworCQlp ZiAocGlwZV9zdGF0ZS0+aGFzX3BzcikKKwkJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRy dWU7CisJfQorCisJZXJyID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3Rh dGUoc3RhdGUsICZjdHgpOwogCi0JcmV0dXJuIGZhbHNlOworCWRybV9hdG9taWNfc3RhdGVfcHV0 KHN0YXRlKTsKK3VubG9jazoKKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOworCWRybV9t b2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25m aWcubXV0ZXgpOworCisJcmV0dXJuIGVycjsKIH0KIAotaW50IGludGVsX3Bzcl9zZXRfZGVidWdm c19tb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgICBzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKLQkJCSAgICAgICB1NjQgdmFsKQoraW50 IGludGVsX3Bzcl9zZXRfZGVidWdmc19tb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTY0IHZhbCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5k cm07Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Ci0Jc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBOVUxMOwotCXN0cnVjdCBkcm1fY3J0Y19jb21t aXQgKmNvbW1pdDsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGludGVsX2RwICpk cDsKKwljb25zdCB1MzIgbW9kZSA9IHZhbCAmIEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSzsKKwl1 MzIgb2xkX21vZGU7CiAJaW50IHJldDsKLQlib29sIGVuYWJsZTsKLQl1MzIgbW9kZSA9IHZhbCAm IEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSzsKIAogCWlmICh2YWwgJiB+KEk5MTVfUFNSX0RFQlVH X0lSUSB8IEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSykgfHwKIAkgICAgbW9kZSA+IEk5MTVfUFNS X0RFQlVHX0ZPUkNFX1BTUjEpIHsKQEAgLTkyMCw0OSArOTM2LDE4IEBAIGludCBpbnRlbF9wc3Jf c2V0X2RlYnVnZnNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAotCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9j b25maWcuY29ubmVjdGlvbl9tdXRleCwgY3R4KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0Owot Ci0JLyogZGV2X3ByaXYtPnBzci5kcCBzaG91bGQgYmUgc2V0IG9uY2UgYW5kIHRoZW4gbmV2ZXIg dG91Y2hlZCBhZ2Fpbi4gKi8KLQlkcCA9IFJFQURfT05DRShkZXZfcHJpdi0+cHNyLmRwKTsKLQlj b25uX3N0YXRlID0gZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFzZS5zdGF0ZTsKLQljcnRjID0g Y29ubl9zdGF0ZS0+Y3J0YzsKLQlpZiAoY3J0YykgewotCQlyZXQgPSBkcm1fbW9kZXNldF9sb2Nr KCZjcnRjLT5tdXRleCwgY3R4KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0KLQkJY3J0 Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwotCQljb21taXQgPSBj cnRjX3N0YXRlLT5iYXNlLmNvbW1pdDsKLQl9IGVsc2UgewotCQljb21taXQgPSBjb25uX3N0YXRl LT5jb21taXQ7Ci0JfQotCWlmIChjb21taXQpIHsKLQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlv bl9pbnRlcnJ1cHRpYmxlKCZjb21taXQtPmh3X2RvbmUpOwotCQlpZiAocmV0KQotCQkJcmV0dXJu IHJldDsKLQl9Ci0KIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldl9wcml2LT5w c3IubG9jayk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWVuYWJsZSA9IHBzcl9nbG9i YWxfZW5hYmxlZCh2YWwpOwotCi0JaWYgKCFlbmFibGUgfHwgc3dpdGNoaW5nX3BzcihkZXZfcHJp diwgY3J0Y19zdGF0ZSwgbW9kZSkpCi0JCWludGVsX3Bzcl9kaXNhYmxlX2xvY2tlZChkZXZfcHJp di0+cHNyLmRwKTsKLQorCW9sZF9tb2RlID0gZGV2X3ByaXYtPnBzci5kZWJ1ZyAmIEk5MTVfUFNS X0RFQlVHX01PREVfTUFTSzsKIAlkZXZfcHJpdi0+cHNyLmRlYnVnID0gdmFsOwotCWlmIChjcnRj KQotCQlkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA9IGludGVsX3BzcjJfZW5hYmxlZChkZXZf cHJpdiwgY3J0Y19zdGF0ZSk7CiAKLQlpbnRlbF9wc3JfaXJxX2NvbnRyb2woZGV2X3ByaXYsIGRl dl9wcml2LT5wc3IuZGVidWcpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsK IAotCWlmIChkZXZfcHJpdi0+cHNyLnByZXBhcmVkICYmIGVuYWJsZSkKLQkJaW50ZWxfcHNyX2Vu YWJsZV9sb2NrZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOworCWlmIChvbGRfbW9kZSAhPSBtb2Rl KQorCQlyZXQgPSBpbnRlbF9wc3JfbW9kZXNldF9mb3JjZShkZXZfcHJpdik7CiAKLQltdXRleF91 bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7CiAJcmV0dXJuIHJldDsKIH0KIAotLSAKMi4xOS4y CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK