From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oscar Mateo Subject: [PATCH 01/22] drm/i915/icl: Introduce initial Icelake Workarounds Date: Wed, 2 May 2018 13:34:00 -0700 Message-ID: <1525293261-13613-2-git-send-email-oscar.mateo@intel.com> References: <1525293261-13613-1-git-send-email-oscar.mateo@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 BDB376E595 for ; Wed, 2 May 2018 20:34:17 +0000 (UTC) In-Reply-To: <1525293261-13613-1-git-send-email-oscar.mateo@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: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org SW5oZXJpdCB3b3JrYXJvdW5kcyBmcm9tIHByZXZpb3VzIHBsYXRmb3JtcyB0aGF0IGFyZSBzdGls bCB2YWxpZCBmb3IKSWNlbGFrZS4KCnYyOiBHRU43X1JPV19DSElDS0VOMiBpcyBtYXNrZWQKdjM6 CiAgLSBTaW5jZSBpdCBoYXMgYmVlbiBmaXhlZCBhbHJlYWR5IGluIHVwc3RyZWFtLCByZW1vdmVk IHRoZSBUT0RPCiAgICBjb21tZW50IGFib3V0IFdBX1NFVF9CSVQgZm9yIFdhSW5QbGFjZURlY29t cHJlc3Npb25IYW5nLgogIC0gU3F1YXNoZWQgd2l0aCB0aGlzIHBhdGNoOgogICAgICBkcm0vaTkx NS9pY2w6IGFkZCBpY2VsYWtlX2luaXRfY2xvY2tfZ2F0aW5nKCkKICAgIGZyb20gUGF1bG8gWmFu b25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CiAgLSBTcXVhc2hlZCB3aXRoIHRoaXMgcGF0 Y2g6CiAgICAgIGRybS9pOTE1L2ljbDogV2FGb3JjZUVuYWJsZU5vbkNvaGVyZW50CiAgICBmcm9t IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+CiAgLSBXYVB1c2hDb25zdGFudERl cmVmZXJlbmNlSG9sZERpc2FibGUgaXMgbm93IFdhXzE2MDQzNzA1ODUgYW5kCiAgICBhcHBsaWVz IHRvIEIwIGFzIHdlbGwuCiAgLSBXYVBpcGVDb250cm9sQmVmb3JlM0RTdGF0ZVNhbXBsZVBhdHRl cm4gV0FCQiB3YXMgYmVpbmcgYXBwbGllZAogICAgdG8gSUNMIGluY29ycmVjdGx5Lgp2NDoKICAt IFdyYXAgdGhlIGNvbW1pdCBtZXNzYWdlCiAgLSBzL2Rldl9wcml2L3AgdG8gcGxlYXNlIGNoZWNr cGF0Y2gKdjU6IFJlYmFzZWQgb24gdG9wIG9mIHRoZSBXQSByZWZhY3RvcmluZwp2NjogUmViYXNl ZCBvbiB0b3Agb2YgZnVydGhlciB3aGl0ZWxpc3QgcmVnaXN0ZXJzIHJlZmFjdG9yaW5nIChNaWNo ZWwpCnY3OiBBZGRlZCBXYVJzRm9yY2V3YWtlQWRkRGVsYXlGb3JBY2sKdjg6IHMvSUNMX0hEQ19D SElDS0VOMC9JQ0xfSERDX01PREUgKE1pa2EpCgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgpDYzogVG9tYXN6IExpcyA8dG9tYXN6Lmxpc0BpbnRlbC5jb20+CkNjOiBN aWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgIDkgKysrKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCAgICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jICAgICAgICAgfCAgMiArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg ICAgICB8ICA0ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgICAgICB8 ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jIHwgNDYg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNjggaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAx OTMxNzZiLi43YTNiMGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI0NjYsNiArMjQ2 NiwxNSBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpOTE1X3NnX3NlZ21lbnRfc2l6ZSh2 b2lkKQogI2RlZmluZSBJU19DTkxfUkVWSUQocCwgc2luY2UsIHVudGlsKSBcCiAJKElTX0NBTk5P TkxBS0UocCkgJiYgSVNfUkVWSUQocCwgc2luY2UsIHVudGlsKSkKIAorI2RlZmluZSBJQ0xfUkVW SURfQTAJCTB4MAorI2RlZmluZSBJQ0xfUkVWSURfQTIJCTB4MQorI2RlZmluZSBJQ0xfUkVWSURf QjAJCTB4MworI2RlZmluZSBJQ0xfUkVWSURfQjIJCTB4NAorI2RlZmluZSBJQ0xfUkVWSURfQzAJ CTB4NQorCisjZGVmaW5lIElTX0lDTF9SRVZJRChwLCBzaW5jZSwgdW50aWwpIFwKKwkoSVNfSUNF TEFLRShwKSAmJiBJU19SRVZJRChwLCBzaW5jZSwgdW50aWwpKQorCiAvKgogICogVGhlIGdlblgg ZGVzaWduYXRpb24gdHlwaWNhbGx5IHJlZmVycyB0byB0aGUgcmVuZGVyIGVuZ2luZSwgc28gcmVu ZGVyCiAgKiBjYXBhYmlsaXR5IHJlbGF0ZWQgY2hlY2tzIHNob3VsZCB1c2UgSVNfR0VOLCB3aGls ZSBkaXNwbGF5IGFuZCBvdGhlciBjaGVja3MKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK aW5kZXggMjFkNzJmNi4uMjIxYjg3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK QEAgLTIxNDAsMTIgKzIxNDAsMTIgQEAgc3RhdGljIHZvaWQgZ3R0X3dyaXRlX3dvcmthcm91bmRz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBjYWxsZWQgb24gZHJpdmVy IGxvYWQgYW5kIGFmdGVyIGEgR1BVIHJlc2V0LCBzbyB5b3UgY2FuIHBsYWNlCiAJICogd29ya2Fy b3VuZHMgaGVyZSBldmVuIGlmIHRoZXkgZ2V0IG92ZXJ3cml0dGVuIGJ5IEdQVSByZXNldC4KIAkg Ki8KLQkvKiBXYUluY3JlYXNlRGVmYXVsdFRMQkVudHJpZXM6Y2h2LGJkdyxza2wsYnh0LGtibCxn bGssY2ZsLGNubCAqLworCS8qIFdhSW5jcmVhc2VEZWZhdWx0VExCRW50cmllczpjaHYsYmR3LHNr bCxieHQsa2JsLGdsayxjZmwsY25sLGljbCAqLwogCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYp KQogCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjhfTDNfTFJBXzFfR1BHUFVf REVGQVVMVF9WQUxVRV9CRFcpOwogCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQog CQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjhfTDNfTFJBXzFfR1BHUFVfREVG QVVMVF9WQUxVRV9DSFYpOwotCWVsc2UgaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpIHx8IElTX0dF TjEwKGRldl9wcml2KSkKKwllbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSB8fCBJU19HRU4x MChkZXZfcHJpdikgfHwgSVNfR0VOMTEoZGV2X3ByaXYpKQogCQlJOTE1X1dSSVRFKEdFTjhfTDNf TFJBXzFfR1BHUFUsIEdFTjlfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9TS0wpOwogCWVs c2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFf R1BHUFUsIEdFTjlfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9CWFQpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKaW5kZXggMTk3Yzk2Ni4uNDU0MDA5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCkBAIC03MjM4LDYgKzcyMzgsNyBAQCBlbnVtIHsKIC8qIEdFTjggY2hpY2tlbiAqLwogI2Rl ZmluZSBIRENfQ0hJQ0tFTjAJCQkJX01NSU8oMHg3MzAwKQogI2RlZmluZSBDTkxfSERDX0NISUNL RU4wCQkJX01NSU8oMHhFNUYwKQorI2RlZmluZSBJQ0xfSERDX01PREUJCQkJX01NSU8oMHhFNUY0 KQogI2RlZmluZSAgSERDX0ZPUkNFX0NTUl9OT05fQ09IRVJFTlRfT1ZSX0RJU0FCTEUJKDE8PDE1 KQogI2RlZmluZSAgSERDX0ZFTkNFX0RFU1RfU0xNX0RJU0FCTEUJCSgxPDwxNCkKICNkZWZpbmUg IEhEQ19ET05PVF9GRVRDSF9NRU1fV0hFTl9NQVNLRUQJKDE8PDExKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwppbmRleCA1MTNhZWU2Li5kNWZhYjQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwpAQCAtMTY2MSw2ICsxNjYxLDggQEAgc3RhdGljIGludCBpbnRlbF9pbml0X3dvcmthcm91bmRf YmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlyZXR1cm4gLUVJTlZBTDsKIAog CXN3aXRjaCAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkpIHsKKwljYXNlIDExOgorCQlyZXR1cm4g MDsKIAljYXNlIDEwOgogCQl3YV9iYl9mblswXSA9IGdlbjEwX2luaXRfaW5kaXJlY3RjdHhfYmI7 CiAJCXdhX2JiX2ZuWzFdID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDQxMjYx MzIuLjljNmU0OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtOTE5MCw3ICs5MTkwLDkg QEAgc3RhdGljIHZvaWQgbm9wX2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKICAqLwogdm9pZCBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZ19ob29rcyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKElTX0NBTk5PTkxBS0Uo ZGV2X3ByaXYpKQorCWlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkKKwkJZGV2X3ByaXYtPmRpc3Bs YXkuaW5pdF9jbG9ja19nYXRpbmcgPSBub3BfaW5pdF9jbG9ja19nYXRpbmc7CisJZWxzZSBpZiAo SVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpCiAJCWRldl9wcml2LT5kaXNwbGF5LmluaXRfY2xvY2tf Z2F0aW5nID0gY25sX2luaXRfY2xvY2tfZ2F0aW5nOwogCWVsc2UgaWYgKElTX0NPRkZFRUxBS0Uo ZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0X2Nsb2NrX2dhdGluZyA9IGNmbF9p bml0X2Nsb2NrX2dhdGluZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggZDZl MjBmMC4uNDQ4MjkzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5j b3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTEzOSw3 ICsxMzksOSBAQCBlbnVtIGFja190eXBlIHsKIAkgKiBpbiB0aGUgaG9wZSB0aGF0IHRoZSBvcmln aW5hbCBhY2sgd2lsbCBiZSBkZWxpdmVyZWQgYWxvbmcgd2l0aAogCSAqIHRoZSBmYWxsYmFjayBh Y2suCiAJICoKLQkgKiBUaGlzIHdvcmthcm91bmQgaXMgZGVzY3JpYmVkIGluIEhTREVTICMxNjA0 MjU0NTI0CisJICogVGhpcyB3b3JrYXJvdW5kIGlzIGRlc2NyaWJlZCBpbiBIU0RFUyAjMTYwNDI1 NDUyNCBhbmQgaXQncyBrbm93biBhczoKKwkgKiBXYVJzRm9yY2V3YWtlQWRkRGVsYXlGb3JBY2s6 c2tsLGJ4dCxrYmwsZ2xrLGNmbCxjbmwsaWNsCisJICogYWx0aG91Z2ggdGhlIG5hbWUgaXMgYSBi aXQgbWlzbGVhZGluZy4KIAkgKi8KIAogCXBhc3MgPSAxOwpAQCAtMTM5NCw3ICsxMzk2LDggQEAg c3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKIAkJ aW50IGk7CiAKLQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldCA9IGZ3X2Rv bWFpbnNfZ2V0OworCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfZ2V0ID0KKwkJ CWZ3X2RvbWFpbnNfZ2V0X3dpdGhfZmFsbGJhY2s7CiAJCWRldl9wcml2LT51bmNvcmUuZnVuY3Mu Zm9yY2Vfd2FrZV9wdXQgPSBmd19kb21haW5zX3B1dDsKIAkJZndfZG9tYWluX2luaXQoZGV2X3By aXYsIEZXX0RPTUFJTl9JRF9SRU5ERVIsCiAJCQkgICAgICAgRk9SQ0VXQUtFX1JFTkRFUl9HRU45 LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKaW5kZXggZWM5ZDM0MC4u OWE3OTNhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3Vu ZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCkBAIC00 NDEsNiArNDQxLDI3IEBAIHN0YXRpYyBpbnQgY25sX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlu dCBpY2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQoreworCS8qIFdhXzE2MDQzNzA1ODU6aWNsIChwcmUtcHJvZCkKKwkgKiBGb3JtZXJseSBr bm93biBhcyBXYVB1c2hDb25zdGFudERlcmVmZXJlbmNlSG9sZERpc2FibGUKKwkgKi8KKwlpZiAo SVNfSUNMX1JFVklEKGRldl9wcml2LCBJQ0xfUkVWSURfQTAsIElDTF9SRVZJRF9CMCkpCisJCVdB X1NFVF9CSVRfTUFTS0VEKEdFTjdfUk9XX0NISUNLRU4yLAorCQkJCSAgUFVTSF9DT05TVEFOVF9E RVJFRl9ESVNBQkxFKTsKKworCS8qIFdhRm9yY2VFbmFibGVOb25Db2hlcmVudDppY2wKKwkgKiBU aGlzIGlzIG5vdCB0aGUgc2FtZSB3b3JrYXJvdW5kIGFzIGluIGVhcmx5IEdlbjkgcGxhdGZvcm1z LCB3aGVyZQorCSAqIGxhY2tpbmcgdGhpcyBjb3VsZCBjYXVzZSBzeXN0ZW0gaGFuZ3MsIGJ1dCBj b2hlcmVuY3kgcGVyZm9ybWFuY2UKKwkgKiBvdmVyaGVhZCBpcyBoaWdoIGFuZCBvbmx5IGEgZmV3 IGNvbXB1dGUgd29ya2xvYWRzIHJlYWxseSBuZWVkIGl0CisJICogKHRoZSByZWdpc3RlciBpcyB3 aGl0ZWxpc3RlZCBpbiBoYXJkd2FyZSBub3csIHNvIFVNRHMgY2FuIG9wdCBpbgorCSAqIGZvciBj b2hlcmVuY3kgaWYgdGhleSBoYXZlIGEgZ29vZCByZWFzb24pLgorCSAqLworCVdBX1NFVF9CSVRf TUFTS0VEKElDTF9IRENfTU9ERSwgSERDX0ZPUkNFX05PTl9DT0hFUkVOVCk7CisKKwlyZXR1cm4g MDsKK30KKwogaW50IGludGVsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKIAlpbnQgZXJyID0gMDsKQEAgLTQ2NSw2ICs0ODYsOCBAQCBp bnQgaW50ZWxfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQllcnIgPSBjZmxfY3R4X3dvcmthcm91bmRzX2luaXQoZGV2X3ByaXYpOwogCWVs c2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQogCQllcnIgPSBjbmxfY3R4X3dvcmthcm91 bmRzX2luaXQoZGV2X3ByaXYpOworCWVsc2UgaWYgKElTX0lDRUxBS0UoZGV2X3ByaXYpKQorCQll cnIgPSBpY2xfY3R4X3dvcmthcm91bmRzX2luaXQoZGV2X3ByaXYpOwogCWVsc2UKIAkJTUlTU0lO R19DQVNFKElOVEVMX0dFTihkZXZfcHJpdikpOwogCWlmIChlcnIpCkBAIC02NjMsNiArNjg2LDIx IEBAIHN0YXRpYyB2b2lkIGNubF9ndF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRU45X0ZGU0NfUEVS Q1RYX1BSRUVNUFRfQ1RSTCkpOwogfQogCitzdGF0aWMgdm9pZCBpY2xfZ3Rfd29ya2Fyb3VuZHNf YXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCS8qIFRoaXMgaXMg bm90IGFuIFdhLiBFbmFibGUgZm9yIGJldHRlciBpbWFnZSBxdWFsaXR5ICovCisJSTkxNV9XUklU RShfM0RfQ0hJQ0tFTjMsCisJCSAgIF9NQVNLRURfQklUX0VOQUJMRShfM0RfQ0hJQ0tFTjNfQUFf TElORV9RVUFMSVRZX0ZJWF9FTkFCTEUpKTsKKworCS8qIFdhSW5QbGFjZURlY29tcHJlc3Npb25I YW5nOmljbCAqLworCUk5MTVfV1JJVEUoR0VOOV9HQU1UX0VDT19SRUdfUldfSUEsIChJOTE1X1JF QUQoR0VOOV9HQU1UX0VDT19SRUdfUldfSUEpIHwKKwkJCQkJICAgICBHQU1UX0VDT19FTkFCTEVf SU5fUExBQ0VfREVDT01QUkVTUykpOworCisJLyogV2FQaXBlbGluZUZsdXNoQ29oZXJlbnRMaW5l czppY2wgKi8KKwlJOTE1X1dSSVRFKEdFTjhfTDNTUUNSRUc0LCAoSTkxNV9SRUFEKEdFTjhfTDNT UUNSRUc0KSB8CisJCQkJICAgIEdFTjhfTFFTQ19GTFVTSF9DT0hFUkVOVF9MSU5FUykpOworfQor CiB2b2lkIGludGVsX2d0X3dvcmthcm91bmRzX2FwcGx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDgpCkBAIC02ODMsNiAr NzIxLDggQEAgdm9pZCBpbnRlbF9ndF93b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWNmbF9ndF93b3JrYXJvdW5kc19hcHBseShkZXZfcHJpdik7 CiAJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpCiAJCWNubF9ndF93b3JrYXJvdW5k c19hcHBseShkZXZfcHJpdik7CisJZWxzZSBpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpCisJCWlj bF9ndF93b3JrYXJvdW5kc19hcHBseShkZXZfcHJpdik7CiAJZWxzZQogCQlNSVNTSU5HX0NBU0Uo SU5URUxfR0VOKGRldl9wcml2KSk7CiB9CkBAIC03NjEsNiArODAxLDEwIEBAIHN0YXRpYyB2b2lk IGNubF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKIAl3aGl0ZWxpc3RfcmVn KHcsIEdFTjhfQ1NfQ0hJQ0tFTjEpOwogfQogCitzdGF0aWMgdm9pZCBpY2xfd2hpdGVsaXN0X2J1 aWxkKHN0cnVjdCB3aGl0ZWxpc3QgKncpCit7Cit9CisKIHN0YXRpYyBzdHJ1Y3Qgd2hpdGVsaXN0 ICp3aGl0ZWxpc3RfYnVpbGQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCQkg c3RydWN0IHdoaXRlbGlzdCAqdykKIHsKQEAgLTc4OSw2ICs4MzMsOCBAQCBzdGF0aWMgc3RydWN0 IHdoaXRlbGlzdCAqd2hpdGVsaXN0X2J1aWxkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKIAkJY2ZsX3doaXRlbGlzdF9idWlsZCh3KTsKIAllbHNlIGlmIChJU19DQU5OT05MQUtFKGk5 MTUpKQogCQljbmxfd2hpdGVsaXN0X2J1aWxkKHcpOworCWVsc2UgaWYgKElTX0lDRUxBS0UoaTkx NSkpCisJCWljbF93aGl0ZWxpc3RfYnVpbGQodyk7CiAJZWxzZQogCQlNSVNTSU5HX0NBU0UoSU5U RUxfR0VOKGk5MTUpKTsKIAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=