From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Paneri Subject: [PATCH v3] drm/i915/bxt: Broxton decoupled MMIO Date: Tue, 4 Oct 2016 21:16:06 +0530 Message-ID: <1475595966-14754-1-git-send-email-praveen.paneri@intel.com> References: <8cbd4709-2b8c-2b33-8671-46afa45f5a99@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 C93C86E6C1 for ; Tue, 4 Oct 2016 15:42:25 +0000 (UTC) In-Reply-To: <8cbd4709-2b8c-2b33-8671-46afa45f5a99@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 YWQgYW5kIF9fZ2VuOV9kZWNvdXBsZWRfd3JpdGUgcm91dGluZXMgKFR2cnRrbykKClNpZ25lZC1v ZmYtYnk6IFpoZSBXYW5nIDx6aGUxLndhbmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQcmF2 ZWVuIFBhbmVyaSA8cHJhdmVlbi5wYW5lcmlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgIDE4ICsrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wY2kuYyAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAg ICAgfCAgIDcgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyB8IDExMyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTM4 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCBmOGM2NmVlLi5iZmRkNTVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTU1OSw2ICs1 NTksMTggQEAgZW51bSBmb3JjZXdha2VfZG9tYWlucyB7CiAjZGVmaW5lIEZXX1JFR19SRUFEICAo MSkKICNkZWZpbmUgRldfUkVHX1dSSVRFICgyKQogCitlbnVtIGRlY291cGxlZF9wb3dlcl9kb21h aW5zIHsKKwlHRU45X0RFQ09VUExFRF9QRF9CTElUVEVSID0gMCwKKwlHRU45X0RFQ09VUExFRF9Q RF9SRU5ERVIsCisJR0VOOV9ERUNPVVBMRURfUERfTUVESUEsCisJR0VOOV9ERUNPVVBMRURfUERf QUxMCit9OworCitlbnVtIGRlY291cGxlZF9vcHMgeworCUdFTjlfREVDT1VQTEVEX09QX1dSSVRF ID0gMCwKKwlHRU45X0RFQ09VUExFRF9PUF9SRUFECit9OworCiBlbnVtIGZvcmNld2FrZV9kb21h aW5zCiBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2Zvcl9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCQkJICAgICAgIGk5MTVfcmVnX3QgcmVnLCB1bnNpZ25lZCBpbnQgb3Ap OwpAQCAtNjkwLDcgKzcwMiw4IEBAIHN0cnVjdCBpbnRlbF9jc3IgewogCWZ1bmMoaGFzX3Nub29w KSBzZXAgXAogCWZ1bmMoaGFzX2RkaSkgc2VwIFwKIAlmdW5jKGhhc19mcGdhX2RiZykgc2VwIFwK LQlmdW5jKGhhc19wb29sZWRfZXUpCisJZnVuYyhoYXNfcG9vbGVkX2V1KSBzZXAgXAorCWZ1bmMo aGFzX2RlY291cGxlZF9tbWlvKQogCiAjZGVmaW5lIERFRklORV9GTEFHKG5hbWUpIHU4IG5hbWU6 MQogI2RlZmluZSBTRVBfU0VNSUNPTE9OIDsKQEAgLTI4NjksNiArMjg4Miw5IEBAIHN0cnVjdCBk cm1faTkxNV9jbWRfdGFibGUgewogI2RlZmluZSBHVF9GUkVRVUVOQ1lfTVVMVElQTElFUiA1MAog I2RlZmluZSBHRU45X0ZSRVFfU0NBTEVSIDMKIAorI2RlZmluZSBIQVNfREVDT1VQTEVEX01NSU8o ZGV2KSAoSU5URUxfSU5GTyhkZXYpLT5oYXNfZGVjb3VwbGVkX21taW8gXAorCQkmJiBJU19CWFRf UkVWSUQoZGV2LCBCWFRfUkVWSURfQzAsIFJFVklEX0ZPUkVWRVIpKQorCiAjaW5jbHVkZSAiaTkx NV90cmFjZS5oIgogCiBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfc2Nhbm91dF9uZWVkc192dGRf d2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNp LmMKaW5kZXggMzFlNmVkZC4uNWM1NmMwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCkBAIC0z NjAsNiArMzYwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRl bF9icm94dG9uX2luZm8gPSB7CiAJLmhhc19od19jb250ZXh0cyA9IDEsCiAJLmhhc19sb2dpY2Fs X3JpbmdfY29udGV4dHMgPSAxLAogCS5oYXNfZ3VjID0gMSwKKwkuaGFzX2RlY291cGxlZF9tbWlv ID0gMSwKIAkuZGRiX3NpemUgPSA1MTIsCiAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCiAJSVZC X0NVUlNPUl9PRkZTRVRTLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggOGQ0NGNlZS4uYmY3 YjRjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC03Mzk4LDYgKzczOTgsMTMgQEAgZW51 bSB7CiAjZGVmaW5lICBTS0xfRlVTRV9QRzFfRElTVF9TVEFUVVMgICAgICAgICAgICAgICgxPDwy NikKICNkZWZpbmUgIFNLTF9GVVNFX1BHMl9ESVNUX1NUQVRVUyAgICAgICAgICAgICAgKDE8PDI1 KQogCisvKiBEZWNvdXBsZWQgTU1JTyByZWdpc3RlciBwYWlyIGZvciBrZXJuZWwgZHJpdmVyICov CisjZGVmaW5lIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcwCQkJX01NSU8oMHhGMDApCisjZGVmaW5l IEdFTjlfREVDT1VQTEVEX1JFRzBfRFcxCQkJX01NSU8oMHhGMDQpCisjZGVmaW5lIEdFTjlfREVD T1VQTEVEX0RXMV9HTwkJCSgxPDwzMSkKKyNkZWZpbmUgR0VOOV9ERUNPVVBMRURfUERfU0hJRlQJ CQkyOAorI2RlZmluZSBHRU45X0RFQ09VUExFRF9PUF9TSElGVAkJCTI0CisKIC8qIFBlci1waXBl IERESSBGdW5jdGlvbiBDb250cm9sICovCiAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVExfQQkJ MHg2MDQwMAogI2RlZmluZSBfVFJBTlNfRERJX0ZVTkNfQ1RMX0IJCTB4NjE0MDAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggZTJiMTg4ZC4uMGFmNjAyZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTgzMSw2ICs4MzEsNzIgQEAgdW5jbGFpbWVkX3JlZ19k ZWJ1ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJX191bmNsYWltZWRfcmVn X2RlYnVnKGRldl9wcml2LCByZWcsIHJlYWQsIGJlZm9yZSk7CiB9CiAKK3N0YXRpYyBjb25zdCBl bnVtIGRlY291cGxlZF9wb3dlcl9kb21haW5zIGZ3MmRwZF9lbmdpbmVbXSA9IHsKKwlHRU45X0RF Q09VUExFRF9QRF9SRU5ERVIsCisJR0VOOV9ERUNPVVBMRURfUERfQkxJVFRFUiwKKwlHRU45X0RF Q09VUExFRF9QRF9BTEwsCisJR0VOOV9ERUNPVVBMRURfUERfTUVESUEsCisJR0VOOV9ERUNPVVBM RURfUERfQUxMLAorCUdFTjlfREVDT1VQTEVEX1BEX0FMTCwKKwlHRU45X0RFQ09VUExFRF9QRF9B TEwKK307CisKKy8qCisgKiBEZWNvdXBsZWQgTU1JTyBhY2Nlc3MgZm9yIG9ubHkgMSBEV09SRAor ICovCitzdGF0aWMgdm9pZCBfX2dlbjlfZGVjb3VwbGVkX21taW9fYWNjZXNzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJIHUzMiByZWcsCisJCQkJCSBlbnVtIGZvcmNl d2FrZV9kb21haW5zIGZ3X2VuZ2luZSwKKwkJCQkJIGVudW0gZGVjb3VwbGVkX29wcyBvcGVyYXRp b24pCit7CisJZW51bSBkZWNvdXBsZWRfcG93ZXJfZG9tYWlucyBkcGRfZW5naW5lOworCXUzMiBj dHJsX3JlZ19kYXRhID0gMDsKKworCWRwZF9lbmdpbmUgPSBmdzJkcGRfZW5naW5lW2Z3X2VuZ2lu ZSAtIDFdOworCisJY3RybF9yZWdfZGF0YSB8PSByZWc7CisJY3RybF9yZWdfZGF0YSB8PSAob3Bl cmF0aW9uIDw8IEdFTjlfREVDT1VQTEVEX09QX1NISUZUKTsKKwljdHJsX3JlZ19kYXRhIHw9IChk cGRfZW5naW5lIDw8IEdFTjlfREVDT1VQTEVEX1BEX1NISUZUKTsKKwlfX3Jhd19pOTE1X3dyaXRl MzIoZGV2X3ByaXYsIEdFTjlfREVDT1VQTEVEX1JFRzBfRFcxLCBjdHJsX3JlZ19kYXRhKTsKKwor CWN0cmxfcmVnX2RhdGEgfD0gR0VOOV9ERUNPVVBMRURfRFcxX0dPOworCV9fcmF3X2k5MTVfd3Jp dGUzMihkZXZfcHJpdiwgR0VOOV9ERUNPVVBMRURfUkVHMF9EVzEsIGN0cmxfcmVnX2RhdGEpOwor CisJaWYgKHdhaXRfZm9yX2F0b21pYygoX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsCisJCQlH RU45X0RFQ09VUExFRF9SRUcwX0RXMSkgJiBHRU45X0RFQ09VUExFRF9EVzFfR08pID09IDAsCisJ CQlGT1JDRVdBS0VfQUNLX1RJTUVPVVRfTVMpKQorCQlEUk1fRVJST1IoIkRlY291cGxlZCBNTUlP IHdhaXQgdGltZWQgb3V0XG4iKTsKK30KKworc3RhdGljIGlubGluZSB1MzIgX19nZW45X2RlY291 cGxlZF9tbWlvX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgcmVnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2VuZ2luZSkK K3sKKwlfX2dlbjlfZGVjb3VwbGVkX21taW9fYWNjZXNzKGRldl9wcml2LAorCQkJcmVnLAorCQkJ ZndfZW5naW5lLAorCQkJR0VOOV9ERUNPVVBMRURfT1BfUkVBRCk7CisKKwlyZXR1cm4gX19yYXdf aTkxNV9yZWFkMzIoZGV2X3ByaXYsCisJCQlHRU45X0RFQ09VUExFRF9SRUcwX0RXMCk7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZCBfX2dlbjlfZGVjb3VwbGVkX21taW9fd3JpdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1MzIgcmVnLCB1MzIgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19lbmdpbmUpCit7CisKKwlfX3Jhd19p OTE1X3dyaXRlMzIoZGV2X3ByaXYsCisJCQlHRU45X0RFQ09VUExFRF9SRUcwX0RXMCwKKwkJCWRh dGEpOworCisJX19nZW45X2RlY291cGxlZF9tbWlvX2FjY2VzcyhkZXZfcHJpdiwKKwkJCXJlZywK KwkJCWZ3X2VuZ2luZSwKKwkJCUdFTjlfREVDT1VQTEVEX09QX1dSSVRFKTsKK30KKworCiAjZGVm aW5lIEdFTjJfUkVBRF9IRUFERVIoeCkgXAogCXUjI3ggdmFsID0gMDsgXAogCWFzc2VydF9ycG1f d2FrZWxvY2tfaGVsZChkZXZfcHJpdik7CkBAIC05MzUsNiArMTAwMSwyNyBAQCBmd3RhYmxlX3Jl YWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpOTE1X3JlZ190IHJlZywg Ym9vbCB0cmFjZSkgewogCUdFTjZfUkVBRF9GT09URVI7IFwKIH0KIAorI2RlZmluZSBfX2dlbjlf ZGVjb3VwbGVkX3JlYWQoeCkgXAorc3RhdGljIHUjI3ggXAorZ2VuOV9kZWNvdXBsZWRfcmVhZCMj eChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGk5MTVfcmVnX3QgcmVnLCBib29s IHRyYWNlKSB7IFwKKwllbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2VuZ2luZTsgXAorCUdFTjZf UkVBRF9IRUFERVIoeCk7IFwKKwlmd19lbmdpbmUgPSBfX2Z3dGFibGVfcmVnX3JlYWRfZndfZG9t YWlucyhvZmZzZXQpOyBcCisJaWYgKCFmd19lbmdpbmUgfHwgIShmd19lbmdpbmUgJiB+ZGV2X3By aXYtPnVuY29yZS5md19kb21haW5zX2FjdGl2ZSkpIHsgXAorCQl2YWwgPSBfX3Jhd19pOTE1X3Jl YWQjI3goZGV2X3ByaXYsIHJlZyk7IFwKKwl9IGVsc2UgeyBcCisJCXVuc2lnbmVkIGk7IFwKKwkJ dTMyICpwdHJfZGF0YSA9ICh1MzIgKikgJnZhbDsgXAorCQlmb3IgKGkgPSAwOyBpIDwgeC8zMjsg aSsrLCBvZmZzZXQgKz0gc2l6ZW9mKHUzMiksIHB0cl9kYXRhKyspIFwKKwkJCSpwdHJfZGF0YSA9 IF9fZ2VuOV9kZWNvdXBsZWRfbW1pb19yZWFkKGRldl9wcml2LCBcCisJCQkJCQkgICAgIG9mZnNl dCwgXAorCQkJCQkJICAgICBmd19lbmdpbmUpOyBcCisJfSBcCisJR0VONl9SRUFEX0ZPT1RFUjsg XAorfQorCitfX2dlbjlfZGVjb3VwbGVkX3JlYWQoMzIpCitfX2dlbjlfZGVjb3VwbGVkX3JlYWQo NjQpCiBfX2Z3dGFibGVfcmVhZCg4KQogX19md3RhYmxlX3JlYWQoMTYpCiBfX2Z3dGFibGVfcmVh ZCgzMikKQEAgLTEwNjQsNiArMTE1MSwyNCBAQCBmd3RhYmxlX3dyaXRlIyN4KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaTkxNV9yZWdfdCByZWcsIHUjI3ggdmFsLCBibwogCUdF TjZfV1JJVEVfRk9PVEVSOyBcCiB9CiAKKyNkZWZpbmUgX19nZW45X2RlY291cGxlZF93cml0ZSh4 KSBcCitzdGF0aWMgdm9pZCBcCitnZW45X2RlY291cGxlZF93cml0ZSMjeChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGk5MTVfcmVnX3QgcmVnLCB1IyN4IHZhbCwgXAorCQlib29s IHRyYWNlKSB7IFwKKwllbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2VuZ2luZTsgXAorCUdFTjZf V1JJVEVfSEVBREVSOyBcCisJZndfZW5naW5lID0gX19md3RhYmxlX3JlZ193cml0ZV9md19kb21h aW5zKG9mZnNldCk7IFwKKwlpZiAoIWZ3X2VuZ2luZSB8fCAhKGZ3X2VuZ2luZSAmIH5kZXZfcHJp di0+dW5jb3JlLmZ3X2RvbWFpbnNfYWN0aXZlKSkgXAorCQlfX3Jhd19pOTE1X3dyaXRlIyN4KGRl dl9wcml2LCByZWcsIHZhbCk7IFwKKwllbHNlIFwKKwkJX19nZW45X2RlY291cGxlZF9tbWlvX3dy aXRlKGRldl9wcml2LCBcCisJCQkJCSAgICAgb2Zmc2V0LCBcCisJCQkJCSAgICAgdmFsLCBcCisJ CQkJCSAgICAgZndfZW5naW5lKTsgXAorCUdFTjZfV1JJVEVfRk9PVEVSOyBcCit9CisKK19fZ2Vu OV9kZWNvdXBsZWRfd3JpdGUoMzIpCiBfX2Z3dGFibGVfd3JpdGUoOCkKIF9fZnd0YWJsZV93cml0 ZSgxNikKIF9fZnd0YWJsZV93cml0ZSgzMikKQEAgLTEyODcsNiArMTM5MiwxNCBAQCB2b2lkIGlu dGVsX3VuY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJQVNT SUdOX0ZXX0RPTUFJTlNfVEFCTEUoX19nZW45X2Z3X3Jhbmdlcyk7CiAJCUFTU0lHTl9XUklURV9N TUlPX1ZGVU5DUyhmd3RhYmxlKTsKIAkJQVNTSUdOX1JFQURfTU1JT19WRlVOQ1MoZnd0YWJsZSk7 CisJCWlmIChIQVNfREVDT1VQTEVEX01NSU8oZGV2X3ByaXYpKSB7CisJCQlkZXZfcHJpdi0+dW5j b3JlLmZ1bmNzLm1taW9fcmVhZGwgPQorCQkJCQkJZ2VuOV9kZWNvdXBsZWRfcmVhZDMyOworCQkJ ZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3JlYWRxID0KKwkJCQkJCWdlbjlfZGVjb3VwbGVk X3JlYWQ2NDsKKwkJCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb193cml0ZWwgPQorCQkJCQkJ Z2VuOV9kZWNvdXBsZWRfd3JpdGUzMjsKKwkJfQogCQlicmVhazsKIAljYXNlIDg6CiAJCWlmIChJ U19DSEVSUllWSUVXKGRldl9wcml2KSkgewotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=