From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Paneri Subject: [PATCH v5] drm/i915/bxt: Broxton decoupled MMIO Date: Tue, 15 Nov 2016 22:49:20 +0530 Message-ID: <1479230360-22395-1-git-send-email-praveen.paneri@intel.com> References: <84d90b8c-4c0a-0546-bdc7-cabd3384c29e@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BADE6E1DB for ; Tue, 15 Nov 2016 17:15:03 +0000 (UTC) In-Reply-To: <84d90b8c-4c0a-0546-bdc7-cabd3384c29e@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: Zhe Wang , Praveen Paneri , rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org RGVjb3VwbGVkIE1NSU8gaXMgYW4gYWx0ZXJuYXRpdmUgd2F5IHRvIGFjY2VzcyBmb3JjZXdha2Ug ZG9tYWluCnJlZ2lzdGVycywgd2hpY2ggcmVxdWlyZXMgbGVzcyBjeWNsZXMgZm9yIGEgc2luZ2xl IHJlYWQvd3JpdGUgYW5kCmF2b2lkcyBmcmVxdWVudCBzb2Z0d2FyZSBmb3JjZXdha2UuClRoaXMg Y2VydGFpbmx5IGdpdmVzIGFkdmFudGFnZSBvdmVyIHRoZSBmb3JjZXdha2UgYXMgdGhpcyBuZXcK bWVjaGFuaXNtIOKAnGRlY291cGxlc+KAnSBDUFUgY3ljbGVzIGFuZCBhbGxvdyB0aGVtIHRvIGNv bXBsZXRlIGV2ZW4Kd2hlbiBHVCBpcyBpbiBhIENQRCAoZnJlcXVlbmN5IGNoYW5nZSkgb3IgQzYg c3RhdGUuCgpUaGlzIGNhbiBjby1leGlzdCB3aXRoIGZvcmNld2FrZSBhbmQgd2Ugd2lsbCBjb250 aW51ZSB0byB1c2UgZm9yY2V3YWtlCmFzIGFwcHJvcHJpYXRlLiBFLmcuIDY0LWJpdCByZWdpc3Rl ciB3cml0ZXMgdG8gYXZvaWQgd3JpdGluZyAyIGR3b3JkcwpzZXBhcmF0ZWx5IGFuZCBsYW5kIGlu dG8gZnVubnkgc2l0dWF0aW9ucy4KCnYyOgotIE1vdmVkIHBsYXRmb3JtIGNoZWNrIG91dCBvZiB0 aGUgZnVuY3Rpb24gYW5kIGdvdCByaWQgb2YgZHVwbGljYXRlCiBmdW5jdGlvbnMgdG8gZmluZCBv dXQgZGVjb3VwbGVkIHBvd2VyIGRvbWFpbiAoQ2hyaXMpCi0gQWRkZWQgYSBjaGVjayBmb3IgZm9y Y2V3YWtlIGFscmVhZHkgaGVsZCBhbmQgc2tpcHBlZCBkZWNvdXBsZWQKIGFjY2VzcyAoQ2hyaXMp Ci0gU2tpcHBlZCB3cml0aW5nIDY0IGJpdCByZWdpc3RlcnMgdGhyb3VnaCBkZWNvdXBsZWQgTU1J TyAoQ2hyaXMpCgp2MzoKLSBJbXByb3ZlZCBjb21taXQgbWVzc2FnZSB3aXRoIG1vcmUgaW5mbyBv biBkZWNvdXBsZWQgbW1pbyAoVHZydGtvKQotIENoYW5nZWQgZGVjb3VwbGVkIG9wZXJhdGlvbiB0 byBlbnVtIGFuZCB1c2VkIHUzMiBpbnN0ZWFkIG9mCiB1aW50XzMyIGRhdGEgdHlwZSBmb3IgcmVn aXN0ZXIgb2Zmc2V0IChUdnJ0a28pCi0gTW92ZWQgSEFTX0RFQ09VUExFRF9NTUlPIHRvIGRldmlj ZSBpbmZvIChUdnJ0a28pCi0gQWRkZWQgbG9va3VwIHRhYmxlIGZvciBjb252ZXJ0aW5nIGZ3X2Vu Z2luZSB0byBwZF9lbmdpbmUgKFR2cnRrbykKLSBJbXByb3ZlZCBfX2dlbjlfZGVjb3VwbGVkX3Jl YWQgYW5kIF9fZ2VuOV9kZWNvdXBsZWRfd3JpdGUKIHJvdXRpbmVzIChUdnJ0a28pCgp2NDoKLSBG aXhlZCBhbGlnbm1lbnQgYW5kIHZhcmlhYmxlIG5hbWVzIChDaHJpcykKLSBXcml0ZSBHRU45X0RF Q09VUExFRF9SRUcwX0RXMSByZWdpc3RlciBpbiBqdXN0IG9uZSBnbyAoWmhlIFdhbmcpCgp2NToK LSBDaGFuZ2VkIEhBU19ERUNPVVBMRURfTU1JTygpIGFyZ3VtZW50IG5hbWUgdG8gZGV2X3ByaXYg KFR2cnRrbykKLSBTYW5pdGl6ZSBpbmZvLT5oYWRfZGVjb3VwbGVkX21taW8gYXQgaW5pdCAoQ2hy aXMpCgpTaWduZWQtb2ZmLWJ5OiBaaGUgV2FuZyA8emhlMS53YW5nQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogUHJhdmVlbiBQYW5lcmkgPHByYXZlZW4ucGFuZXJpQGludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgMTcgKysrKystCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oICAgICB8ICAgNyArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29y ZS5jIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBj aGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCmluZGV4IDRlNzE0OGEuLmMxZWVjMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApA QCAtNTQ5LDYgKzU0OSwxOCBAQCBlbnVtIGZvcmNld2FrZV9kb21haW5zIHsKICNkZWZpbmUgRldf UkVHX1JFQUQgICgxKQogI2RlZmluZSBGV19SRUdfV1JJVEUgKDIpCiAKK2VudW0gZGVjb3VwbGVk X3Bvd2VyX2RvbWFpbiB7CisJR0VOOV9ERUNPVVBMRURfUERfQkxJVFRFUiA9IDAsCisJR0VOOV9E RUNPVVBMRURfUERfUkVOREVSLAorCUdFTjlfREVDT1VQTEVEX1BEX01FRElBLAorCUdFTjlfREVD T1VQTEVEX1BEX0FMTAorfTsKKworZW51bSBkZWNvdXBsZWRfb3BzIHsKKwlHRU45X0RFQ09VUExF RF9PUF9XUklURSA9IDAsCisJR0VOOV9ERUNPVVBMRURfT1BfUkVBRAorfTsKKwogZW51bSBmb3Jj ZXdha2VfZG9tYWlucwogaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3JfcmVnKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgICBpOTE1X3JlZ190IHJlZywgdW5zaWdu ZWQgaW50IG9wKTsKQEAgLTY4Myw3ICs2OTUsOCBAQCBzdHJ1Y3QgaW50ZWxfY3NyIHsKIAlmdW5j KGN1cnNvcl9uZWVkc19waHlzaWNhbCk7IFwKIAlmdW5jKGh3c19uZWVkc19waHlzaWNhbCk7IFwK IAlmdW5jKG92ZXJsYXlfbmVlZHNfcGh5c2ljYWwpOyBcCi0JZnVuYyhzdXBwb3J0c190dikKKwlm dW5jKHN1cHBvcnRzX3R2KTsgXAorCWZ1bmMoaGFzX2RlY291cGxlZF9tbWlvKQogCiBzdHJ1Y3Qg c3NldV9kZXZfaW5mbyB7CiAJdTggc2xpY2VfbWFzazsKQEAgLTI2NTIsNiArMjY2NSw4IEBAIHN0 cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewogI2RlZmluZSBHVF9GUkVRVUVOQ1lfTVVMVElQTElF UiA1MAogI2RlZmluZSBHRU45X0ZSRVFfU0NBTEVSIDMKIAorI2RlZmluZSBIQVNfREVDT1VQTEVE X01NSU8oZGV2X3ByaXYpIChJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX2RlY291cGxlZF9tbWlv KQorCiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogCiBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxf c2Nhbm91dF9uZWVkc192dGRfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGNpLmMKaW5kZXggNzBhOTljZS4uZmNlOGUxOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BjaS5jCkBAIC0zNjMsNiArMzYzLDcgQEAKIAkuaGFzX2h3X2NvbnRleHRzID0gMSwK IAkuaGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0cyA9IDEsCiAJLmhhc19ndWMgPSAxLAorCS5oYXNf ZGVjb3VwbGVkX21taW8gPSAxLAogCS5kZGJfc2l6ZSA9IDUxMiwKIAlHRU5fREVGQVVMVF9QSVBF T0ZGU0VUUywKIAlJVkJfQ1VSU09SX09GRlNFVFMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRl eCAzMzYxZDdmLi5jNzBjMDdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTczNDIsNiAr NzM0MiwxMyBAQCBlbnVtIHsKICNkZWZpbmUgIFNLTF9GVVNFX1BHMV9ESVNUX1NUQVRVUyAgICAg ICAgICAgICAgKDE8PDI2KQogI2RlZmluZSAgU0tMX0ZVU0VfUEcyX0RJU1RfU1RBVFVTICAgICAg ICAgICAgICAoMTw8MjUpCiAKKy8qIERlY291cGxlZCBNTUlPIHJlZ2lzdGVyIHBhaXIgZm9yIGtl cm5lbCBkcml2ZXIgKi8KKyNkZWZpbmUgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzAJCQlfTU1JTygw eEYwMCkKKyNkZWZpbmUgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzEJCQlfTU1JTygweEYwNCkKKyNk ZWZpbmUgR0VOOV9ERUNPVVBMRURfRFcxX0dPCQkJKDE8PDMxKQorI2RlZmluZSBHRU45X0RFQ09V UExFRF9QRF9TSElGVAkJCTI4CisjZGVmaW5lIEdFTjlfREVDT1VQTEVEX09QX1NISUZUCQkJMjQK KwogLyogUGVyLXBpcGUgRERJIEZ1bmN0aW9uIENvbnRyb2wgKi8KICNkZWZpbmUgX1RSQU5TX0RE SV9GVU5DX0NUTF9BCQkweDYwNDAwCiAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQgkJMHg2 MTQwMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCBlMmIxODhkLi5lOTUzMzAz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwpAQCAtNDAyLDYgKzQwMiw4IEBAIHN0 YXRpYyB2b2lkIGludGVsX3VuY29yZV9lZHJhbV9kZXRlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgX19pbnRlbF91bmNvcmVfZWFybHlfc2FuaXRpemUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgIGJvb2wgcmVzdG9yZV9m b3JjZXdha2UpCiB7CisJc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZvID0gbWt3cml0ZV9k ZXZpY2VfaW5mbyhkZXZfcHJpdik7CisKIAkvKiBjbGVhciBvdXQgdW5jbGFpbWVkIHJlZyBkZXRl Y3Rpb24gYml0ICovCiAJaWYgKGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhkZXZfcHJpdikpCiAJ CURSTV9ERUJVRygidW5jbGFpbWVkIG1taW8gZGV0ZWN0ZWQgb24gdW5jb3JlIGluaXQsIGNsZWFy aW5nXG4iKTsKQEAgLTQxOSw2ICs0MjEsMTAgQEAgc3RhdGljIHZvaWQgX19pbnRlbF91bmNvcmVf ZWFybHlfc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAg IEdUX0ZJRk9fQ1RMX1JDNl9QT0xJQ1lfU1RBTEwpOwogCX0KIAorCS8qIEVuYWJsZSBEZWNvdXBs ZWQgTU1JTyBvbmx5IG9uIEJYVCBDIHN0ZXBwaW5nIG9ud2FyZHMgKi8KKwlpZiAoIUlTX0JYVF9S RVZJRChkZXZfcHJpdiwgQlhUX1JFVklEX0MwLCBSRVZJRF9GT1JFVkVSKSkKKwkJaW5mby0+aGFz X2RlY291cGxlZF9tbWlvID0gZmFsc2U7CisKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3Jlc2V0 KGRldl9wcml2LCByZXN0b3JlX2ZvcmNld2FrZSk7CiB9CiAKQEAgLTgzMSw2ICs4MzcsNjYgQEAg c3RhdGljIGJvb2wgaXNfZ2VuOF9zaGFkb3dlZCh1MzIgb2Zmc2V0KQogCV9fdW5jbGFpbWVkX3Jl Z19kZWJ1ZyhkZXZfcHJpdiwgcmVnLCByZWFkLCBiZWZvcmUpOwogfQogCitzdGF0aWMgY29uc3Qg ZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIGZ3MmRwZF9kb21haW5bXSA9IHsKKwlHRU45X0RF Q09VUExFRF9QRF9SRU5ERVIsCisJR0VOOV9ERUNPVVBMRURfUERfQkxJVFRFUiwKKwlHRU45X0RF Q09VUExFRF9QRF9BTEwsCisJR0VOOV9ERUNPVVBMRURfUERfTUVESUEsCisJR0VOOV9ERUNPVVBM RURfUERfQUxMLAorCUdFTjlfREVDT1VQTEVEX1BEX0FMTCwKKwlHRU45X0RFQ09VUExFRF9QRF9B TEwKK307CisKKy8qCisgKiBEZWNvdXBsZWQgTU1JTyBhY2Nlc3MgZm9yIG9ubHkgMSBEV09SRAor ICovCitzdGF0aWMgdm9pZCBfX2dlbjlfZGVjb3VwbGVkX21taW9fYWNjZXNzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJIHUzMiByZWcsCisJCQkJCSBlbnVtIGZvcmNl d2FrZV9kb21haW5zIGZ3X2RvbWFpbiwKKwkJCQkJIGVudW0gZGVjb3VwbGVkX29wcyBvcGVyYXRp b24pCit7CisJZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWluIGRwX2RvbWFpbjsKKwl1MzIgY3Ry bF9yZWdfZGF0YSA9IDA7CisKKwlkcF9kb21haW4gPSBmdzJkcGRfZG9tYWluW2Z3X2RvbWFpbiAt IDFdOworCisJY3RybF9yZWdfZGF0YSB8PSByZWc7CisJY3RybF9yZWdfZGF0YSB8PSAob3BlcmF0 aW9uIDw8IEdFTjlfREVDT1VQTEVEX09QX1NISUZUKTsKKwljdHJsX3JlZ19kYXRhIHw9IChkcF9k b21haW4gPDwgR0VOOV9ERUNPVVBMRURfUERfU0hJRlQpOworCWN0cmxfcmVnX2RhdGEgfD0gR0VO OV9ERUNPVVBMRURfRFcxX0dPOworCV9fcmF3X2k5MTVfd3JpdGUzMihkZXZfcHJpdiwgR0VOOV9E RUNPVVBMRURfUkVHMF9EVzEsIGN0cmxfcmVnX2RhdGEpOworCisJaWYgKHdhaXRfZm9yX2F0b21p YygoX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsCisJCQkgICAgR0VOOV9ERUNPVVBMRURfUkVH MF9EVzEpICYKKwkJCSAgICBHRU45X0RFQ09VUExFRF9EVzFfR08pID09IDAsCisJCQkgICAgRk9S Q0VXQUtFX0FDS19USU1FT1VUX01TKSkKKwkJRFJNX0VSUk9SKCJEZWNvdXBsZWQgTU1JTyB3YWl0 IHRpbWVkIG91dFxuIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyCitfX2dlbjlfZGVjb3VwbGVk X21taW9fcmVhZDMyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAg dTMyIHJlZywKKwkJCSAgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW4pCit7CisJ X19nZW45X2RlY291cGxlZF9tbWlvX2FjY2VzcyhkZXZfcHJpdiwgcmVnLCBmd19kb21haW4sCisJ CQkJICAgICBHRU45X0RFQ09VUExFRF9PUF9SRUFEKTsKKworCXJldHVybiBfX3Jhd19pOTE1X3Jl YWQzMihkZXZfcHJpdiwgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzApOworfQorCitzdGF0aWMgaW5s aW5lIHZvaWQKK19fZ2VuOV9kZWNvdXBsZWRfbW1pb193cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgdTMyIHJlZywgdTMyIGRhdGEsCisJCQkgICAgZW51bSBm b3JjZXdha2VfZG9tYWlucyBmd19kb21haW4pCit7CisKKwlfX3Jhd19pOTE1X3dyaXRlMzIoZGV2 X3ByaXYsIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcwLCBkYXRhKTsKKworCV9fZ2VuOV9kZWNvdXBs ZWRfbW1pb19hY2Nlc3MoZGV2X3ByaXYsIHJlZywgZndfZG9tYWluLAorCQkJCSAgICAgR0VOOV9E RUNPVVBMRURfT1BfV1JJVEUpOworfQorCisKICNkZWZpbmUgR0VOMl9SRUFEX0hFQURFUih4KSBc CiAJdSMjeCB2YWwgPSAwOyBcCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsK QEAgLTkzNSw2ICsxMDAxLDI4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ZvcmNlX3dha2VfYXV0 byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJR0VONl9SRUFEX0ZPT1RFUjsg XAogfQogCisjZGVmaW5lIF9fZ2VuOV9kZWNvdXBsZWRfcmVhZCh4KSBcCitzdGF0aWMgdSMjeCBc CitnZW45X2RlY291cGxlZF9yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgXAorCQkgICAgICAgaTkxNV9yZWdfdCByZWcsIGJvb2wgdHJhY2UpIHsgXAorCWVudW0gZm9y Y2V3YWtlX2RvbWFpbnMgZndfZW5naW5lOyBcCisJR0VONl9SRUFEX0hFQURFUih4KTsgXAorCWZ3 X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdfcmVhZF9md19kb21haW5zKG9mZnNldCk7IFwKKwlpZiAo ZndfZW5naW5lICYgfmRldl9wcml2LT51bmNvcmUuZndfZG9tYWluc19hY3RpdmUpIHsgXAorCQl1 bnNpZ25lZCBpOyBcCisJCXUzMiAqcHRyX2RhdGEgPSAodTMyICopICZ2YWw7IFwKKwkJZm9yIChp ID0gMDsgaSA8IHgvMzI7IGkrKywgb2Zmc2V0ICs9IHNpemVvZih1MzIpLCBwdHJfZGF0YSsrKSBc CisJCQkqcHRyX2RhdGEgPSBfX2dlbjlfZGVjb3VwbGVkX21taW9fcmVhZDMyKGRldl9wcml2LCBc CisJCQkJCQkJCSBvZmZzZXQsIFwKKwkJCQkJCQkJIGZ3X2VuZ2luZSk7IFwKKwl9IGVsc2UgeyBc CisJCXZhbCA9IF9fcmF3X2k5MTVfcmVhZCMjeChkZXZfcHJpdiwgcmVnKTsgXAorCX0gXAorCUdF TjZfUkVBRF9GT09URVI7IFwKK30KKworX19nZW45X2RlY291cGxlZF9yZWFkKDMyKQorX19nZW45 X2RlY291cGxlZF9yZWFkKDY0KQogX19md3RhYmxlX3JlYWQoOCkKIF9fZnd0YWJsZV9yZWFkKDE2 KQogX19md3RhYmxlX3JlYWQoMzIpCkBAIC0xMDY0LDYgKzExNTIsMjUgQEAgc3RhdGljIGlubGlu ZSB2b2lkIF9fZm9yY2Vfd2FrZV9hdXRvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlHRU42X1dSSVRFX0ZPT1RFUjsgXAogfQogCisjZGVmaW5lIF9fZ2VuOV9kZWNvdXBsZWRf d3JpdGUoeCkgXAorc3RhdGljIHZvaWQgXAorZ2VuOV9kZWNvdXBsZWRfd3JpdGUjI3goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBcCisJCQlpOTE1X3JlZ190IHJlZywgdSMjeCB2 YWwsIFwKKwkJYm9vbCB0cmFjZSkgeyBcCisJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19lbmdp bmU7IFwKKwlHRU42X1dSSVRFX0hFQURFUjsgXAorCWZ3X2VuZ2luZSA9IF9fZnd0YWJsZV9yZWdf d3JpdGVfZndfZG9tYWlucyhvZmZzZXQpOyBcCisJaWYgKGZ3X2VuZ2luZSAmIH5kZXZfcHJpdi0+ dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlKSBcCisJCV9fZ2VuOV9kZWNvdXBsZWRfbW1pb193cml0 ZShkZXZfcHJpdiwgXAorCQkJCQkgICAgb2Zmc2V0LCBcCisJCQkJCSAgICB2YWwsIFwKKwkJCQkJ ICAgIGZ3X2VuZ2luZSk7IFwKKwllbHNlIFwKKwkJX19yYXdfaTkxNV93cml0ZSMjeChkZXZfcHJp diwgcmVnLCB2YWwpOyBcCisJR0VONl9XUklURV9GT09URVI7IFwKK30KKworX19nZW45X2RlY291 cGxlZF93cml0ZSgzMikKIF9fZnd0YWJsZV93cml0ZSg4KQogX19md3RhYmxlX3dyaXRlKDE2KQog X19md3RhYmxlX3dyaXRlKDMyKQpAQCAtMTI4Nyw2ICsxMzk0LDE0IEBAIHZvaWQgaW50ZWxfdW5j b3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlBU1NJR05fRldf RE9NQUlOU19UQUJMRShfX2dlbjlfZndfcmFuZ2VzKTsKIAkJQVNTSUdOX1dSSVRFX01NSU9fVkZV TkNTKGZ3dGFibGUpOwogCQlBU1NJR05fUkVBRF9NTUlPX1ZGVU5DUyhmd3RhYmxlKTsKKwkJaWYg KEhBU19ERUNPVVBMRURfTU1JTyhkZXZfcHJpdikpIHsKKwkJCWRldl9wcml2LT51bmNvcmUuZnVu Y3MubW1pb19yZWFkbCA9CisJCQkJCQlnZW45X2RlY291cGxlZF9yZWFkMzI7CisJCQlkZXZfcHJp di0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZHEgPQorCQkJCQkJZ2VuOV9kZWNvdXBsZWRfcmVhZDY0 OworCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3dyaXRlbCA9CisJCQkJCQlnZW45X2Rl Y291cGxlZF93cml0ZTMyOworCQl9CiAJCWJyZWFrOwogCWNhc2UgODoKIAkJaWYgKElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKSB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==