From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BD07C388F7 for ; Wed, 28 Oct 2020 21:34:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2022C24842 for ; Wed, 28 Oct 2020 21:34:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2022C24842 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8A05789E32; Wed, 28 Oct 2020 21:34:31 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6A7B089E32 for ; Wed, 28 Oct 2020 21:34:30 +0000 (UTC) IronPort-SDR: B4pBSl8pUbkTqCGpq9PuC67vgBxolv0to8XldMC/BdEF7BXwDJWMpuvXxrMoFY9x8owIUz1q5U 8+7auSTlw44w== X-IronPort-AV: E=McAfee;i="6000,8403,9788"; a="164843041" X-IronPort-AV: E=Sophos;i="5.77,428,1596524400"; d="scan'208";a="164843041" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Oct 2020 14:34:15 -0700 IronPort-SDR: h180kDCfETzLgh82UeZUaVoJLQPVBMTusG1BC8lAGEW4oHwg3P2PNAGmTCupNlI54LsPaHekYT hMmhtG/EEAvQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,428,1596524400"; d="scan'208";a="356055646" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga002.fm.intel.com with SMTP; 28 Oct 2020 14:34:13 -0700 Received: by stinkbox (sSMTP sendmail emulation); Wed, 28 Oct 2020 23:34:13 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Wed, 28 Oct 2020 23:33:21 +0200 Message-Id: <20201028213323.5423-18-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201028213323.5423-1-ville.syrjala@linux.intel.com> References: <20201028213323.5423-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v3 17/19] drm/i915: Enable hpd logic only for ports that are present X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkxl dCdzIGVuYWJsZSB0aGUgaGFyZHdhcmUgaHBkIGxvZ2ljIG9ubHkgZm9yIHRoZSBwb3J0cyB3ZQpj YW4gYWN0dWFsbHkgdXNlLgoKSW4gdGhlb3J5IHRoaXMgbWF5IHNhdmUgc29tZSBtaW5pc2N1bGUg YW1vdW50cyBvZiBwb3dlciwKYW5kIG1vcmUgaW1wb3J0YW50bHkgaXQgZWxpbWluYXRlcyBhIGxv dCBpZiBwbGF0Zm9ybSBzcGVjaWZpYwpjb2RlcGF0aHMgc2luY2UgdGhlIGdlbmVyaWMgdGhpbmcg Y2FuIG5vdyBkZWFsIHdpdGggYW55CmNvbWJpbmF0aW9uIG9mIHBvcnRzIGJlaW5nIHByZXNlbnQg b24gZWFjaCBTS1UuCgp2MjogRGVhbCB3aXRoIERHMQoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jIHwgMzAyICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIHwgIDE3IC0tCiAyIGZpbGVzIGNoYW5n ZWQsIDIwNSBpbnNlcnRpb25zKCspLCAxMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMKaW5kZXggZmE4YTA3YzJmODJkLi4yMzM3NDE2ZTU4MWMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYwpAQCAtNjEsNiArNjEsOCBAQAogICovCiAKIHR5cGVkZWYgYm9vbCAoKmxvbmdfcHVs c2VfZGV0ZWN0X2Z1bmMpKGVudW0gaHBkX3BpbiBwaW4sIHUzMiB2YWwpOwordHlwZWRlZiB1MzIg KCpob3RwbHVnX2VuYWJsZXNfZnVuYykoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CQkJICAgIGVudW0gaHBkX3BpbiBwaW4pOwogCiBzdGF0aWMgY29uc3QgdTMyIGhwZF9pbGtbSFBE X05VTV9QSU5TXSA9IHsKIAlbSFBEX1BPUlRfQV0gPSBERV9EUF9BX0hPVFBMVUcsCkBAIC0xMjMw LDYgKzEyMzIsMTggQEAgc3RhdGljIHUzMiBpbnRlbF9ocGRfaG90cGx1Z19pcnFzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gaG90cGx1Z19pcnFzOwogfQogCitz dGF0aWMgdTMyIGludGVsX2hwZF9ob3RwbHVnX2VuYWJsZXMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCisJCQkJICAgICBob3RwbHVnX2VuYWJsZXNfZnVuYyBob3RwbHVnX2VuYWJsZXMp Cit7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CisJdTMyIGhvdHBsdWcgPSAwOwor CisJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmaTkxNS0+ZHJtLCBlbmNvZGVyKQorCQlob3RwbHVn IHw9IGhvdHBsdWdfZW5hYmxlcyhpOTE1LCBlbmNvZGVyLT5ocGRfcGluKTsKKworCXJldHVybiBo b3RwbHVnOworfQorCiBzdGF0aWMgdm9pZCBnbWJ1c19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJd2FrZV91cF9hbGwoJmRldl9wcml2LT5nbWJ1c193 YWl0X3F1ZXVlKTsKQEAgLTMxNTIsNiArMzE2NiwzMSBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3 X2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3Bpbl91bmxv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogfQogCitzdGF0aWMgdTMyIGlieF9ob3RwbHVn X2VuYWJsZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICAgICAgZW51bSBo cGRfcGluIHBpbikKK3sKKwlzd2l0Y2ggKHBpbikgeworCWNhc2UgSFBEX1BPUlRfQToKKwkJLyoK KwkJICogV2hlbiBDUFUgYW5kIFBDSCBhcmUgb24gdGhlIHNhbWUgcGFja2FnZSwgcG9ydCBBCisJ CSAqIEhQRCBtdXN0IGJlIGVuYWJsZWQgaW4gYm90aCBub3J0aCBhbmQgc291dGguCisJCSAqLwor CQlyZXR1cm4gSEFTX1BDSF9MUFRfTFAoaTkxNSkgPworCQkJUE9SVEFfSE9UUExVR19FTkFCTEUg OiAwOworCWNhc2UgSFBEX1BPUlRfQjoKKwkJcmV0dXJuIFBPUlRCX0hPVFBMVUdfRU5BQkxFIHwK KwkJCVBPUlRCX1BVTFNFX0RVUkFUSU9OXzJtczsKKwljYXNlIEhQRF9QT1JUX0M6CisJCXJldHVy biBQT1JUQ19IT1RQTFVHX0VOQUJMRSB8CisJCQlQT1JUQ19QVUxTRV9EVVJBVElPTl8ybXM7CisJ Y2FzZSBIUERfUE9SVF9EOgorCQlyZXR1cm4gUE9SVERfSE9UUExVR19FTkFCTEUgfAorCQkJUE9S VERfUFVMU0VfRFVSQVRJT05fMm1zOworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KK30KKwog c3RhdGljIHZvaWQgaWJ4X2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewogCXUzMiBob3RwbHVnOwpAQCAtMzE2MiwxOCArMzIwMSwxNCBAQCBz dGF0aWMgdm9pZCBpYnhfaHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJICogVGhlIHB1bHNlIGR1cmF0aW9uIGJpdHMgYXJlIHJlc2VydmVkIG9u IExQVCsuCiAJICovCiAJaG90cGx1ZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHKTsKLQlo b3RwbHVnICY9IH4oUE9SVEJfUFVMU0VfRFVSQVRJT05fTUFTSyB8CisJaG90cGx1ZyAmPSB+KFBP UlRBX0hPVFBMVUdfRU5BQkxFIHwKKwkJICAgICBQT1JUQl9IT1RQTFVHX0VOQUJMRSB8CisJCSAg ICAgUE9SVENfSE9UUExVR19FTkFCTEUgfAorCQkgICAgIFBPUlREX0hPVFBMVUdfRU5BQkxFIHwK KwkJICAgICBQT1JUQl9QVUxTRV9EVVJBVElPTl9NQVNLIHwKIAkJICAgICBQT1JUQ19QVUxTRV9E VVJBVElPTl9NQVNLIHwKIAkJICAgICBQT1JURF9QVUxTRV9EVVJBVElPTl9NQVNLKTsKLQlob3Rw bHVnIHw9IFBPUlRCX0hPVFBMVUdfRU5BQkxFIHwgUE9SVEJfUFVMU0VfRFVSQVRJT05fMm1zOwot CWhvdHBsdWcgfD0gUE9SVENfSE9UUExVR19FTkFCTEUgfCBQT1JUQ19QVUxTRV9EVVJBVElPTl8y bXM7Ci0JaG90cGx1ZyB8PSBQT1JURF9IT1RQTFVHX0VOQUJMRSB8IFBPUlREX1BVTFNFX0RVUkFU SU9OXzJtczsKLQkvKgotCSAqIFdoZW4gQ1BVIGFuZCBQQ0ggYXJlIG9uIHRoZSBzYW1lIHBhY2th Z2UsIHBvcnQgQQotCSAqIEhQRCBtdXN0IGJlIGVuYWJsZWQgaW4gYm90aCBub3J0aCBhbmQgc291 dGguCi0JICovCi0JaWYgKEhBU19QQ0hfTFBUX0xQKGRldl9wcml2KSkKLQkJaG90cGx1ZyB8PSBQ T1JUQV9IT1RQTFVHX0VOQUJMRTsKKwlob3RwbHVnIHw9IGludGVsX2hwZF9ob3RwbHVnX2VuYWJs ZXMoZGV2X3ByaXYsIGlieF9ob3RwbHVnX2VuYWJsZXMpOwogCUk5MTVfV1JJVEUoUENIX1BPUlRf SE9UUExVRywgaG90cGx1Zyk7CiB9CiAKQEAgLTMxODksMjggKzMyMjQsNjMgQEAgc3RhdGljIHZv aWQgaWJ4X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWlieF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2KTsKIH0KIAotc3RhdGljIHZvaWQgaWNw X2RkaV9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKLQkJCQkJdTMyIGVuYWJsZV9tYXNrKQorc3RhdGljIHUzMiBpY3BfZGRpX2hvdHBsdWdfZW5h YmxlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkgICBlbnVtIGhwZF9waW4g cGluKQoreworCXN3aXRjaCAocGluKSB7CisJY2FzZSBIUERfUE9SVF9BOgorCWNhc2UgSFBEX1BP UlRfQjoKKwljYXNlIEhQRF9QT1JUX0M6CisJCXJldHVybiBTSE9UUExVR19DVExfRERJX0hQRF9F TkFCTEUocGluKTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9CisKK3N0YXRpYyB1MzIg aWNwX3RjX2hvdHBsdWdfZW5hYmxlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJ CQkgIGVudW0gaHBkX3BpbiBwaW4pCit7CisJc3dpdGNoIChwaW4pIHsKKwljYXNlIEhQRF9QT1JU X1RDMToKKwljYXNlIEhQRF9QT1JUX1RDMjoKKwljYXNlIEhQRF9QT1JUX1RDMzoKKwljYXNlIEhQ RF9QT1JUX1RDNDoKKwljYXNlIEhQRF9QT1JUX1RDNToKKwljYXNlIEhQRF9QT1JUX1RDNjoKKwkJ cmV0dXJuIElDUF9UQ19IUERfRU5BQkxFKHBpbik7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJ fQorfQorCitzdGF0aWMgdm9pZCBpY3BfZGRpX2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXUzMiBob3RwbHVnOwogCiAJaG90cGx1ZyA9 IEk5MTVfUkVBRChTSE9UUExVR19DVExfRERJKTsKLQlob3RwbHVnIHw9IGVuYWJsZV9tYXNrOwor CWhvdHBsdWcgJj0gfihTSE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BPUlRfQSkgfAor CQkgICAgIFNIT1RQTFVHX0NUTF9ERElfSFBEX0VOQUJMRShIUERfUE9SVF9CKSB8CisJCSAgICAg U0hPVFBMVUdfQ1RMX0RESV9IUERfRU5BQkxFKEhQRF9QT1JUX0MpKTsKKwlob3RwbHVnIHw9IGlu dGVsX2hwZF9ob3RwbHVnX2VuYWJsZXMoZGV2X3ByaXYsIGljcF9kZGlfaG90cGx1Z19lbmFibGVz KTsKIAlJOTE1X1dSSVRFKFNIT1RQTFVHX0NUTF9EREksIGhvdHBsdWcpOwogfQogCi1zdGF0aWMg dm9pZCBpY3BfdGNfaHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCi0JCQkJICAgICAgIHUzMiBlbmFibGVfbWFzaykKK3N0YXRpYyB2b2lkIGljcF90 Y19ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHsKIAl1MzIgaG90cGx1ZzsKIAogCWhvdHBsdWcgPSBJOTE1X1JFQUQoU0hPVFBMVUdfQ1RMX1RD KTsKLQlob3RwbHVnIHw9IGVuYWJsZV9tYXNrOworCWhvdHBsdWcgJj0gfihJQ1BfVENfSFBEX0VO QUJMRShIUERfUE9SVF9UQzEpIHwKKwkJICAgICBJQ1BfVENfSFBEX0VOQUJMRShIUERfUE9SVF9U QzIpIHwKKwkJICAgICBJQ1BfVENfSFBEX0VOQUJMRShIUERfUE9SVF9UQzMpIHwKKwkJICAgICBJ Q1BfVENfSFBEX0VOQUJMRShIUERfUE9SVF9UQzQpIHwKKwkJICAgICBJQ1BfVENfSFBEX0VOQUJM RShIUERfUE9SVF9UQzUpIHwKKwkJICAgICBJQ1BfVENfSFBEX0VOQUJMRShIUERfUE9SVF9UQzYp KTsKKwlob3RwbHVnIHw9IGludGVsX2hwZF9ob3RwbHVnX2VuYWJsZXMoZGV2X3ByaXYsIGljcF90 Y19ob3RwbHVnX2VuYWJsZXMpOwogCUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX1RDLCBob3RwbHVn KTsKIH0KIAotc3RhdGljIHZvaWQgaWNwX2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAotCQkJICAgICAgdTMyIGRkaV9lbmFibGVfbWFzaywgdTMyIHRjX2Vu YWJsZV9tYXNrKQorc3RhdGljIHZvaWQgaWNwX2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewogCXUzMiBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxczsK IApAQCAtMzIyMiwzMCArMzI5MiwyNCBAQCBzdGF0aWMgdm9pZCBpY3BfaHBkX2lycV9zZXR1cChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlpYnhfZGlzcGxheV9pbnRlcnJ1 cHRfdXBkYXRlKGRldl9wcml2LCBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxcyk7CiAKLQlpY3Bf ZGRpX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYsIGRkaV9lbmFibGVfbWFzayk7Ci0JaWYg KHRjX2VuYWJsZV9tYXNrKQotCQlpY3BfdGNfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdiwg dGNfZW5hYmxlX21hc2spOworCWljcF9kZGlfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdik7 CisJaWNwX3RjX2hwZF9kZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYpOwogfQogCi0vKgotICogRUhM IGRvZXNuJ3QgbmVlZCBtb3N0IG9mIGdlbjExX2hwZF9pcnFfc2V0dXAsIGl0J3MgaGFuZGxpbmcg b25seSB0aGUKLSAqIGVxdWl2YWxlbnQgb2YgU0RFLgotICovCi1zdGF0aWMgdm9pZCBtY2NfaHBk X2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdTMy IGdlbjExX2hvdHBsdWdfZW5hYmxlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJ CQkgZW51bSBocGRfcGluIHBpbikKIHsKLQlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJpdiwKLQkJ CSAgSUNQX0RESV9IUERfRU5BQkxFX01BU0ssIElDUF9UQ19IUERfRU5BQkxFKEhQRF9QT1JUX1RD MSkpOwotfQotCi0vKgotICogSlNQIGJlaGF2ZXMgZXhhY3RseSB0aGUgc2FtZSBhcyBNQ0MgYWJv dmUgZXhjZXB0IHRoYXQgcG9ydCBDIGlzIG1hcHBlZCB0bwotICogdGhlIERESS1DIHBpbnMgaW5z dGVhZCBvZiB0aGUgVEMxIHBpbnMuICBUaGlzIG1lYW5zIHdlIHNob3VsZCBmb2xsb3cgVEdQJ3MK LSAqIG1hc2tzICYgdGFibGVzIHJhdGhlciB0aGFuIElDUCdzIG1hc2tzICYgdGFibGVzLgotICov Ci1zdGF0aWMgdm9pZCBqc3BfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCi17Ci0JaWNwX2hwZF9pcnFfc2V0dXAoZGV2X3ByaXYsCi0JCQkgIFRHUF9ERElf SFBEX0VOQUJMRV9NQVNLLCAwKTsKKwlzd2l0Y2ggKHBpbikgeworCWNhc2UgSFBEX1BPUlRfVEMx OgorCWNhc2UgSFBEX1BPUlRfVEMyOgorCWNhc2UgSFBEX1BPUlRfVEMzOgorCWNhc2UgSFBEX1BP UlRfVEM0OgorCWNhc2UgSFBEX1BPUlRfVEM1OgorCWNhc2UgSFBEX1BPUlRfVEM2OgorCQlyZXR1 cm4gR0VOMTFfSE9UUExVR19DVExfRU5BQkxFKHBpbik7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7 CisJfQogfQogCiBzdGF0aWMgdm9pZCBkZzFfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0zMjU5LDggKzMzMjMsNyBAQCBzdGF0aWMgdm9pZCBkZzFf aHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCUlOVkVS VF9ERElEX0hQRCk7CiAJSTkxNV9XUklURShTT1VUSF9DSElDS0VOMSwgdmFsKTsKIAotCWljcF9o cGRfaXJxX3NldHVwKGRldl9wcml2LAotCQkJICBERzFfRERJX0hQRF9FTkFCTEVfTUFTSywgMCk7 CisJaWNwX2hwZF9pcnFfc2V0dXAoZGV2X3ByaXYpOwogfQogCiBzdGF0aWMgdm9pZCBnZW4xMV90 Y19ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK QEAgLTMyNjgsMTIgKzMzMzEsMTMgQEAgc3RhdGljIHZvaWQgZ2VuMTFfdGNfaHBkX2RldGVjdGlv bl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJdTMyIGhvdHBsdWc7 CiAKIAlob3RwbHVnID0gSTkxNV9SRUFEKEdFTjExX1RDX0hPVFBMVUdfQ1RMKTsKLQlob3RwbHVn IHw9IEdFTjExX0hPVFBMVUdfQ1RMX0VOQUJMRShIUERfUE9SVF9UQzEpIHwKLQkJICAgR0VOMTFf SE9UUExVR19DVExfRU5BQkxFKEhQRF9QT1JUX1RDMikgfAotCQkgICBHRU4xMV9IT1RQTFVHX0NU TF9FTkFCTEUoSFBEX1BPUlRfVEMzKSB8Ci0JCSAgIEdFTjExX0hPVFBMVUdfQ1RMX0VOQUJMRShI UERfUE9SVF9UQzQpIHwKLQkJICAgR0VOMTFfSE9UUExVR19DVExfRU5BQkxFKEhQRF9QT1JUX1RD NSkgfAotCQkgICBHRU4xMV9IT1RQTFVHX0NUTF9FTkFCTEUoSFBEX1BPUlRfVEM2KTsKKwlob3Rw bHVnICY9IH4oR0VOMTFfSE9UUExVR19DVExfRU5BQkxFKEhQRF9QT1JUX1RDMSkgfAorCQkgICAg IEdFTjExX0hPVFBMVUdfQ1RMX0VOQUJMRShIUERfUE9SVF9UQzIpIHwKKwkJICAgICBHRU4xMV9I T1RQTFVHX0NUTF9FTkFCTEUoSFBEX1BPUlRfVEMzKSB8CisJCSAgICAgR0VOMTFfSE9UUExVR19D VExfRU5BQkxFKEhQRF9QT1JUX1RDNCkgfAorCQkgICAgIEdFTjExX0hPVFBMVUdfQ1RMX0VOQUJM RShIUERfUE9SVF9UQzUpIHwKKwkJICAgICBHRU4xMV9IT1RQTFVHX0NUTF9FTkFCTEUoSFBEX1BP UlRfVEM2KSk7CisJaG90cGx1ZyB8PSBpbnRlbF9ocGRfaG90cGx1Z19lbmFibGVzKGRldl9wcml2 LCBnZW4xMV9ob3RwbHVnX2VuYWJsZXMpOwogCUk5MTVfV1JJVEUoR0VOMTFfVENfSE9UUExVR19D VEwsIGhvdHBsdWcpOwogfQogCkBAIC0zMjgyLDEyICszMzQ2LDEzIEBAIHN0YXRpYyB2b2lkIGdl bjExX3RidF9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAl1MzIgaG90cGx1ZzsKIAogCWhvdHBsdWcgPSBJOTE1X1JFQUQoR0VOMTFfVEJUX0hP VFBMVUdfQ1RMKTsKLQlob3RwbHVnIHw9IEdFTjExX0hPVFBMVUdfQ1RMX0VOQUJMRShIUERfUE9S VF9UQzEpIHwKLQkJICAgR0VOMTFfSE9UUExVR19DVExfRU5BQkxFKEhQRF9QT1JUX1RDMikgfAot CQkgICBHRU4xMV9IT1RQTFVHX0NUTF9FTkFCTEUoSFBEX1BPUlRfVEMzKSB8Ci0JCSAgIEdFTjEx X0hPVFBMVUdfQ1RMX0VOQUJMRShIUERfUE9SVF9UQzQpIHwKLQkJICAgR0VOMTFfSE9UUExVR19D VExfRU5BQkxFKEhQRF9QT1JUX1RDNSkgfAotCQkgICBHRU4xMV9IT1RQTFVHX0NUTF9FTkFCTEUo SFBEX1BPUlRfVEM2KTsKKwlob3RwbHVnICY9IH4oR0VOMTFfSE9UUExVR19DVExfRU5BQkxFKEhQ RF9QT1JUX1RDMSkgfAorCQkgICAgIEdFTjExX0hPVFBMVUdfQ1RMX0VOQUJMRShIUERfUE9SVF9U QzIpIHwKKwkJICAgICBHRU4xMV9IT1RQTFVHX0NUTF9FTkFCTEUoSFBEX1BPUlRfVEMzKSB8CisJ CSAgICAgR0VOMTFfSE9UUExVR19DVExfRU5BQkxFKEhQRF9QT1JUX1RDNCkgfAorCQkgICAgIEdF TjExX0hPVFBMVUdfQ1RMX0VOQUJMRShIUERfUE9SVF9UQzUpIHwKKwkJICAgICBHRU4xMV9IT1RQ TFVHX0NUTF9FTkFCTEUoSFBEX1BPUlRfVEM2KSk7CisJaG90cGx1ZyB8PSBpbnRlbF9ocGRfaG90 cGx1Z19lbmFibGVzKGRldl9wcml2LCBnZW4xMV9ob3RwbHVnX2VuYWJsZXMpOwogCUk5MTVfV1JJ VEUoR0VOMTFfVEJUX0hPVFBMVUdfQ1RMLCBob3RwbHVnKTsKIH0KIApAQCAtMzMwOCwxMiArMzM3 MywzNiBAQCBzdGF0aWMgdm9pZCBnZW4xMV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlnZW4xMV90Y19ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2 KTsKIAlnZW4xMV90YnRfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdik7CiAKLQlpZiAoSU5U RUxfUENIX1RZUEUoZGV2X3ByaXYpID49IFBDSF9UR1ApCi0JCWljcF9ocGRfaXJxX3NldHVwKGRl dl9wcml2LAotCQkJCSAgVEdQX0RESV9IUERfRU5BQkxFX01BU0ssIFRHUF9UQ19IUERfRU5BQkxF X01BU0spOwotCWVsc2UgaWYgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfSUNQKQot CQlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJpdiwKLQkJCQkgIElDUF9ERElfSFBEX0VOQUJMRV9N QVNLLCBJQ1BfVENfSFBEX0VOQUJMRV9NQVNLKTsKKwlpZiAoSU5URUxfUENIX1RZUEUoZGV2X3By aXYpID49IFBDSF9JQ1ApCisJCWljcF9ocGRfaXJxX3NldHVwKGRldl9wcml2KTsKK30KKworc3Rh dGljIHUzMiBzcHRfaG90cGx1Z19lbmFibGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAorCQkJICAgICAgIGVudW0gaHBkX3BpbiBwaW4pCit7CisJc3dpdGNoIChwaW4pIHsKKwljYXNl IEhQRF9QT1JUX0E6CisJCXJldHVybiBQT1JUQV9IT1RQTFVHX0VOQUJMRTsKKwljYXNlIEhQRF9Q T1JUX0I6CisJCXJldHVybiBQT1JUQl9IT1RQTFVHX0VOQUJMRTsKKwljYXNlIEhQRF9QT1JUX0M6 CisJCXJldHVybiBQT1JUQ19IT1RQTFVHX0VOQUJMRTsKKwljYXNlIEhQRF9QT1JUX0Q6CisJCXJl dHVybiBQT1JURF9IT1RQTFVHX0VOQUJMRTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9 CisKK3N0YXRpYyB1MzIgc3B0X2hvdHBsdWcyX2VuYWJsZXMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCisJCQkJZW51bSBocGRfcGluIHBpbikKK3sKKwlzd2l0Y2ggKHBpbikgeworCWNh c2UgSFBEX1BPUlRfRToKKwkJcmV0dXJuIFBPUlRFX0hPVFBMVUdfRU5BQkxFOworCWRlZmF1bHQ6 CisJCXJldHVybiAwOworCX0KIH0KIAogc3RhdGljIHZvaWQgc3B0X2hwZF9kZXRlY3Rpb25fc2V0 dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMzMzMCwxNCArMzQxOSwx NiBAQCBzdGF0aWMgdm9pZCBzcHRfaHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAkvKiBFbmFibGUgZGlnaXRhbCBob3RwbHVnIG9uIHRoZSBQ Q0ggKi8KIAlob3RwbHVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcpOwotCWhvdHBsdWcg fD0gUE9SVEFfSE9UUExVR19FTkFCTEUgfAotCQkgICBQT1JUQl9IT1RQTFVHX0VOQUJMRSB8Ci0J CSAgIFBPUlRDX0hPVFBMVUdfRU5BQkxFIHwKLQkJICAgUE9SVERfSE9UUExVR19FTkFCTEU7CisJ aG90cGx1ZyAmPSB+KFBPUlRBX0hPVFBMVUdfRU5BQkxFIHwKKwkJICAgICBQT1JUQl9IT1RQTFVH X0VOQUJMRSB8CisJCSAgICAgUE9SVENfSE9UUExVR19FTkFCTEUgfAorCQkgICAgIFBPUlREX0hP VFBMVUdfRU5BQkxFKTsKKwlob3RwbHVnIHw9IGludGVsX2hwZF9ob3RwbHVnX2VuYWJsZXMoZGV2 X3ByaXYsIHNwdF9ob3RwbHVnX2VuYWJsZXMpOwogCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExV RywgaG90cGx1Zyk7CiAKIAlob3RwbHVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcyKTsK LQlob3RwbHVnIHw9IFBPUlRFX0hPVFBMVUdfRU5BQkxFOworCWhvdHBsdWcgJj0gflBPUlRFX0hP VFBMVUdfRU5BQkxFOworCWhvdHBsdWcgfD0gaW50ZWxfaHBkX2hvdHBsdWdfZW5hYmxlcyhkZXZf cHJpdiwgc3B0X2hvdHBsdWcyX2VuYWJsZXMpOwogCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExV RzIsIGhvdHBsdWcpOwogfQogCkBAIC0zMzU2LDYgKzM0NDcsMTggQEAgc3RhdGljIHZvaWQgc3B0 X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXNwdF9o cGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2KTsKIH0KIAorc3RhdGljIHUzMiBpbGtfaG90cGx1 Z19lbmFibGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJICAgICAgIGVudW0g aHBkX3BpbiBwaW4pCit7CisJc3dpdGNoIChwaW4pIHsKKwljYXNlIEhQRF9QT1JUX0E6CisJCXJl dHVybiBESUdJVEFMX1BPUlRBX0hPVFBMVUdfRU5BQkxFIHwKKwkJCURJR0lUQUxfUE9SVEFfUFVM U0VfRFVSQVRJT05fMm1zOworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KK30KKwogc3RhdGlj IHZvaWQgaWxrX2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogewogCXUzMiBob3RwbHVnOwpAQCAtMzM2Niw5ICszNDY5LDkgQEAgc3RhdGljIHZv aWQgaWxrX2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCSAqIFRoZSBwdWxzZSBkdXJhdGlvbiBiaXRzIGFyZSByZXNlcnZlZCBvbiBIU1crLgog CSAqLwogCWhvdHBsdWcgPSBJOTE1X1JFQUQoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwpOwot CWhvdHBsdWcgJj0gfkRJR0lUQUxfUE9SVEFfUFVMU0VfRFVSQVRJT05fTUFTSzsKLQlob3RwbHVn IHw9IERJR0lUQUxfUE9SVEFfSE9UUExVR19FTkFCTEUgfAotCQkgICBESUdJVEFMX1BPUlRBX1BV TFNFX0RVUkFUSU9OXzJtczsKKwlob3RwbHVnICY9IH4oRElHSVRBTF9QT1JUQV9IT1RQTFVHX0VO QUJMRSB8CisJCSAgICAgRElHSVRBTF9QT1JUQV9QVUxTRV9EVVJBVElPTl9NQVNLKTsKKwlob3Rw bHVnIHw9IGludGVsX2hwZF9ob3RwbHVnX2VuYWJsZXMoZGV2X3ByaXYsIGlsa19ob3RwbHVnX2Vu YWJsZXMpOwogCUk5MTVfV1JJVEUoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwsIGhvdHBsdWcp OwogfQogCkBAIC0zMzg5LDM1ICszNDkyLDQ0IEBAIHN0YXRpYyB2b2lkIGlsa19ocGRfaXJxX3Nl dHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpYnhfaHBkX2lycV9zZXR1 cChkZXZfcHJpdik7CiB9CiAKLXN0YXRpYyB2b2lkIGJ4dF9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgdTMyIGVuYWJsZWRfaXJx cykKK3N0YXRpYyB1MzIgYnh0X2hvdHBsdWdfZW5hYmxlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwKKwkJCSAgICAgICBlbnVtIGhwZF9waW4gcGluKQoreworCXUzMiBob3RwbHVnOwor CisJc3dpdGNoIChwaW4pIHsKKwljYXNlIEhQRF9QT1JUX0E6CisJCWhvdHBsdWcgPSBQT1JUQV9I T1RQTFVHX0VOQUJMRTsKKwkJaWYgKGludGVsX2Jpb3NfaXNfcG9ydF9ocGRfaW52ZXJ0ZWQoaTkx NSwgUE9SVF9BKSkKKwkJCWhvdHBsdWcgfD0gQlhUX0RESUFfSFBEX0lOVkVSVDsKKwkJcmV0dXJu IGhvdHBsdWc7CisJY2FzZSBIUERfUE9SVF9COgorCQlob3RwbHVnID0gUE9SVEJfSE9UUExVR19F TkFCTEU7CisJCWlmIChpbnRlbF9iaW9zX2lzX3BvcnRfaHBkX2ludmVydGVkKGk5MTUsIFBPUlRf QikpCisJCQlob3RwbHVnIHw9IEJYVF9ERElCX0hQRF9JTlZFUlQ7CisJCXJldHVybiBob3RwbHVn OworCWNhc2UgSFBEX1BPUlRfQzoKKwkJaG90cGx1ZyA9IFBPUlRDX0hPVFBMVUdfRU5BQkxFOwor CQlpZiAoaW50ZWxfYmlvc19pc19wb3J0X2hwZF9pbnZlcnRlZChpOTE1LCBQT1JUX0MpKQorCQkJ aG90cGx1ZyB8PSBCWFRfRERJQ19IUERfSU5WRVJUOworCQlyZXR1cm4gaG90cGx1ZzsKKwlkZWZh dWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJ4dF9ocGRfZGV0ZWN0aW9u X3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAl1MzIgaG90cGx1 ZzsKIAogCWhvdHBsdWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7Ci0JaG90cGx1ZyB8 PSBQT1JUQV9IT1RQTFVHX0VOQUJMRSB8Ci0JCSAgIFBPUlRCX0hPVFBMVUdfRU5BQkxFIHwKLQkJ ICAgUE9SVENfSE9UUExVR19FTkFCTEU7Ci0KLQlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwK LQkJICAgICJJbnZlcnQgYml0IHNldHRpbmc6IGhwX2N0bDoleCBocF9wb3J0OiV4XG4iLAotCQkg ICAgaG90cGx1ZywgZW5hYmxlZF9pcnFzKTsKLQlob3RwbHVnICY9IH5CWFRfRERJX0hQRF9JTlZF UlRfTUFTSzsKLQotCS8qCi0JICogRm9yIEJYVCBpbnZlcnQgYml0IGhhcyB0byBiZSBzZXQgYmFz ZWQgb24gQU9CIGRlc2lnbgotCSAqIGZvciBIUEQgZGV0ZWN0aW9uIGxvZ2ljLCB1cGRhdGUgaXQg YmFzZWQgb24gVkJUIGZpZWxkcy4KLQkgKi8KLQlpZiAoKGVuYWJsZWRfaXJxcyAmIEdFTjhfREVf UE9SVF9IT1RQTFVHKEhQRF9QT1JUX0EpKSAmJgotCSAgICBpbnRlbF9iaW9zX2lzX3BvcnRfaHBk X2ludmVydGVkKGRldl9wcml2LCBQT1JUX0EpKQotCQlob3RwbHVnIHw9IEJYVF9ERElBX0hQRF9J TlZFUlQ7Ci0JaWYgKChlbmFibGVkX2lycXMgJiBHRU44X0RFX1BPUlRfSE9UUExVRyhIUERfUE9S VF9CKSkgJiYKLQkgICAgaW50ZWxfYmlvc19pc19wb3J0X2hwZF9pbnZlcnRlZChkZXZfcHJpdiwg UE9SVF9CKSkKLQkJaG90cGx1ZyB8PSBCWFRfRERJQl9IUERfSU5WRVJUOwotCWlmICgoZW5hYmxl ZF9pcnFzICYgR0VOOF9ERV9QT1JUX0hPVFBMVUcoSFBEX1BPUlRfQykpICYmCi0JICAgIGludGVs X2Jpb3NfaXNfcG9ydF9ocGRfaW52ZXJ0ZWQoZGV2X3ByaXYsIFBPUlRfQykpCi0JCWhvdHBsdWcg fD0gQlhUX0RESUNfSFBEX0lOVkVSVDsKLQorCWhvdHBsdWcgJj0gfihQT1JUQV9IT1RQTFVHX0VO QUJMRSB8CisJCSAgICAgUE9SVEJfSE9UUExVR19FTkFCTEUgfAorCQkgICAgIFBPUlRDX0hPVFBM VUdfRU5BQkxFIHwKKwkJICAgICBCWFRfRERJQV9IUERfSU5WRVJUIHwKKwkJICAgICBCWFRfRERJ Ql9IUERfSU5WRVJUIHwKKwkJICAgICBCWFRfRERJQ19IUERfSU5WRVJUKTsKKwlob3RwbHVnIHw9 IGludGVsX2hwZF9ob3RwbHVnX2VuYWJsZXMoZGV2X3ByaXYsIGJ4dF9ob3RwbHVnX2VuYWJsZXMp OwogCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExVRywgaG90cGx1Zyk7CiB9CiAKQEAgLTM0MzAs NyArMzU0Miw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAogCWJkd191cGRhdGVfcG9ydF9pcnEoZGV2X3ByaXYsIGhv dHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKIAotCWJ4dF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRl dl9wcml2LCBlbmFibGVkX2lycXMpOworCWJ4dF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2 KTsKIH0KIAogc3RhdGljIHZvaWQgaWJ4X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC00MTQ1LDEwICs0MjU3LDYgQEAgdm9pZCBpbnRlbF9pcnFf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJfSBlbHNlIHsKIAkJaWYg KEhBU19QQ0hfREcxKGRldl9wcml2KSkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0 dXAgPSBkZzFfaHBkX2lycV9zZXR1cDsKLQkJZWxzZSBpZiAoSEFTX1BDSF9KU1AoZGV2X3ByaXYp KQotCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGpzcF9ocGRfaXJxX3NldHVw OwotCQllbHNlIGlmIChIQVNfUENIX01DQyhkZXZfcHJpdikpCi0JCQlkZXZfcHJpdi0+ZGlzcGxh eS5ocGRfaXJxX3NldHVwID0gbWNjX2hwZF9pcnFfc2V0dXA7CiAJCWVsc2UgaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gMTEpCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0g Z2VuMTFfaHBkX2lycV9zZXR1cDsKIAkJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCBlYWNlYzNjNDZhNGQuLmE1YzU1ZTBhZjJkYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC04NDQzLDIzICs4NDQzLDYgQEAgZW51bSB7CiAjZGVm aW5lIFNIUERfRklMVEVSX0NOVAkJCQlfTU1JTygweGM0MDM4KQogI2RlZmluZSAgIFNIUERfRklM VEVSX0NOVF81MDBfQURKCQkweDAwMUQ5CiAKLSNkZWZpbmUgSUNQX0RESV9IUERfRU5BQkxFX01B U0sJCShTSE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BPUlRfQikgfCBcCi0JCQkJCSBT SE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BPUlRfQSkpCi0jZGVmaW5lIElDUF9UQ19I UERfRU5BQkxFX01BU0sJCShJQ1BfVENfSFBEX0VOQUJMRShIUERfUE9SVF9UQzQpIHwgXAotCQkJ CQkgSUNQX1RDX0hQRF9FTkFCTEUoSFBEX1BPUlRfVEMzKSB8IFwKLQkJCQkJIElDUF9UQ19IUERf RU5BQkxFKEhQRF9QT1JUX1RDMikgfCBcCi0JCQkJCSBJQ1BfVENfSFBEX0VOQUJMRShIUERfUE9S VF9UQzEpKQotI2RlZmluZSBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSwkJKFNIT1RQTFVHX0NUTF9E RElfSFBEX0VOQUJMRShIUERfUE9SVF9DKSB8IFwKLQkJCQkJIFNIT1RQTFVHX0NUTF9ERElfSFBE X0VOQUJMRShIUERfUE9SVF9CKSB8IFwKLQkJCQkJIFNIT1RQTFVHX0NUTF9ERElfSFBEX0VOQUJM RShIUERfUE9SVF9BKSkKLSNkZWZpbmUgVEdQX1RDX0hQRF9FTkFCTEVfTUFTSwkJKElDUF9UQ19I UERfRU5BQkxFKEhQRF9QT1JUX1RDNikgfCBcCi0JCQkJCSBJQ1BfVENfSFBEX0VOQUJMRShIUERf UE9SVF9UQzUpIHwgXAotCQkJCQkgSUNQX1RDX0hQRF9FTkFCTEVfTUFTSykKLSNkZWZpbmUgREcx X0RESV9IUERfRU5BQkxFX01BU0sJCShTSE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BP UlRfRCkgfCBcCi0JCQkJCSBTSE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BPUlRfQykg fCBcCi0JCQkJCSBTSE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BPUlRfQikgfCBcCi0J CQkJCSBTSE9UUExVR19DVExfRERJX0hQRF9FTkFCTEUoSFBEX1BPUlRfQSkpCi0KICNkZWZpbmUg X1BDSF9EUExMX0EgICAgICAgICAgICAgIDB4YzYwMTQKICNkZWZpbmUgX1BDSF9EUExMX0IgICAg ICAgICAgICAgIDB4YzYwMTgKICNkZWZpbmUgUENIX0RQTEwocGxsKSBfTU1JTygocGxsKSA9PSAw ID8gX1BDSF9EUExMX0EgOiBfUENIX0RQTExfQikKLS0gCjIuMjYuMgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==