From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH] drm/i915: Fallback to reserve forcewake if primary ack missing Date: Mon, 30 Oct 2017 14:27:07 +0200 Message-ID: <20171030122707.10816-1-mika.kuoppala@linux.intel.com> References: <20171026140144.12267-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C0B06E171 for ; Mon, 30 Oct 2017 12:28:48 +0000 (UTC) In-Reply-To: <20171026140144.12267-1-mika.kuoppala@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 Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org VGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvbiBnZW45IGhhcmR3YXJlIHRvIG1pc3MgdGhlIGZvcmNl d2FrZSBhY2sKbWVzc2FnZS4gVGhlIHJlY29tbWVuZGVkIHdvcmthcm91bmQgaXMgdG8gdXNlIGFu b3RoZXIgZnJlZQpiaXQgYW5kIHRvZ2dsZSBpdCB1bnRpbCBvcmlnaW5hbCBiaXQgaXMgc3VjY2Vz c2Z1bGx5IGFja25vd2xlZGdlZC4KClNvbWUgZnV0dXJlIGdlbjkgcmV2cyBtaWdodCBvciBtaWdo dCBub3QgZml4IHRoZSB1bmRlcmx5aW5nIGlzc3VlIGJ1dAp0aGUgZmFsbGJhY2sgdG8gcmVzZXJ2 ZSBiaXQgZGFuY2UgY2FuIGJlIGNvbnNpZGVyZWQgYXMgaGFybWxlc3M6CndpdGhvdXQgdGhlIGFj ayB0aW1lb3V0IHdlIG5ldmVyIHJlYWNoIHRoZSByZXNlcnZlIGJpdCBmb3JjZXdha2UuClRodXMg YXMgb2Ygbm93IHdlIGFkb3B0IGEgYmxhbmtldCBhcHByb2FjaCBmb3IgYWxsIGdlbjkgYW5kIGxl YXZlCnRoZSBieXBhc3NpbmcgdGhlIHJlc2VydmUgYml0IGFwcHJvYWNoIGZvciBmdXR1cmUgcGF0 Y2hlcyBpZgpjb3JyZXNwb25kaW5nIGh3IHJldmlzaW9ucyBkbyBhcHBlYXIuCgpDb21taXQgODNl MzMzNzIwNGIyICgiZHJtL2k5MTU6IEluY3JlYXNlIG1heGltdW0gcG9sbGluZyB0aW1lIHRvIDUw bXMKZm9yIGZvcmNld2FrZSByZXF1ZXN0L2NsZWFyIGFjayIpIGRpZCBpbmNyZWFzZSB0aGUgZm9y Y2V3YWtlIHRpbWVvdXQuCklmIHRoZSBpc3N1ZSB3YXMgYSBkZWxheWVkIGFjaywgZnV0dXJlIHdv cmsgY291bGQgaW5jbHVkZSBmaW5kaW5nCmEgc3VpdGFibGUgdGltZW91dCB2YWx1ZSBib3RoIGZv ciBwcmltYXJ5IGFjayBhbmQgcmVzZXJ2ZSB0b2dnbGUKdG8gcmVkdWNlIHRoZSB3b3JzdCBjYXNl IGxhdGVuY3kuCgp2MjogdXNlIGJpdCAxNSwgbmFtaW5nLCBjb21tZW50IChDaHJpcyksIG9ubHkg d2FpdCBmYWxsYmFjayBhY2sKdjM6IGZpeCByZXR1cm4gb24gZmFsbGJhY2ssIGJhY2tvZmYgYWZ0 ZXIgZmFsbGJhY2sgd3JpdGUgKENocmlzKQoKUmVmZXJlbmNlczogSFNERVMgIzE2MDQyNTQ1MjQK UmVmZXJlbmNlczogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MTAyMDUxCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0 aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBTYWdhciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1i bGVAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxh QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICB8ICAgNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgfCAxMzcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzMCBp bnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRl eCA4Yzc3NWU5NmI0ZTQuLmYwZjhmNjA1OTY1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBA IC03Nzc0LDggKzc3NzQsOSBAQCBlbnVtIHsKICNkZWZpbmUgIEZPUkNFV0FLRV9BQ0tfTUVESUFf R0VOOQkJX01NSU8oMHgwRDg4KQogI2RlZmluZSAgRk9SQ0VXQUtFX0FDS19SRU5ERVJfR0VOOQkJ X01NSU8oMHgwRDg0KQogI2RlZmluZSAgRk9SQ0VXQUtFX0FDS19CTElUVEVSX0dFTjkJCV9NTUlP KDB4MTMwMDQ0KQotI2RlZmluZSAgIEZPUkNFV0FLRV9LRVJORUwJCQkweDEKLSNkZWZpbmUgICBG T1JDRVdBS0VfVVNFUgkJCTB4MgorI2RlZmluZSAgIEZPUkNFV0FLRV9LRVJORUwJCQlCSVQoMCkK KyNkZWZpbmUgICBGT1JDRVdBS0VfVVNFUgkJCUJJVCgxKQorI2RlZmluZSAgIEZPUkNFV0FLRV9L RVJORUxfRkFMTEJBQ0sJCUJJVCgxNSkKICNkZWZpbmUgIEZPUkNFV0FLRV9NVF9BQ0sJCQlfTU1J TygweDEzMDA0MCkKICNkZWZpbmUgIEVDT0JVUwkJCQkJX01NSU8oMHhhMTgwKQogI2RlZmluZSAg ICBGT1JDRVdBS0VfTVRfRU5BQkxFCQkJKDE8PDUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29y ZS5jCmluZGV4IDk2ZWU2YjI3NTRiZS4uNWEyODEwNzc0ZWJiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF91bmNvcmUuYwpAQCAtNjksMTcgKzY5LDEwNCBAQCBmd19kb21haW5fYXJtX3RpbWVyKHN0 cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKIAkJCSAgICAgICBIUlRJTUVS X01PREVfUkVMKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQKK19fd2FpdF9mb3JfYWNrKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQsCisJICAgICAgIGNvbnN0IHUzMiBhY2ssCisJ ICAgICAgIGNvbnN0IHUzMiB2YWx1ZSkKK3sKKwlyZXR1cm4gd2FpdF9mb3JfYXRvbWljKChfX3Jh d19pOTE1X3JlYWQzMihpOTE1LCBkLT5yZWdfYWNrKSAmIGFjaykgPT0gdmFsdWUsCisJCQkgICAg ICAgRk9SQ0VXQUtFX0FDS19USU1FT1VUX01TKTsKK30KKworc3RhdGljIGlubGluZSBpbnQKK3dh aXRfYWNrX2NsZWFyKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCSAgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQsCisJICAgICAg IGNvbnN0IHUzMiBhY2spCit7CisJcmV0dXJuIF9fd2FpdF9mb3JfYWNrKGk5MTUsIGQsIGFjaywg MCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50Cit3YWl0X2Fja19zZXQoY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2Zv cmNld2FrZV9kb21haW4gKmQsCisJICAgICBjb25zdCB1MzIgYWNrKQoreworCXJldHVybiBfX3dh aXRfZm9yX2FjayhpOTE1LCBkLCBhY2ssIGFjayk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZAog ZndfZG9tYWluX3dhaXRfYWNrX2NsZWFyKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkK IHsKLQlpZiAod2FpdF9mb3JfYXRvbWljKChfX3Jhd19pOTE1X3JlYWQzMihpOTE1LCBkLT5yZWdf YWNrKSAmCi0JCQkgICAgIEZPUkNFV0FLRV9LRVJORUwpID09IDAsCi0JCQkgICAgRk9SQ0VXQUtF X0FDS19USU1FT1VUX01TKSkKKwlpZiAod2FpdF9hY2tfY2xlYXIoaTkxNSwgZCwgRk9SQ0VXQUtF X0tFUk5FTCkpCiAJCURSTV9FUlJPUigiJXM6IHRpbWVkIG91dCB3YWl0aW5nIGZvciBmb3JjZXdh a2UgYWNrIHRvIGNsZWFyLlxuIiwKIAkJCSAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW5f dG9fc3RyKGQtPmlkKSk7CiB9CiAKK2VudW0gYWNrX3R5cGUgeworCUFDS19DTEVBUiA9IDAsCisJ QUNLX1NFVAorfTsKKworc3RhdGljIGludAorZndfZG9tYWluX3dhaXRfYWNrX3dpdGhfZmFsbGJh Y2soY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJIGNvbnN0IHN0cnVj dCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCwKKwkJCQkgY29uc3QgZW51bSBhY2tf dHlwZSB0eXBlKQoreworCWNvbnN0IHUzMiBhY2tfYml0ID0gRk9SQ0VXQUtFX0tFUk5FTDsKKwlj b25zdCB1MzIgdmFsdWUgPSB0eXBlID09IEFDS19TRVQgPyBhY2tfYml0IDogMDsKKwl1bnNpZ25l ZCBpbnQgcGFzcyA9IDA7CisJYm9vbCBhY2tfZGV0ZWN0ZWQ7CisKKwkvKgorCSAqIFRoZXJlIGlz IGEgcG9zc2liaWxpdHkgb2YgZHJpdmVyJ3Mgd2FrZSByZXF1ZXN0IGNvbGxpZGluZworCSAqIHdp dGggaGFyZHdhcmUncyBvd24gd2FrZSByZXF1ZXN0cyBhbmQgdGhhdCBjYW4gY2F1c2UKKwkgKiBo YXJkd2FyZSB0byBub3QgZGVsaXZlciB0aGUgZHJpdmVyJ3MgYWNrIG1lc3NhZ2UuCisJICoKKwkg KiBVc2UgYSBmYWxsYmFjayBiaXQgdG9nZ2xlIHRvIGtpY2sgdGhlIGdwdSBzdGF0ZSBtYWNoaW5l CisJICogaW4gaG9wZXMgdGhhdCB0aGUgb3JpZ2luYWwgYWNrIHdpbGwgYmUgZGVsaXZlcmVkIGFs b25nIHdpdGgKKwkgKiB0aGUgZmFsbGJhY2sgYWNrLgorCSAqCisJICogVGhpcyB3b3JrYXJvdW5k IGlzIGRlc2NyaWJlZCBpbiBIU0RFUyAjMTYwNDI1NDUyNAorCSAqLworCisJZG8geworCQl3YWl0 X2Fja19jbGVhcihpOTE1LCBkLCBGT1JDRVdBS0VfS0VSTkVMX0ZBTExCQUNLKTsKKworCQlfX3Jh d19pOTE1X3dyaXRlMzIoaTkxNSwgZC0+cmVnX3NldCwKKwkJCQkgICBfTUFTS0VEX0JJVF9FTkFC TEUoRk9SQ0VXQUtFX0tFUk5FTF9GQUxMQkFDSykpOworCQkvKiBHaXZlIGd0IHNvbWUgdGltZSB0 byByZWxheCBiZWZvcmUgdGhlIHBvbGxpbmcgZnJlbnp5ICovCisJCXVkZWxheSgxMCAqIHBhc3Mp OworCQl3YWl0X2Fja19zZXQoaTkxNSwgZCwgRk9SQ0VXQUtFX0tFUk5FTF9GQUxMQkFDSyk7CisK KwkJYWNrX2RldGVjdGVkID0gKF9fcmF3X2k5MTVfcmVhZDMyKGk5MTUsIGQtPnJlZ19hY2spICYg YWNrX2JpdCkgPT0gdmFsdWU7CisKKwkJX19yYXdfaTkxNV93cml0ZTMyKGk5MTUsIGQtPnJlZ19z ZXQsCisJCQkJICAgX01BU0tFRF9CSVRfRElTQUJMRShGT1JDRVdBS0VfS0VSTkVMX0ZBTExCQUNL KSk7CisJCXBhc3MrKzsKKwl9IHdoaWxlICghYWNrX2RldGVjdGVkICYmIHBhc3MgPCAxMCk7CisK KwlEUk1fREVCVUdfRFJJVkVSKCIlcyBoYWQgdG8gdXNlIGZhbGxiYWNrIHRvICVzIGFjaywgMHgl eCAocGFzc2VzICV1KVxuIiwKKwkJCSBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbl90b19z dHIoZC0+aWQpLAorCQkJIHR5cGUgPT0gQUNLX1NFVCA/ICJzZXQiIDogImNsZWFyIiwKKwkJCSBf X3Jhd19pOTE1X3JlYWQzMihpOTE1LCBkLT5yZWdfYWNrKSwKKwkJCSBwYXNzKTsKKworCXJldHVy biBhY2tfZGV0ZWN0ZWQgPyAwIDogLUVUSU1FRE9VVDsKK30KKworc3RhdGljIGlubGluZSB2b2lk Citmd19kb21haW5fd2FpdF9hY2tfY2xlYXJfZmFsbGJhY2soY29uc3Qgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCisJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9kb21haW4gKmQpCit7CisJaWYgKGxpa2VseSghd2FpdF9hY2tfY2xlYXIoaTkxNSwgZCwgRk9S Q0VXQUtFX0tFUk5FTCkpKQorCQlyZXR1cm47CisKKwlpZiAoZndfZG9tYWluX3dhaXRfYWNrX3dp dGhfZmFsbGJhY2soaTkxNSwgZCwgQUNLX0NMRUFSKSkKKwkJZndfZG9tYWluX3dhaXRfYWNrX2Ns ZWFyKGk5MTUsIGQpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQKIGZ3X2RvbWFpbl9nZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3Vu Y29yZV9mb3JjZXdha2VfZG9tYWluICpkKQpAQCAtODgsMTcgKzE3NSwyNiBAQCBmd19kb21haW5f Z2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogfQogCiBzdGF0aWMgaW5saW5lIHZv aWQKLWZ3X2RvbWFpbl93YWl0X2Fjayhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKLQkJICAgY29uc3Qgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkKQor ZndfZG9tYWluX3dhaXRfYWNrX3NldChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKKwkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAq ZCkKIHsKLQlpZiAod2FpdF9mb3JfYXRvbWljKChfX3Jhd19pOTE1X3JlYWQzMihpOTE1LCBkLT5y ZWdfYWNrKSAmCi0JCQkgICAgIEZPUkNFV0FLRV9LRVJORUwpLAotCQkJICAgIEZPUkNFV0FLRV9B Q0tfVElNRU9VVF9NUykpCisJaWYgKHdhaXRfYWNrX3NldChpOTE1LCBkLCBGT1JDRVdBS0VfS0VS TkVMKSkKIAkJRFJNX0VSUk9SKCIlczogdGltZWQgb3V0IHdhaXRpbmcgZm9yIGZvcmNld2FrZSBh Y2sgcmVxdWVzdC5cbiIsCiAJCQkgIGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluX3RvX3N0 cihkLT5pZCkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKK2Z3X2RvbWFpbl93YWl0X2Fja19z ZXRfZmFsbGJhY2soY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJY29u c3Qgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkKQoreworCWlmIChsaWtl bHkoIXdhaXRfYWNrX3NldChpOTE1LCBkLCBGT1JDRVdBS0VfS0VSTkVMKSkpCisJCXJldHVybjsK KworCWlmIChmd19kb21haW5fd2FpdF9hY2tfd2l0aF9mYWxsYmFjayhpOTE1LCBkLCBBQ0tfU0VU KSkKKwkJZndfZG9tYWluX3dhaXRfYWNrX3NldChpOTE1LCBkKTsKK30KKworc3RhdGljIGlubGlu ZSB2b2lkCiBmd19kb21haW5fcHV0KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAogCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkK IHsKQEAgLTExOSw3ICsyMTUsMjcgQEAgZndfZG9tYWluc19nZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsIGVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWlucykKIAl9CiAKIAlm b3JfZWFjaF9md19kb21haW5fbWFza2VkKGQsIGZ3X2RvbWFpbnMsIGk5MTUsIHRtcCkKLQkJZndf ZG9tYWluX3dhaXRfYWNrKGk5MTUsIGQpOworCQlmd19kb21haW5fd2FpdF9hY2tfc2V0KGk5MTUs IGQpOworCisJaTkxNS0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlIHw9IGZ3X2RvbWFpbnM7Cit9 CisKK3N0YXRpYyB2b2lkCitmd19kb21haW5zX2dldF93aXRoX2ZhbGxiYWNrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAorCQkJICAgICBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2Rv bWFpbnMpCit7CisJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkOworCXVu c2lnbmVkIGludCB0bXA7CisKKwlHRU1fQlVHX09OKGZ3X2RvbWFpbnMgJiB+aTkxNS0+dW5jb3Jl LmZ3X2RvbWFpbnMpOworCisJZm9yX2VhY2hfZndfZG9tYWluX21hc2tlZChkLCBmd19kb21haW5z LCBpOTE1LCB0bXApIHsKKwkJZndfZG9tYWluX3dhaXRfYWNrX2NsZWFyX2ZhbGxiYWNrKGk5MTUs IGQpOworCQlmd19kb21haW5fZ2V0KGk5MTUsIGQpOworCX0KKworCWZvcl9lYWNoX2Z3X2RvbWFp bl9tYXNrZWQoZCwgZndfZG9tYWlucywgaTkxNSwgdG1wKQorCQlmd19kb21haW5fd2FpdF9hY2tf c2V0X2ZhbGxiYWNrKGk5MTUsIGQpOwogCiAJaTkxNS0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZl IHw9IGZ3X2RvbWFpbnM7CiB9CkBAIC0xMTQyLDcgKzEyNTgsOCBAQCBzdGF0aWMgdm9pZCBpbnRl bF91bmNvcmVfZndfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAl9CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Ci0JCWRldl9wcml2LT51 bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9nZXQgPSBmd19kb21haW5zX2dldDsKKwkJZGV2X3ByaXYt PnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldCA9CisJCQlmd19kb21haW5zX2dldF93aXRoX2Zh bGxiYWNrOwogCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfcHV0ID0gZndfZG9t YWluc19wdXQ7CiAJCWZ3X2RvbWFpbl9pbml0KGRldl9wcml2LCBGV19ET01BSU5fSURfUkVOREVS LAogCQkJICAgICAgIEZPUkNFV0FLRV9SRU5ERVJfR0VOOSwKLS0gCjIuMTEuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==