From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 2/2] drm/i915: Move the hsw/bdw pc8 code to intel_runtime_pm.c Date: Fri, 3 May 2019 22:31:43 +0300 Message-ID: <20190503193143.28240-2-ville.syrjala@linux.intel.com> References: <20190503193143.28240-1-ville.syrjala@linux.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 1D17A89872 for ; Fri, 3 May 2019 19:31:50 +0000 (UTC) In-Reply-To: <20190503193143.28240-1-ville.syrjala@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCmhz d19lbmFibGVfcGM4KCkvaHN3X2Rpc2FibGVfcGM4KCkgYXJlIG1vcmUgbGVzcyBlcXVpdmFsZW50 IHRvCnRoZSBkaXNwbGF5IGNvcmUgaW5pdC91bml0IGZ1bmN0aW9ucyBvZiBsYXRlciBwbGF0Zm9y bXMuIFJlbG9jYXRlCnRoZSBoc3cvYmR3IGNvZGUgaW50byBpbnRlbF9ydW50aW1lX3BtLmMgc28g dGhhdCBpdCBzaXRzIG5leHQgdG8KaXRzIGNvdXNpbnMuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDIyMiArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oICAgIHwgICA0ICsKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAgMiAtCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAyMjMgKysrKysrKysrKysrKysrKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmggfCAgIDIgKwogNSBmaWxl cyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgMjIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBkODFlYzgwZTM0ZjYuLmEzNTFjOGUyMTliYSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtODcyNSw3ICs4NzI1LDcgQEAg c3RhdGljIHZvaWQgbHB0X2VuYWJsZV9jbGtvdXRfZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogfQogCiAvKiBTZXF1ZW5jZSB0byBkaXNhYmxlIENMS09VVF9EUCAqLwotc3Rh dGljIHZvaWQgbHB0X2Rpc2FibGVfY2xrb3V0X2RwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3ZvaWQgbHB0X2Rpc2FibGVfY2xrb3V0X2RwKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKIAl1MzIgcmVnLCB0bXA7CiAKQEAgLTk0ODIsMjI2ICs5NDgyLDYg QEAgc3RhdGljIGJvb2wgaXJvbmxha2VfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAogCiAJcmV0dXJuIHJldDsKIH0KLQotc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9kaXNh YmxlX2xjcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGM7Ci0KLQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykKLQkJSTkxNV9TVEFURV9XQVJO KGNydGMtPmFjdGl2ZSwgIkNSVEMgZm9yIHBpcGUgJWMgZW5hYmxlZFxuIiwKLQkJICAgICBwaXBl X25hbWUoY3J0Yy0+cGlwZSkpOwotCi0JSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChIU1dfUFdS X1dFTExfQ1RMMiksCi0JCQkiRGlzcGxheSBwb3dlciB3ZWxsIG9uXG4iKTsKLQlJOTE1X1NUQVRF X1dBUk4oSTkxNV9SRUFEKFNQTExfQ1RMKSAmIFNQTExfUExMX0VOQUJMRSwgIlNQTEwgZW5hYmxl ZFxuIik7Ci0JSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChXUlBMTF9DVEwoMCkpICYgV1JQTExf UExMX0VOQUJMRSwgIldSUExMMSBlbmFibGVkXG4iKTsKLQlJOTE1X1NUQVRFX1dBUk4oSTkxNV9S RUFEKFdSUExMX0NUTCgxKSkgJiBXUlBMTF9QTExfRU5BQkxFLCAiV1JQTEwyIGVuYWJsZWRcbiIp OwotCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoUFBfU1RBVFVTKDApKSAmIFBQX09OLCAiUGFu ZWwgcG93ZXIgb25cbiIpOwotCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoQkxDX1BXTV9DUFVf Q1RMMikgJiBCTE1fUFdNX0VOQUJMRSwKLQkgICAgICJDUFUgUFdNMSBlbmFibGVkXG4iKTsKLQlp ZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpCi0JCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoSFNX X0JMQ19QV00yX0NUTCkgJiBCTE1fUFdNX0VOQUJMRSwKLQkJICAgICAiQ1BVIFBXTTIgZW5hYmxl ZFxuIik7Ci0JSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChCTENfUFdNX1BDSF9DVEwxKSAmIEJM TV9QQ0hfUFdNX0VOQUJMRSwKLQkgICAgICJQQ0ggUFdNMSBlbmFibGVkXG4iKTsKLQlJOTE1X1NU QVRFX1dBUk4oSTkxNV9SRUFEKFVUSUxfUElOX0NUTCkgJiBVVElMX1BJTl9FTkFCTEUsCi0JICAg ICAiVXRpbGl0eSBwaW4gZW5hYmxlZFxuIik7Ci0JSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChQ Q0hfR1RDX0NUTCkgJiBQQ0hfR1RDX0VOQUJMRSwgIlBDSCBHVEMgZW5hYmxlZFxuIik7Ci0KLQkv KgotCSAqIEluIHRoZW9yeSB3ZSBjYW4gc3RpbGwgbGVhdmUgSVJRcyBlbmFibGVkLCBhcyBsb25n IGFzIG9ubHkgdGhlIEhQRAotCSAqIGludGVycnVwdHMgcmVtYWluIGVuYWJsZWQuIFdlIHVzZWQg dG8gY2hlY2sgZm9yIHRoYXQsIGJ1dCBzaW5jZSBpdCdzCi0JICogZ2VuLXNwZWNpZmljIGFuZCBz aW5jZSB3ZSBvbmx5IGRpc2FibGUgTENQTEwgYWZ0ZXIgd2UgZnVsbHkgZGlzYWJsZQotCSAqIHRo ZSBpbnRlcnJ1cHRzLCB0aGUgY2hlY2sgYmVsb3cgc2hvdWxkIGJlIGVub3VnaC4KLQkgKi8KLQlJ OTE1X1NUQVRFX1dBUk4oaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSwgIklSUXMgZW5hYmxl ZFxuIik7Ci19Ci0KLXN0YXRpYyB1MzIgaHN3X3JlYWRfZGNvbXAoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQotewotCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSkKLQkJcmV0dXJu IEk5MTVfUkVBRChEX0NPTVBfSFNXKTsKLQllbHNlCi0JCXJldHVybiBJOTE1X1JFQUQoRF9DT01Q X0JEVyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGhzd193cml0ZV9kY29tcChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiB2YWwpCi17Ci0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp KSB7Ci0JCWlmIChzYW5keWJyaWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgR0VONl9QQ09ERV9X UklURV9EX0NPTVAsCi0JCQkJCSAgICB2YWwpKQotCQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRv IHdyaXRlIHRvIERfQ09NUFxuIik7Ci0JfSBlbHNlIHsKLQkJSTkxNV9XUklURShEX0NPTVBfQkRX LCB2YWwpOwotCQlQT1NUSU5HX1JFQUQoRF9DT01QX0JEVyk7Ci0JfQotfQotCi0vKgotICogVGhp cyBmdW5jdGlvbiBpbXBsZW1lbnRzIHBpZWNlcyBvZiB0d28gc2VxdWVuY2VzIGZyb20gQlNwZWM6 Ci0gKiAtIFNlcXVlbmNlIGZvciBkaXNwbGF5IHNvZnR3YXJlIHRvIGRpc2FibGUgTENQTEwKLSAq IC0gU2VxdWVuY2UgZm9yIGRpc3BsYXkgc29mdHdhcmUgdG8gYWxsb3cgcGFja2FnZSBDOCsKLSAq IFRoZSBzdGVwcyBpbXBsZW1lbnRlZCBoZXJlIGFyZSBqdXN0IHRoZSBzdGVwcyB0aGF0IGFjdHVh bGx5IHRvdWNoIHRoZSBMQ1BMTAotICogcmVnaXN0ZXIuIENhbGxlcnMgc2hvdWxkIHRha2UgY2Fy ZSBvZiBkaXNhYmxpbmcgYWxsIHRoZSBkaXNwbGF5IGVuZ2luZQotICogZnVuY3Rpb25zLCBkb2lu ZyB0aGUgbW9kZSB1bnNldCwgZml4aW5nIGludGVycnVwdHMsIGV0Yy4KLSAqLwotc3RhdGljIHZv aWQgaHN3X2Rpc2FibGVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAot CQkJICAgICAgYm9vbCBzd2l0Y2hfdG9fZmNsaywgYm9vbCBhbGxvd19wb3dlcl9kb3duKQotewot CXUzMiB2YWw7Ci0KLQlhc3NlcnRfY2FuX2Rpc2FibGVfbGNwbGwoZGV2X3ByaXYpOwotCi0JdmFs ID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Ci0KLQlpZiAoc3dpdGNoX3RvX2ZjbGspIHsKLQkJdmFs IHw9IExDUExMX0NEX1NPVVJDRV9GQ0xLOwotCQlJOTE1X1dSSVRFKExDUExMX0NUTCwgdmFsKTsK LQotCQlpZiAod2FpdF9mb3JfdXMoSTkxNV9SRUFEKExDUExMX0NUTCkgJgotCQkJCUxDUExMX0NE X1NPVVJDRV9GQ0xLX0RPTkUsIDEpKQotCQkJRFJNX0VSUk9SKCJTd2l0Y2hpbmcgdG8gRkNMSyBm YWlsZWRcbiIpOwotCi0JCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwotCX0KLQotCXZhbCB8 PSBMQ1BMTF9QTExfRElTQUJMRTsKLQlJOTE1X1dSSVRFKExDUExMX0NUTCwgdmFsKTsKLQlQT1NU SU5HX1JFQUQoTENQTExfQ1RMKTsKLQotCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigmZGV2 X3ByaXYtPnVuY29yZSwKLQkJCQkgICAgTENQTExfQ1RMLCBMQ1BMTF9QTExfTE9DSywgMCwgMSkp Ci0JCURSTV9FUlJPUigiTENQTEwgc3RpbGwgbG9ja2VkXG4iKTsKLQotCXZhbCA9IGhzd19yZWFk X2Rjb21wKGRldl9wcml2KTsKLQl2YWwgfD0gRF9DT01QX0NPTVBfRElTQUJMRTsKLQloc3dfd3Jp dGVfZGNvbXAoZGV2X3ByaXYsIHZhbCk7Ci0JbmRlbGF5KDEwMCk7Ci0KLQlpZiAod2FpdF9mb3Io KGhzd19yZWFkX2Rjb21wKGRldl9wcml2KSAmIERfQ09NUF9SQ09NUF9JTl9QUk9HUkVTUykgPT0g MCwKLQkJICAgICAxKSkKLQkJRFJNX0VSUk9SKCJEX0NPTVAgUkNPTVAgc3RpbGwgaW4gcHJvZ3Jl c3NcbiIpOwotCi0JaWYgKGFsbG93X3Bvd2VyX2Rvd24pIHsKLQkJdmFsID0gSTkxNV9SRUFEKExD UExMX0NUTCk7Ci0JCXZhbCB8PSBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9XOwotCQlJOTE1X1dSSVRF KExDUExMX0NUTCwgdmFsKTsKLQkJUE9TVElOR19SRUFEKExDUExMX0NUTCk7Ci0JfQotfQotCi0v KgotICogRnVsbHkgcmVzdG9yZXMgTENQTEwsIGRpc2FsbG93aW5nIHBvd2VyIGRvd24gYW5kIHN3 aXRjaGluZyBiYWNrIHRvIExDUExMCi0gKiBzb3VyY2UuCi0gKi8KLXN0YXRpYyB2b2lkIGhzd19y ZXN0b3JlX2xjcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQl1MzIg dmFsOwotCi0JdmFsID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Ci0KLQlpZiAoKHZhbCAmIChMQ1BM TF9QTExfTE9DSyB8IExDUExMX1BMTF9ESVNBQkxFIHwgTENQTExfQ0RfU09VUkNFX0ZDTEsgfAot CQkgICAgTENQTExfUE9XRVJfRE9XTl9BTExPVykpID09IExDUExMX1BMTF9MT0NLKQotCQlyZXR1 cm47Ci0KLQkvKgotCSAqIE1ha2Ugc3VyZSB3ZSdyZSBub3Qgb24gUEM4IHN0YXRlIGJlZm9yZSBk aXNhYmxpbmcgUEM4LCBvdGhlcndpc2UKLQkgKiB3ZSdsbCBoYW5nIHRoZSBtYWNoaW5lLiBUbyBw cmV2ZW50IFBDOCBzdGF0ZSwganVzdCBlbmFibGUgZm9yY2Vfd2FrZS4KLQkgKi8KLQlpbnRlbF91 bmNvcmVfZm9yY2V3YWtlX2dldCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Ci0K LQlpZiAodmFsICYgTENQTExfUE9XRVJfRE9XTl9BTExPVykgewotCQl2YWwgJj0gfkxDUExMX1BP V0VSX0RPV05fQUxMT1c7Ci0JCUk5MTVfV1JJVEUoTENQTExfQ1RMLCB2YWwpOwotCQlQT1NUSU5H X1JFQUQoTENQTExfQ1RMKTsKLQl9Ci0KLQl2YWwgPSBoc3dfcmVhZF9kY29tcChkZXZfcHJpdik7 Ci0JdmFsIHw9IERfQ09NUF9DT01QX0ZPUkNFOwotCXZhbCAmPSB+RF9DT01QX0NPTVBfRElTQUJM RTsKLQloc3dfd3JpdGVfZGNvbXAoZGV2X3ByaXYsIHZhbCk7Ci0KLQl2YWwgPSBJOTE1X1JFQUQo TENQTExfQ1RMKTsKLQl2YWwgJj0gfkxDUExMX1BMTF9ESVNBQkxFOwotCUk5MTVfV1JJVEUoTENQ TExfQ1RMLCB2YWwpOwotCi0JaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+ dW5jb3JlLAotCQkJCSAgICBMQ1BMTF9DVEwsIExDUExMX1BMTF9MT0NLLCBMQ1BMTF9QTExfTE9D SywKLQkJCQkgICAgNSkpCi0JCURSTV9FUlJPUigiTENQTEwgbm90IGxvY2tlZCB5ZXRcbiIpOwot Ci0JaWYgKHZhbCAmIExDUExMX0NEX1NPVVJDRV9GQ0xLKSB7Ci0JCXZhbCA9IEk5MTVfUkVBRChM Q1BMTF9DVEwpOwotCQl2YWwgJj0gfkxDUExMX0NEX1NPVVJDRV9GQ0xLOwotCQlJOTE1X1dSSVRF KExDUExMX0NUTCwgdmFsKTsKLQotCQlpZiAod2FpdF9mb3JfdXMoKEk5MTVfUkVBRChMQ1BMTF9D VEwpICYKLQkJCQkgTENQTExfQ0RfU09VUkNFX0ZDTEtfRE9ORSkgPT0gMCwgMSkpCi0JCQlEUk1f RVJST1IoIlN3aXRjaGluZyBiYWNrIHRvIExDUExMIGZhaWxlZFxuIik7Ci0JfQotCi0JaW50ZWxf dW5jb3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwot Ci0JaW50ZWxfdXBkYXRlX2NkY2xrKGRldl9wcml2KTsKLQlpbnRlbF9kdW1wX2NkY2xrX3N0YXRl KCZkZXZfcHJpdi0+Y2RjbGsuaHcsICJDdXJyZW50IENEQ0xLIik7Ci19Ci0KLS8qCi0gKiBQYWNr YWdlIHN0YXRlcyBDOCBhbmQgZGVlcGVyIGFyZSByZWFsbHkgZGVlcCBQQyBzdGF0ZXMgdGhhdCBj YW4gb25seSBiZQotICogcmVhY2hlZCB3aGVuIGFsbCB0aGUgZGV2aWNlcyBvbiB0aGUgc3lzdGVt IGFsbG93IGl0LCBzbyBldmVuIGlmIHRoZSBncmFwaGljcwotICogZGV2aWNlIGFsbG93cyBQQzgr LCBpdCBkb2Vzbid0IG1lYW4gdGhlIHN5c3RlbSB3aWxsIGFjdHVhbGx5IGdldCB0byB0aGVzZQot ICogc3RhdGVzLiBPdXIgZHJpdmVyIG9ubHkgYWxsb3dzIFBDOCsgd2hlbiBnb2luZyBpbnRvIHJ1 bnRpbWUgUE0uCi0gKgotICogVGhlIHJlcXVpcmVtZW50cyBmb3IgUEM4KyBhcmUgdGhhdCBhbGwg dGhlIG91dHB1dHMgYXJlIGRpc2FibGVkLCB0aGUgcG93ZXIKLSAqIHdlbGwgaXMgZGlzYWJsZWQg YW5kIG1vc3QgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQsIGFuZCB0aGVzZSBhcmUgYWxzbwotICog cmVxdWlyZW1lbnRzIGZvciBydW50aW1lIFBNLiBXaGVuIHRoZXNlIGNvbmRpdGlvbnMgYXJlIG1l dCwgd2UgbWFudWFsbHkgZG8KLSAqIHRoZSBvdGhlciBjb25kaXRpb25zOiBkaXNhYmxlIHRoZSBp bnRlcnJ1cHRzLCBjbG9ja3MgYW5kIHN3aXRjaCBMQ1BMTCByZWZjbGsKLSAqIHRvIEZjbGsuIElm IHdlJ3JlIGluIFBDOCsgYW5kIHdlIGdldCBhbiBub24taG90cGx1ZyBpbnRlcnJ1cHQsIHdlIGNh biBoYXJkCi0gKiBoYW5nIHRoZSBtYWNoaW5lLgotICoKLSAqIFdoZW4gd2UgcmVhbGx5IHJlYWNo IFBDOCBvciBkZWVwZXIgc3RhdGVzIChub3QganVzdCB3aGVuIHdlIGFsbG93IGl0KSB3ZSBsb3Nl Ci0gKiB0aGUgc3RhdGUgb2Ygc29tZSByZWdpc3RlcnMsIHNvIHdoZW4gd2UgY29tZSBiYWNrIGZy b20gUEM4KyB3ZSBuZWVkIHRvCi0gKiByZXN0b3JlIHRoaXMgc3RhdGUuIFdlIGRvbid0IGdldCBp bnRvIFBDOCsgaWYgd2UncmUgbm90IGluIFJDNiwgc28gd2UgZG9uJ3QKLSAqIG5lZWQgdG8gdGFr ZSBjYXJlIG9mIHRoZSByZWdpc3RlcnMga2VwdCBieSBSQzYuIE5vdGljZSB0aGF0IHRoaXMgaGFw cGVucyBldmVuCi0gKiBpZiB3ZSBkb24ndCBwdXQgdGhlIGRldmljZSBpbiBQQ0kgRDMgc3RhdGUg KHdoaWNoIGlzIHdoYXQgY3VycmVudGx5IGhhcHBlbnMKLSAqIGJlY2F1c2Ugb2YgdGhlIHJ1bnRp bWUgUE0gc3VwcG9ydCkuCi0gKgotICogRm9yIG1vcmUsIHJlYWQgIkRpc3BsYXkgU2VxdWVuY2Vz IGZvciBQYWNrYWdlIEM4IiBvbiB0aGUgaGFyZHdhcmUKLSAqIGRvY3VtZW50YXRpb24uCi0gKi8K LXZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQot ewotCXUzMiB2YWw7Ci0KLQlEUk1fREVCVUdfS01TKCJFbmFibGluZyBwYWNrYWdlIEM4K1xuIik7 Ci0KLQlpZiAoSEFTX1BDSF9MUFRfTFAoZGV2X3ByaXYpKSB7Ci0JCXZhbCA9IEk5MTVfUkVBRChT T1VUSF9EU1BDTEtfR0FURV9EKTsKLQkJdmFsICY9IH5QQ0hfTFBfUEFSVElUSU9OX0xFVkVMX0RJ U0FCTEU7Ci0JCUk5MTVfV1JJVEUoU09VVEhfRFNQQ0xLX0dBVEVfRCwgdmFsKTsKLQl9Ci0KLQls cHRfZGlzYWJsZV9jbGtvdXRfZHAoZGV2X3ByaXYpOwotCWhzd19kaXNhYmxlX2xjcGxsKGRldl9w cml2LCB0cnVlLCB0cnVlKTsKLX0KLQotdm9pZCBoc3dfZGlzYWJsZV9wYzgoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXUzMiB2YWw7Ci0KLQlEUk1fREVCVUdfS01TKCJE aXNhYmxpbmcgcGFja2FnZSBDOCtcbiIpOwotCi0JaHN3X3Jlc3RvcmVfbGNwbGwoZGV2X3ByaXYp OwotCWxwdF9pbml0X3BjaF9yZWZjbGsoZGV2X3ByaXYpOwotCi0JaWYgKEhBU19QQ0hfTFBUX0xQ KGRldl9wcml2KSkgewotCQl2YWwgPSBJOTE1X1JFQUQoU09VVEhfRFNQQ0xLX0dBVEVfRCk7Ci0J CXZhbCB8PSBQQ0hfTFBfUEFSVElUSU9OX0xFVkVMX0RJU0FCTEU7Ci0JCUk5MTVfV1JJVEUoU09V VEhfRFNQQ0xLX0dBVEVfRCwgdmFsKTsKLQl9Ci19Ci0KIHN0YXRpYyBpbnQgaGFzd2VsbF9jcnRj X2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmgKaW5kZXggMjIyMDU4OGU4NmFjLi4xYjZmNWE3MTE4NGQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmgKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlIDxkcm0vZHJt X3V0aWwuaD4KICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAorc3RydWN0IGRybV9pOTE1X3By aXZhdGU7CisKIGVudW0gaTkxNV9ncGlvIHsKIAlHUElPQSwKIAlHUElPQiwKQEAgLTQzMiw0ICs0 MzQsNiBAQCB2b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24odTE2IGJwcCwgaW50IG5sYW5lcywK IAkJCSAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKIAkJCSAgICBib29sIGNvbnN0YW50 X24pOwogYm9vbCBpc19jY3NfbW9kaWZpZXIodTY0IG1vZGlmaWVyKTsKK3ZvaWQgbHB0X2Rpc2Fi bGVfY2xrb3V0X2RwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CisKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA0MDQ5ZTAzZDJjMGQuLjI0Nzg5M2VkMTU0 MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTE1NzEsOCArMTU3MSw2IEBAIHZvaWQg YXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUg cGlwZSwgYm9vbCBzdGF0ZSk7CiAjZGVmaW5lIGFzc2VydF9waXBlX2Rpc2FibGVkKGQsIHApIGFz c2VydF9waXBlKGQsIHAsIGZhbHNlKQogdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBoc3dfZW5hYmxlX3BjOChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBoc3dfZGlzYWJsZV9wYzgoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHVuc2lnbmVkIGludCBza2xfY2RjbGtf Z2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSk7CiB2b2lkIGludGVsX2RwX2dldF9tX24oc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggYjFm ZDJhZTk5MTk5Li5iOGZhZGQxYjY4NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMKQEAgLTM2NDIsNiArMzY0MiwyMjkgQEAgc3RhdGljIHZvaWQgaHN3X2Fzc2VydF9j ZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCURSTV9FUlJPUigiTENQ TEwgaXMgZGlzYWJsZWRcbiIpOwogfQogCitzdGF0aWMgdm9pZCBhc3NlcnRfY2FuX2Rpc2FibGVf bGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsK KworCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKQorCQlJOTE1X1NUQVRFX1dBUk4oY3J0 Yy0+YWN0aXZlLCAiQ1JUQyBmb3IgcGlwZSAlYyBlbmFibGVkXG4iLAorCQkJCXBpcGVfbmFtZShj cnRjLT5waXBlKSk7CisKKwlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9D VEwyKSwKKwkJCSJEaXNwbGF5IHBvd2VyIHdlbGwgb25cbiIpOworCUk5MTVfU1RBVEVfV0FSTihJ OTE1X1JFQUQoU1BMTF9DVEwpICYgU1BMTF9QTExfRU5BQkxFLAorCQkJIlNQTEwgZW5hYmxlZFxu Iik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChXUlBMTF9DVEwoMCkpICYgV1JQTExfUExM X0VOQUJMRSwKKwkJCSJXUlBMTDEgZW5hYmxlZFxuIik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVf UkVBRChXUlBMTF9DVEwoMSkpICYgV1JQTExfUExMX0VOQUJMRSwKKwkJCSJXUlBMTDIgZW5hYmxl ZFxuIik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChQUF9TVEFUVVMoMCkpICYgUFBfT04s CisJCQkiUGFuZWwgcG93ZXIgb25cbiIpOworCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoQkxD X1BXTV9DUFVfQ1RMMikgJiBCTE1fUFdNX0VOQUJMRSwKKwkJCSJDUFUgUFdNMSBlbmFibGVkXG4i KTsKKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpCisJCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JF QUQoSFNXX0JMQ19QV00yX0NUTCkgJiBCTE1fUFdNX0VOQUJMRSwKKwkJCQkiQ1BVIFBXTTIgZW5h YmxlZFxuIik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChCTENfUFdNX1BDSF9DVEwxKSAm IEJMTV9QQ0hfUFdNX0VOQUJMRSwKKwkJCSJQQ0ggUFdNMSBlbmFibGVkXG4iKTsKKwlJOTE1X1NU QVRFX1dBUk4oSTkxNV9SRUFEKFVUSUxfUElOX0NUTCkgJiBVVElMX1BJTl9FTkFCTEUsCisJCQki VXRpbGl0eSBwaW4gZW5hYmxlZFxuIik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChQQ0hf R1RDX0NUTCkgJiBQQ0hfR1RDX0VOQUJMRSwKKwkJCSJQQ0ggR1RDIGVuYWJsZWRcbiIpOworCisJ LyoKKwkgKiBJbiB0aGVvcnkgd2UgY2FuIHN0aWxsIGxlYXZlIElSUXMgZW5hYmxlZCwgYXMgbG9u ZyBhcyBvbmx5IHRoZSBIUEQKKwkgKiBpbnRlcnJ1cHRzIHJlbWFpbiBlbmFibGVkLiBXZSB1c2Vk IHRvIGNoZWNrIGZvciB0aGF0LCBidXQgc2luY2UgaXQncworCSAqIGdlbi1zcGVjaWZpYyBhbmQg c2luY2Ugd2Ugb25seSBkaXNhYmxlIExDUExMIGFmdGVyIHdlIGZ1bGx5IGRpc2FibGUKKwkgKiB0 aGUgaW50ZXJydXB0cywgdGhlIGNoZWNrIGJlbG93IHNob3VsZCBiZSBlbm91Z2guCisJICovCisJ STkxNV9TVEFURV9XQVJOKGludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdiksICJJUlFzIGVuYWJs ZWRcbiIpOworfQorCitzdGF0aWMgdTMyIGhzd19yZWFkX2Rjb21wKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKK3sKKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpCisJCXJldHVy biBJOTE1X1JFQUQoRF9DT01QX0hTVyk7CisJZWxzZQorCQlyZXR1cm4gSTkxNV9SRUFEKERfQ09N UF9CRFcpOworfQorCitzdGF0aWMgdm9pZCBoc3dfd3JpdGVfZGNvbXAoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgdmFsKQoreworCWlmIChJU19IQVNXRUxMKGRldl9wcml2 KSkgeworCQlpZiAoc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsCisJCQkJCSAgICBH RU42X1BDT0RFX1dSSVRFX0RfQ09NUCwgdmFsKSkKKwkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0 byB3cml0ZSB0byBEX0NPTVBcbiIpOworCX0gZWxzZSB7CisJCUk5MTVfV1JJVEUoRF9DT01QX0JE VywgdmFsKTsKKwkJUE9TVElOR19SRUFEKERfQ09NUF9CRFcpOworCX0KK30KKworLyoKKyAqIFRo aXMgZnVuY3Rpb24gaW1wbGVtZW50cyBwaWVjZXMgb2YgdHdvIHNlcXVlbmNlcyBmcm9tIEJTcGVj OgorICogLSBTZXF1ZW5jZSBmb3IgZGlzcGxheSBzb2Z0d2FyZSB0byBkaXNhYmxlIExDUExMCisg KiAtIFNlcXVlbmNlIGZvciBkaXNwbGF5IHNvZnR3YXJlIHRvIGFsbG93IHBhY2thZ2UgQzgrCisg KiBUaGUgc3RlcHMgaW1wbGVtZW50ZWQgaGVyZSBhcmUganVzdCB0aGUgc3RlcHMgdGhhdCBhY3R1 YWxseSB0b3VjaCB0aGUgTENQTEwKKyAqIHJlZ2lzdGVyLiBDYWxsZXJzIHNob3VsZCB0YWtlIGNh cmUgb2YgZGlzYWJsaW5nIGFsbCB0aGUgZGlzcGxheSBlbmdpbmUKKyAqIGZ1bmN0aW9ucywgZG9p bmcgdGhlIG1vZGUgdW5zZXQsIGZpeGluZyBpbnRlcnJ1cHRzLCBldGMuCisgKi8KK3N0YXRpYyB2 b2lkIGhzd19kaXNhYmxlX2xjcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK KwkJCSAgICAgIGJvb2wgc3dpdGNoX3RvX2ZjbGssIGJvb2wgYWxsb3dfcG93ZXJfZG93bikKK3sK Kwl1MzIgdmFsOworCisJYXNzZXJ0X2Nhbl9kaXNhYmxlX2xjcGxsKGRldl9wcml2KTsKKworCXZh bCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOworCisJaWYgKHN3aXRjaF90b19mY2xrKSB7CisJCXZh bCB8PSBMQ1BMTF9DRF9TT1VSQ0VfRkNMSzsKKwkJSTkxNV9XUklURShMQ1BMTF9DVEwsIHZhbCk7 CisKKwkJaWYgKHdhaXRfZm9yX3VzKEk5MTVfUkVBRChMQ1BMTF9DVEwpICYKKwkJCQlMQ1BMTF9D RF9TT1VSQ0VfRkNMS19ET05FLCAxKSkKKwkJCURSTV9FUlJPUigiU3dpdGNoaW5nIHRvIEZDTEsg ZmFpbGVkXG4iKTsKKworCQl2YWwgPSBJOTE1X1JFQUQoTENQTExfQ1RMKTsKKwl9CisKKwl2YWwg fD0gTENQTExfUExMX0RJU0FCTEU7CisJSTkxNV9XUklURShMQ1BMTF9DVEwsIHZhbCk7CisJUE9T VElOR19SRUFEKExDUExMX0NUTCk7CisKKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRl dl9wcml2LT51bmNvcmUsIExDUExMX0NUTCwKKwkJCQkgICAgTENQTExfUExMX0xPQ0ssIDAsIDEp KQorCQlEUk1fRVJST1IoIkxDUExMIHN0aWxsIGxvY2tlZFxuIik7CisKKwl2YWwgPSBoc3dfcmVh ZF9kY29tcChkZXZfcHJpdik7CisJdmFsIHw9IERfQ09NUF9DT01QX0RJU0FCTEU7CisJaHN3X3dy aXRlX2Rjb21wKGRldl9wcml2LCB2YWwpOworCW5kZWxheSgxMDApOworCisJaWYgKHdhaXRfZm9y KChoc3dfcmVhZF9kY29tcChkZXZfcHJpdikgJgorCQkgICAgICBEX0NPTVBfUkNPTVBfSU5fUFJP R1JFU1MpID09IDAsIDEpKQorCQlEUk1fRVJST1IoIkRfQ09NUCBSQ09NUCBzdGlsbCBpbiBwcm9n cmVzc1xuIik7CisKKwlpZiAoYWxsb3dfcG93ZXJfZG93bikgeworCQl2YWwgPSBJOTE1X1JFQUQo TENQTExfQ1RMKTsKKwkJdmFsIHw9IExDUExMX1BPV0VSX0RPV05fQUxMT1c7CisJCUk5MTVfV1JJ VEUoTENQTExfQ1RMLCB2YWwpOworCQlQT1NUSU5HX1JFQUQoTENQTExfQ1RMKTsKKwl9Cit9CisK Ky8qCisgKiBGdWxseSByZXN0b3JlcyBMQ1BMTCwgZGlzYWxsb3dpbmcgcG93ZXIgZG93biBhbmQg c3dpdGNoaW5nIGJhY2sgdG8gTENQTEwKKyAqIHNvdXJjZS4KKyAqLworc3RhdGljIHZvaWQgaHN3 X3Jlc3RvcmVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXUz MiB2YWw7CisKKwl2YWwgPSBJOTE1X1JFQUQoTENQTExfQ1RMKTsKKworCWlmICgodmFsICYgKExD UExMX1BMTF9MT0NLIHwgTENQTExfUExMX0RJU0FCTEUgfCBMQ1BMTF9DRF9TT1VSQ0VfRkNMSyB8 CisJCSAgICBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9XKSkgPT0gTENQTExfUExMX0xPQ0spCisJCXJl dHVybjsKKworCS8qCisJICogTWFrZSBzdXJlIHdlJ3JlIG5vdCBvbiBQQzggc3RhdGUgYmVmb3Jl IGRpc2FibGluZyBQQzgsIG90aGVyd2lzZQorCSAqIHdlJ2xsIGhhbmcgdGhlIG1hY2hpbmUuIFRv IHByZXZlbnQgUEM4IHN0YXRlLCBqdXN0IGVuYWJsZSBmb3JjZV93YWtlLgorCSAqLworCWludGVs X3VuY29yZV9mb3JjZXdha2VfZ2V0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsK KworCWlmICh2YWwgJiBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9XKSB7CisJCXZhbCAmPSB+TENQTExf UE9XRVJfRE9XTl9BTExPVzsKKwkJSTkxNV9XUklURShMQ1BMTF9DVEwsIHZhbCk7CisJCVBPU1RJ TkdfUkVBRChMQ1BMTF9DVEwpOworCX0KKworCXZhbCA9IGhzd19yZWFkX2Rjb21wKGRldl9wcml2 KTsKKwl2YWwgfD0gRF9DT01QX0NPTVBfRk9SQ0U7CisJdmFsICY9IH5EX0NPTVBfQ09NUF9ESVNB QkxFOworCWhzd193cml0ZV9kY29tcChkZXZfcHJpdiwgdmFsKTsKKworCXZhbCA9IEk5MTVfUkVB RChMQ1BMTF9DVEwpOworCXZhbCAmPSB+TENQTExfUExMX0RJU0FCTEU7CisJSTkxNV9XUklURShM Q1BMTF9DVEwsIHZhbCk7CisKKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2 LT51bmNvcmUsIExDUExMX0NUTCwKKwkJCQkgICAgTENQTExfUExMX0xPQ0ssIExDUExMX1BMTF9M T0NLLCA1KSkKKwkJRFJNX0VSUk9SKCJMQ1BMTCBub3QgbG9ja2VkIHlldFxuIik7CisKKwlpZiAo dmFsICYgTENQTExfQ0RfU09VUkNFX0ZDTEspIHsKKwkJdmFsID0gSTkxNV9SRUFEKExDUExMX0NU TCk7CisJCXZhbCAmPSB+TENQTExfQ0RfU09VUkNFX0ZDTEs7CisJCUk5MTVfV1JJVEUoTENQTExf Q1RMLCB2YWwpOworCisJCWlmICh3YWl0X2Zvcl91cygoSTkxNV9SRUFEKExDUExMX0NUTCkgJgor CQkJCSBMQ1BMTF9DRF9TT1VSQ0VfRkNMS19ET05FKSA9PSAwLCAxKSkKKwkJCURSTV9FUlJPUigi U3dpdGNoaW5nIGJhY2sgdG8gTENQTEwgZmFpbGVkXG4iKTsKKwl9CisKKwlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CisKKwlpbnRl bF91cGRhdGVfY2RjbGsoZGV2X3ByaXYpOworCWludGVsX2R1bXBfY2RjbGtfc3RhdGUoJmRldl9w cml2LT5jZGNsay5odywgIkN1cnJlbnQgQ0RDTEsiKTsKK30KKworLyoKKyAqIFBhY2thZ2Ugc3Rh dGVzIEM4IGFuZCBkZWVwZXIgYXJlIHJlYWxseSBkZWVwIFBDIHN0YXRlcyB0aGF0IGNhbiBvbmx5 IGJlCisgKiByZWFjaGVkIHdoZW4gYWxsIHRoZSBkZXZpY2VzIG9uIHRoZSBzeXN0ZW0gYWxsb3cg aXQsIHNvIGV2ZW4gaWYgdGhlIGdyYXBoaWNzCisgKiBkZXZpY2UgYWxsb3dzIFBDOCssIGl0IGRv ZXNuJ3QgbWVhbiB0aGUgc3lzdGVtIHdpbGwgYWN0dWFsbHkgZ2V0IHRvIHRoZXNlCisgKiBzdGF0 ZXMuIE91ciBkcml2ZXIgb25seSBhbGxvd3MgUEM4KyB3aGVuIGdvaW5nIGludG8gcnVudGltZSBQ TS4KKyAqCisgKiBUaGUgcmVxdWlyZW1lbnRzIGZvciBQQzgrIGFyZSB0aGF0IGFsbCB0aGUgb3V0 cHV0cyBhcmUgZGlzYWJsZWQsIHRoZSBwb3dlcgorICogd2VsbCBpcyBkaXNhYmxlZCBhbmQgbW9z dCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgYW5kIHRoZXNlIGFyZSBhbHNvCisgKiByZXF1aXJl bWVudHMgZm9yIHJ1bnRpbWUgUE0uIFdoZW4gdGhlc2UgY29uZGl0aW9ucyBhcmUgbWV0LCB3ZSBt YW51YWxseSBkbworICogdGhlIG90aGVyIGNvbmRpdGlvbnM6IGRpc2FibGUgdGhlIGludGVycnVw dHMsIGNsb2NrcyBhbmQgc3dpdGNoIExDUExMIHJlZmNsaworICogdG8gRmNsay4gSWYgd2UncmUg aW4gUEM4KyBhbmQgd2UgZ2V0IGFuIG5vbi1ob3RwbHVnIGludGVycnVwdCwgd2UgY2FuIGhhcmQK KyAqIGhhbmcgdGhlIG1hY2hpbmUuCisgKgorICogV2hlbiB3ZSByZWFsbHkgcmVhY2ggUEM4IG9y IGRlZXBlciBzdGF0ZXMgKG5vdCBqdXN0IHdoZW4gd2UgYWxsb3cgaXQpIHdlIGxvc2UKKyAqIHRo ZSBzdGF0ZSBvZiBzb21lIHJlZ2lzdGVycywgc28gd2hlbiB3ZSBjb21lIGJhY2sgZnJvbSBQQzgr IHdlIG5lZWQgdG8KKyAqIHJlc3RvcmUgdGhpcyBzdGF0ZS4gV2UgZG9uJ3QgZ2V0IGludG8gUEM4 KyBpZiB3ZSdyZSBub3QgaW4gUkM2LCBzbyB3ZSBkb24ndAorICogbmVlZCB0byB0YWtlIGNhcmUg b2YgdGhlIHJlZ2lzdGVycyBrZXB0IGJ5IFJDNi4gTm90aWNlIHRoYXQgdGhpcyBoYXBwZW5zIGV2 ZW4KKyAqIGlmIHdlIGRvbid0IHB1dCB0aGUgZGV2aWNlIGluIFBDSSBEMyBzdGF0ZSAod2hpY2gg aXMgd2hhdCBjdXJyZW50bHkgaGFwcGVucworICogYmVjYXVzZSBvZiB0aGUgcnVudGltZSBQTSBz dXBwb3J0KS4KKyAqCisgKiBGb3IgbW9yZSwgcmVhZCAiRGlzcGxheSBTZXF1ZW5jZXMgZm9yIFBh Y2thZ2UgQzgiIG9uIHRoZSBoYXJkd2FyZQorICogZG9jdW1lbnRhdGlvbi4KKyAqLwordm9pZCBo c3dfZW5hYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJdTMy IHZhbDsKKworCURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIHBhY2thZ2UgQzgrXG4iKTsKKworCWlm IChIQVNfUENIX0xQVF9MUChkZXZfcHJpdikpIHsKKwkJdmFsID0gSTkxNV9SRUFEKFNPVVRIX0RT UENMS19HQVRFX0QpOworCQl2YWwgJj0gflBDSF9MUF9QQVJUSVRJT05fTEVWRUxfRElTQUJMRTsK KwkJSTkxNV9XUklURShTT1VUSF9EU1BDTEtfR0FURV9ELCB2YWwpOworCX0KKworCWxwdF9kaXNh YmxlX2Nsa291dF9kcChkZXZfcHJpdik7CisJaHN3X2Rpc2FibGVfbGNwbGwoZGV2X3ByaXYsIHRy dWUsIHRydWUpOworfQorCit2b2lkIGhzd19kaXNhYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCit7CisJdTMyIHZhbDsKKworCURSTV9ERUJVR19LTVMoIkRpc2FibGlu ZyBwYWNrYWdlIEM4K1xuIik7CisKKwloc3dfcmVzdG9yZV9sY3BsbChkZXZfcHJpdik7CisJaW50 ZWxfaW5pdF9wY2hfcmVmY2xrKGRldl9wcml2KTsKKworCWlmIChIQVNfUENIX0xQVF9MUChkZXZf cHJpdikpIHsKKwkJdmFsID0gSTkxNV9SRUFEKFNPVVRIX0RTUENMS19HQVRFX0QpOworCQl2YWwg fD0gUENIX0xQX1BBUlRJVElPTl9MRVZFTF9ESVNBQkxFOworCQlJOTE1X1dSSVRFKFNPVVRIX0RT UENMS19HQVRFX0QsIHZhbCk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9wY2hfcmVzZXRf aGFuZHNoYWtlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgICBi b29sIGVuYWJsZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uaAppbmRl eCA2OTIyNzc1NmRlM2UuLmUzMGIzODYzMmJkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3J1bnRpbWVfcG0uaApAQCAtMzcsNiArMzcsOCBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNf ZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9w b3dlcl9kb21haW5zX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CQkJCSBlbnVtIGk5MTVfZHJtX3N1c3BlbmRfbW9kZSk7CiB2b2lkIGludGVsX3Bvd2VyX2RvbWFp bnNfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGhzd19l bmFibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGhzd19k aXNhYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBieHRf ZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29s IHJlc3VtZSk7CiB2b2lkIGJ4dF9kaXNwbGF5X2NvcmVfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==