From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Subject: [PATCH 2/6] drm/i915/psr: Share the common code between PSR exit and disable Date: Fri, 23 Feb 2018 18:03:07 -0800 Message-ID: <20180224020311.14813-2-jose.souza@intel.com> References: <20180224020311.14813-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 961646F3A2 for ; Sat, 24 Feb 2018 02:04:55 +0000 (UTC) In-Reply-To: <20180224020311.14813-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@intel.com List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgfCAgIDEgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgfCAxOTkgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDEwNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA4MmExMDZiMWJkYmMuLjQ0 YjU1MWYxNTc2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC03ODAsNiArNzgwLDcgQEAg c3RydWN0IGk5MTVfcHNyIHsKIAl2b2lkICgqZW5hYmxlX3NpbmspKHN0cnVjdCBpbnRlbF9kcCAq KTsKIAl2b2lkICgqYWN0aXZhdGUpKHN0cnVjdCBpbnRlbF9kcCAqKTsKIAl2b2lkICgqc2V0dXBf dnNjKShzdHJ1Y3QgaW50ZWxfZHAgKiwgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKik7 CisJdm9pZCAoKmV4aXQpKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgd2FpdF9leGl0 KTsKIH07CiAKIGVudW0gaW50ZWxfcGNoIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKaW5kZXgg MmVmMzc0ZjkzNmI5Li5lOGMzMmMzYWZiMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCkBA IC01NTEsMjUgKzU1MSwxMiBAQCBzdGF0aWMgdm9pZCB2bHZfcHNyX2Rpc2FibGUoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJdWludDMyX3QgdmFsOwogCi0JaWYgKGRl dl9wcml2LT5wc3IuYWN0aXZlKSB7Ci0JCS8qIFB1dCBWTFYgUFNSIGJhY2sgdG8gUFNSX3N0YXRl IDAgKGRpc2FibGVkKS4gKi8KLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2 LAotCQkJCQkgICAgVkxWX1BTUlNUQVQoY3J0Yy0+cGlwZSksCi0JCQkJCSAgICBWTFZfRURQX1BT Ul9JTl9UUkFOUywKLQkJCQkJICAgIDAsCi0JCQkJCSAgICAxKSkKLQkJCVdBUk4oMSwgIlBTUiB0 cmFuc2l0aW9uIHRvb2sgbG9uZ2VyIHRoYW4gZXhwZWN0ZWRcbiIpOworCWRldl9wcml2LT5wc3Iu ZXhpdChpbnRlbF9kcCwgdHJ1ZSk7CiAKLQkJdmFsID0gSTkxNV9SRUFEKFZMVl9QU1JDVEwoY3J0 Yy0+cGlwZSkpOwotCQl2YWwgJj0gflZMVl9FRFBfUFNSX0FDVElWRV9FTlRSWTsKLQkJdmFsICY9 IH5WTFZfRURQX1BTUl9FTkFCTEU7Ci0JCXZhbCAmPSB+VkxWX0VEUF9QU1JfTU9ERV9NQVNLOwot CQlJOTE1X1dSSVRFKFZMVl9QU1JDVEwoY3J0Yy0+cGlwZSksIHZhbCk7Ci0KLQkJZGV2X3ByaXYt PnBzci5hY3RpdmUgPSBmYWxzZTsKLQl9IGVsc2UgewotCQlXQVJOX09OKHZsdl9pc19wc3JfYWN0 aXZlX29uX3BpcGUoZGV2LCBjcnRjLT5waXBlKSk7Ci0JfQorCXZhbCA9IEk5MTVfUkVBRChWTFZf UFNSQ1RMKGNydGMtPnBpcGUpKTsKKwl2YWwgJj0gflZMVl9FRFBfUFNSX0VOQUJMRTsKKwl2YWwg Jj0gflZMVl9FRFBfUFNSX01PREVfTUFTSzsKKwlJOTE1X1dSSVRFKFZMVl9QU1JDVEwoY3J0Yy0+ cGlwZSksIHZhbCk7CiB9CiAKIHN0YXRpYyB2b2lkIGhzd19wc3JfZGlzYWJsZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLApAQCAtNTc5LDQ0ICs1NjYsMTAwIEBAIHN0YXRpYyB2b2lkIGhzd19w c3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAKLQlpZiAoZGV2X3ByaXYtPnBzci5h Y3RpdmUpIHsKLQkJaTkxNV9yZWdfdCBwc3Jfc3RhdHVzOwotCQl1MzIgcHNyX3N0YXR1c19tYXNr OwotCi0JCWlmIChkZXZfcHJpdi0+cHNyLmF1eF9mcmFtZV9zeW5jKQotCQkJZHJtX2RwX2RwY2Rf d3JpdGViKCZpbnRlbF9kcC0+YXV4LAotCQkJCQlEUF9TSU5LX0RFVklDRV9BVVhfRlJBTUVfU1lO Q19DT05GLAotCQkJCQkwKTsKKwlkZXZfcHJpdi0+cHNyLmV4aXQoaW50ZWxfZHAsIHRydWUpOwor fQogCi0JCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkgewotCQkJcHNyX3N0YXR1cyA9 IEVEUF9QU1IyX1NUQVRVUzsKLQkJCXBzcl9zdGF0dXNfbWFzayA9IEVEUF9QU1IyX1NUQVRVU19T VEFURV9NQVNLOworc3RhdGljIHZvaWQgaHN3X3Bzcl9leGl0KHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsIGJvb2wgd2FpdF9leGl0KQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJaTkxNV9yZWdfdCBwc3Jfc3Rh dHVzOworCXUzMiBwc3Jfc3RhdHVzX21hc2s7CiAKLQkJCUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RM LAotCQkJCSAgIEk5MTVfUkVBRChFRFBfUFNSMl9DVEwpICYKLQkJCQkgICB+KEVEUF9QU1IyX0VO QUJMRSB8IEVEUF9TVV9UUkFDS19FTkFCTEUpKTsKKwlpZiAoIWRldl9wcml2LT5wc3IuYWN0aXZl KSB7CisJCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkKKwkJCVdBUk5fT04oSTkxNV9S RUFEKEVEUF9QU1IyX0NUTCkgJiBFRFBfUFNSMl9FTkFCTEUpOworCQllbHNlCisJCQlXQVJOX09O KEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7CisJCXJldHVybjsKKwl9 CiAKLQkJfSBlbHNlIHsKLQkJCXBzcl9zdGF0dXMgPSBFRFBfUFNSX1NUQVRVUzsKLQkJCXBzcl9z dGF0dXNfbWFzayA9IEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0s7CisJaWYgKGRldl9wcml2LT5w c3IuYXV4X2ZyYW1lX3N5bmMpCisJCWRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwK KwkJCQkgICBEUF9TSU5LX0RFVklDRV9BVVhfRlJBTUVfU1lOQ19DT05GLCAwKTsKIAotCQkJSTkx NV9XUklURShFRFBfUFNSX0NUTCwKLQkJCQkgICBJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgfkVE UF9QU1JfRU5BQkxFKTsKLQkJfQorCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkgewor CQlwc3Jfc3RhdHVzID0gRURQX1BTUjJfU1RBVFVTOworCQlwc3Jfc3RhdHVzX21hc2sgPSBFRFBf UFNSMl9TVEFUVVNfU1RBVEVfTUFTSzsKIAotCQkvKiBXYWl0IHRpbGwgUFNSIGlzIGlkbGUgKi8K LQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAotCQkJCQkgICAgcHNyX3N0 YXR1cywgcHNyX3N0YXR1c19tYXNrLCAwLAotCQkJCQkgICAgMjAwMCkpCi0JCQlEUk1fRVJST1Io IlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1IgSWRsZSBTdGF0ZVxuIik7CisJCUk5MTVfV1JJVEUo RURQX1BTUjJfQ1RMLAorCQkJICAgSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCkgJgorCQkJICAgfihF RFBfUFNSMl9FTkFCTEUgfCBFRFBfU1VfVFJBQ0tfRU5BQkxFKSk7CiAKLQkJZGV2X3ByaXYtPnBz ci5hY3RpdmUgPSBmYWxzZTsKIAl9IGVsc2UgewotCQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1 cHBvcnQpCi0JCQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSMl9DVEwpICYgRURQX1BTUjJfRU5B QkxFKTsKLQkJZWxzZQotCQkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BT Ul9FTkFCTEUpOworCQlwc3Jfc3RhdHVzID0gRURQX1BTUl9TVEFUVVM7CisJCXBzcl9zdGF0dXNf bWFzayA9IEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0s7CisKKwkJSTkxNV9XUklURShFRFBfUFNS X0NUTCwKKwkJCSAgIEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiB+RURQX1BTUl9FTkFCTEUpOwor CX0KKworCS8qIFdhaXQgdGlsbCBQU1IgaXMgaWRsZSAqLworCWlmICh3YWl0X2V4aXQgJiYgaW50 ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsIHBzcl9zdGF0dXMsCisJCQkJCQkgcHNyX3N0 YXR1c19tYXNrLCAwLCAyMDAwKSkKKwkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3Ig UFNSIElkbGUgU3RhdGVcbiIpOworCisJZGV2X3ByaXYtPnBzci5hY3RpdmUgPSBmYWxzZTsKK30K Kworc3RhdGljIHZvaWQgdmx2X3Bzcl9leGl0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJv b2wgd2FpdF9leGl0KQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7CisJdWludDMyX3Qg dmFsOworCisJaWYgKCFkZXZfcHJpdi0+cHNyLmFjdGl2ZSkgeworCQlXQVJOX09OKHZsdl9pc19w c3JfYWN0aXZlX29uX3BpcGUoZGV2LCBjcnRjLT5waXBlKSk7CisJCXJldHVybjsKIAl9CisKKwlp ZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsIFZMVl9QU1JTVEFUKGNydGMtPnBp cGUpLAorCQkJCSAgICBWTFZfRURQX1BTUl9JTl9UUkFOUywgMCwgMSkpCisJCVdBUk4oMSwgIlBT UiB0cmFuc2l0aW9uIHRvb2sgbG9uZ2VyIHRoYW4gZXhwZWN0ZWRcbiIpOworCisJLyoKKwkgKiBI ZXJlIHdlIGRvIHRoZSB0cmFuc2l0aW9uIGRpcmVjdGx5IGZyb20KKwkgKiBQU1Jfc3RhdGUgMyAo YWN0aXZlIC0gbm8gUmVtb3RlIEZyYW1lIEJ1ZmZlciAoUkZCKSB1cGRhdGUpIHRvCisJICogUFNS X3N0YXRlIDUgKGV4aXQpLgorCSAqIFBTUiBTdGF0ZSA0IChhY3RpdmUgd2l0aCBzaW5nbGUgZnJh bWUgdXBkYXRlKSBjYW4gYmUgc2tpcHBlZC4KKwkgKiBPbiBQU1Jfc3RhdGUgNSAoZXhpdCkgSGFy ZHdhcmUgaXMgcmVzcG9uc2libGUgdG8gdHJhbnNpdGlvbgorCSAqIGJhY2sgdG8gUFNSX3N0YXRl IDEgKGluYWN0aXZlKS4KKwkgKiBOb3cgd2UgYXJlIGF0IFNhbWUgc3RhdGUgYWZ0ZXIgdmx2X3Bz cl9lbmFibGVfc291cmNlLgorCSAqLworCXZhbCA9IEk5MTVfUkVBRChWTFZfUFNSQ1RMKGNydGMt PnBpcGUpKTsKKwl2YWwgJj0gflZMVl9FRFBfUFNSX0FDVElWRV9FTlRSWTsKKwlJOTE1X1dSSVRF KFZMVl9QU1JDVEwoY3J0Yy0+cGlwZSksIHZhbCk7CisKKwkvKgorCSAqIFNlbmQgQVVYIHdha2Ug dXAgLSBTcGVjIHNheXMgYWZ0ZXIgdHJhbnNpdGlvbmluZyB0byBQU1IKKwkgKiBhY3RpdmUgd2Ug aGF2ZSB0byBzZW5kIEFVWCB3YWtlIHVwIGJ5IHdyaXRpbmcgMDFoIGluIERQQ0QKKwkgKiA2MDBo IG9mIHNpbmsgZGV2aWNlLgorCSAqIFhYWDogVGhpcyBtaWdodCBzbG93IGRvd24gdGhlIHRyYW5z aXRpb24sIGJ1dCB3aXRob3V0IHRoaXMKKwkgKiBIVyBkb2Vzbid0IGNvbXBsZXRlIHRoZSB0cmFu c2l0aW9uIHRvIFBTUl9zdGF0ZSAxIGFuZCB3ZQorCSAqIG5ldmVyIGdldCB0aGUgc2NyZWVuIHVw ZGF0ZWQuCisJICovCisJZHJtX2RwX2RwY2Rfd3JpdGViKCZpbnRlbF9kcC0+YXV4LCBEUF9TRVRf UE9XRVIsIERQX1NFVF9QT1dFUl9EMCk7CisKKwlpZiAod2FpdF9leGl0ICYmIGludGVsX3dhaXRf Zm9yX3JlZ2lzdGVyKGRldl9wcml2LAorCQkJCQkJIFZMVl9QU1JTVEFUKGNydGMtPnBpcGUpLAor CQkJCQkJIFZMVl9FRFBfUFNSX0lOQUNUSVZFLAorCQkJCQkJIFZMVl9FRFBfUFNSX0lOQUNUSVZF LCAyMDAwKSkKKwkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgUFNSIGluYWN0aXZl IHN0YXRlXG4iKTsKKworCWRldl9wcml2LT5wc3IuYWN0aXZlID0gZmFsc2U7CiB9CiAKIC8qKgpA QCAtNzE4LDYwICs3NjEsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwogfQog Ci1zdGF0aWMgdm9pZCBpbnRlbF9wc3JfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCi17Ci0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGRldl9wcml2LT5wc3IuZW5h YmxlZDsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCkt PmJhc2UuYmFzZS5jcnRjOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+ cGlwZTsKLQl1MzIgdmFsOwotCi0JaWYgKCFkZXZfcHJpdi0+cHNyLmFjdGl2ZSkKLQkJcmV0dXJu OwotCi0JaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Ci0JCWlmIChkZXZfcHJpdi0+cHNyLmF1eF9m cmFtZV9zeW5jKQotCQkJZHJtX2RwX2RwY2Rfd3JpdGViKCZpbnRlbF9kcC0+YXV4LAotCQkJCQlE UF9TSU5LX0RFVklDRV9BVVhfRlJBTUVfU1lOQ19DT05GLAotCQkJCQkwKTsKLQkJaWYgKGRldl9w cml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Ci0JCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RM KTsKLQkJCVdBUk5fT04oISh2YWwgJiBFRFBfUFNSMl9FTkFCTEUpKTsKLQkJCUk5MTVfV1JJVEUo RURQX1BTUjJfQ1RMLCB2YWwgJiB+RURQX1BTUjJfRU5BQkxFKTsKLQkJfSBlbHNlIHsKLQkJCXZh bCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTCk7Ci0JCQlXQVJOX09OKCEodmFsICYgRURQX1BTUl9F TkFCTEUpKTsKLQkJCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwsIHZhbCAmIH5FRFBfUFNSX0VOQUJM RSk7Ci0JCX0KLQl9IGVsc2UgewotCQl2YWwgPSBJOTE1X1JFQUQoVkxWX1BTUkNUTChwaXBlKSk7 Ci0KLQkJLyoKLQkJICogSGVyZSB3ZSBkbyB0aGUgdHJhbnNpdGlvbiBkcmlyZWN0bHkgZnJvbQot CQkgKiBQU1Jfc3RhdGUgMyAoYWN0aXZlIC0gbm8gUmVtb3RlIEZyYW1lIEJ1ZmZlciAoUkZCKSB1 cGRhdGUpIHRvCi0JCSAqIFBTUl9zdGF0ZSA1IChleGl0KS4KLQkJICogUFNSIFN0YXRlIDQgKGFj dGl2ZSB3aXRoIHNpbmdsZSBmcmFtZSB1cGRhdGUpIGNhbiBiZSBza2lwcGVkLgotCQkgKiBPbiBQ U1Jfc3RhdGUgNSAoZXhpdCkgSGFyZHdhcmUgaXMgcmVzcG9uc2libGUgdG8gdHJhbnNpdGlvbgot CQkgKiBiYWNrIHRvIFBTUl9zdGF0ZSAxIChpbmFjdGl2ZSkuCi0JCSAqIE5vdyB3ZSBhcmUgYXQg U2FtZSBzdGF0ZSBhZnRlciB2bHZfcHNyX2VuYWJsZV9zb3VyY2UuCi0JCSAqLwotCQl2YWwgJj0g flZMVl9FRFBfUFNSX0FDVElWRV9FTlRSWTsKLQkJSTkxNV9XUklURShWTFZfUFNSQ1RMKHBpcGUp LCB2YWwpOwotCi0JCS8qCi0JCSAqIFNlbmQgQVVYIHdha2UgdXAgLSBTcGVjIHNheXMgYWZ0ZXIg dHJhbnNpdGlvbmluZyB0byBQU1IKLQkJICogYWN0aXZlIHdlIGhhdmUgdG8gc2VuZCBBVVggd2Fr ZSB1cCBieSB3cml0aW5nIDAxaCBpbiBEUENECi0JCSAqIDYwMGggb2Ygc2luayBkZXZpY2UuCi0J CSAqIFhYWDogVGhpcyBtaWdodCBzbG93IGRvd24gdGhlIHRyYW5zaXRpb24sIGJ1dCB3aXRob3V0 IHRoaXMKLQkJICogSFcgZG9lc24ndCBjb21wbGV0ZSB0aGUgdHJhbnNpdGlvbiB0byBQU1Jfc3Rh dGUgMSBhbmQgd2UKLQkJICogbmV2ZXIgZ2V0IHRoZSBzY3JlZW4gdXBkYXRlZC4KLQkJICovCi0J CWRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwgRFBfU0VUX1BPV0VSLAotCQkJCSAg IERQX1NFVF9QT1dFUl9EMCk7Ci0JfQotCi0JZGV2X3ByaXYtPnBzci5hY3RpdmUgPSBmYWxzZTsK LX0KLQogLyoqCiAgKiBpbnRlbF9wc3Jfc2luZ2xlX2ZyYW1lX3VwZGF0ZSAtIFNpbmdsZSBGcmFt ZSBVcGRhdGUKICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKQEAgLTg1NCw3ICs4NDMsNyBAQCB2 b2lkIGludGVsX3Bzcl9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyB8PSBmcm9udGJ1ZmZlcl9i aXRzOwogCiAJaWYgKGZyb250YnVmZmVyX2JpdHMpCi0JCWludGVsX3Bzcl9leGl0KGRldl9wcml2 KTsKKwkJZGV2X3ByaXYtPnBzci5leGl0KGRldl9wcml2LT5wc3IuZW5hYmxlZCwgZmFsc2UpOwog CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwogfQpAQCAtODk1LDcgKzg4NCw3 IEBAIHZvaWQgaW50ZWxfcHNyX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAogCS8qIEJ5IGRlZmluaXRpb24gZmx1c2ggPSBpbnZhbGlkYXRlICsgZmx1c2ggKi8KIAlp ZiAoZnJvbnRidWZmZXJfYml0cykKLQkJaW50ZWxfcHNyX2V4aXQoZGV2X3ByaXYpOworCQlkZXZf cHJpdi0+cHNyLmV4aXQoZGV2X3ByaXYtPnBzci5lbmFibGVkLCBmYWxzZSk7CiAKIAlpZiAoIWRl dl9wcml2LT5wc3IuYWN0aXZlICYmICFkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0 cykKIAkJaWYgKCF3b3JrX2J1c3koJmRldl9wcml2LT5wc3Iud29yay53b3JrKSkKQEAgLTk1Niwx MSArOTQ1LDEzIEBAIHZvaWQgaW50ZWxfcHNyX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCQlkZXZfcHJpdi0+cHNyLmVuYWJsZV9zaW5rID0gdmx2X3Bzcl9lbmFibGVf c2luazsKIAkJZGV2X3ByaXYtPnBzci5hY3RpdmF0ZSA9IHZsdl9wc3JfYWN0aXZhdGU7CiAJCWRl dl9wcml2LT5wc3Iuc2V0dXBfdnNjID0gdmx2X3Bzcl9zZXR1cF92c2M7CisJCWRldl9wcml2LT5w c3IuZXhpdCA9IHZsdl9wc3JfZXhpdDsKIAl9IGVsc2UgewogCQlkZXZfcHJpdi0+cHNyLmVuYWJs ZV9zb3VyY2UgPSBoc3dfcHNyX2VuYWJsZV9zb3VyY2U7CiAJCWRldl9wcml2LT5wc3IuZGlzYWJs ZV9zb3VyY2UgPSBoc3dfcHNyX2Rpc2FibGU7CiAJCWRldl9wcml2LT5wc3IuZW5hYmxlX3Npbmsg PSBoc3dfcHNyX2VuYWJsZV9zaW5rOwogCQlkZXZfcHJpdi0+cHNyLmFjdGl2YXRlID0gaHN3X3Bz cl9hY3RpdmF0ZTsKIAkJZGV2X3ByaXYtPnBzci5zZXR1cF92c2MgPSBoc3dfcHNyX3NldHVwX3Zz YzsKKwkJZGV2X3ByaXYtPnBzci5leGl0ID0gaHN3X3Bzcl9leGl0OwogCX0KIH0KLS0gCjIuMTYu MgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==