From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 2/2] drm/i915/hsw+: Add support for multiple power well regs Date: Mon, 14 Aug 2017 18:15:30 +0300 Message-ID: <20170814151530.24154-2-imre.deak@intel.com> References: <20170814151530.24154-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7CEAF6E1AA for ; Mon, 14 Aug 2017 15:15:35 +0000 (UTC) In-Reply-To: <20170814151530.24154-1-imre.deak@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: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnV0dXJlIHBsYXRmb3JtcyBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHBvd2VyIHdlbGxzIHdoaWNo IHJlcXVpcmUKYWRkaXRpb25hbCBjb250cm9sIHJlZ2lzdGVycy4gQSBjb252ZW5pZW50IHdheSB0 byBzZWxlY3QgdGhlIGNvcnJlY3QKcmVnaXN0ZXIgaXMgdG8gdXNlIHRoZSBoaWdoIGJpdHMgb2Yg dGhlIHBvd2VyIHdlbGwgSUQgYXMgaW5kZXguIFRoaXMKcGF0Y2ggb25seSBwcmVwYXJlcyBmb3Ig dGhpcywgd2hpbGUgdXBjb21pbmcgcGxhdGZvcm0gZW5hYmxpbmcgcGF0Y2hlcwp3aWxsIGFkZCB0 aGUgYWN0dWFsIG5ldyBwb3dlciB3ZWxsIElEcyBhbmQgY29ycmVzcG9uZGluZyBwb3dlciB3ZWxs CmNvbnRyb2wgcmVnaXN0ZXJzLgoKQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50 ZWwuY29tPgpDYzogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+CkNjOiBS YWtzaG1pIEJoYXRpYSA8cmFrc2htaS5iaGF0aWFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJ bXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBBbmltZXNoIE1hbm5h IDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFJha3NobWkgQmhhdGlhIDxy YWtzaG1pLmJoYXRpYUBpbnRlbC5jb20+CgotLS0KClsgQWRkZWQgZG9jdW1lbnRhdGlvbiBmb3Ig dGhlIGxheW91dCBvZiBwb3dlciB3ZWxsIHJlcXVlc3QgYW5kCiAgc3RhdHVzIGZsYWdzIGFzIHJl cXVlc3RlZCBieSBSYWtzaG1pLiBdCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRs ZXJzLmMgICAgIHwgMTkgKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8ICA2ICsrKystLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMzcgKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDMzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMKaW5kZXggMjQ5OGJjMTRlM2Rk Li41ODY1NTQ1NjBlZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5k bGVycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jCkBAIC0yMjQ0 LDEwICsyMjQ0LDE0IEBAIHN0YXRpYyBpbnQgaW5pdF9nZW5lcmljX21taW9faW5mbyhzdHJ1Y3Qg aW50ZWxfZ3Z0ICpndnQpCiAJTU1JT19EKEdFTjZfUkM2cF9USFJFU0hPTEQsIERfQUxMKTsKIAlN TUlPX0QoR0VONl9SQzZwcF9USFJFU0hPTEQsIERfQUxMKTsKIAlNTUlPX0QoR0VONl9QTUlOVFJN U0ssIERfQUxMKTsKLQlNTUlPX0RIKEhTV19QV1JfV0VMTF9CSU9TLCBEX0JEVywgTlVMTCwgcG93 ZXJfd2VsbF9jdGxfbW1pb193cml0ZSk7Ci0JTU1JT19ESChIU1dfUFdSX1dFTExfRFJJVkVSLCBE X0JEVywgTlVMTCwgcG93ZXJfd2VsbF9jdGxfbW1pb193cml0ZSk7Ci0JTU1JT19ESChIU1dfUFdS X1dFTExfS1ZNUiwgRF9CRFcsIE5VTEwsIHBvd2VyX3dlbGxfY3RsX21taW9fd3JpdGUpOwotCU1N SU9fREgoSFNXX1BXUl9XRUxMX0RFQlVHLCBEX0JEVywgTlVMTCwgcG93ZXJfd2VsbF9jdGxfbW1p b193cml0ZSk7CisJLyogVXNlIGFuIGFyYml0cmFyeSBwb3dlciB3ZWxsIGNvbnRyb2xsZWQgYnkg dGhlIFBXUl9XRUxMX0NUTCByZWdpc3RlciAqLworCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTF9C SU9TKEhTV19ESVNQX1BXX0dMT0JBTCksIERfQkRXLCBOVUxMLAorCQlwb3dlcl93ZWxsX2N0bF9t bWlvX3dyaXRlKTsKKwlNTUlPX0RIKEhTV19QV1JfV0VMTF9DVExfRFJJVkVSKEhTV19ESVNQX1BX X0dMT0JBTCksIERfQkRXLCBOVUxMLAorCQlwb3dlcl93ZWxsX2N0bF9tbWlvX3dyaXRlKTsKKwlN TUlPX0RIKEhTV19QV1JfV0VMTF9DVExfS1ZNUiwgRF9CRFcsIE5VTEwsIHBvd2VyX3dlbGxfY3Rs X21taW9fd3JpdGUpOworCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTF9ERUJVRyhIU1dfRElTUF9Q V19HTE9CQUwpLCBEX0JEVywgTlVMTCwKKwkJcG93ZXJfd2VsbF9jdGxfbW1pb193cml0ZSk7CiAJ TU1JT19ESChIU1dfUFdSX1dFTExfQ1RMNSwgRF9CRFcsIE5VTEwsIHBvd2VyX3dlbGxfY3RsX21t aW9fd3JpdGUpOwogCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTDYsIERfQkRXLCBOVUxMLCBwb3dl cl93ZWxsX2N0bF9tbWlvX3dyaXRlKTsKIApAQCAtMjYzOCw5ICsyNjQyLDEwIEBAIHN0YXRpYyBp bnQgaW5pdF9za2xfbW1pb19pbmZvKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCkKIAlNTUlPX0YoX0RQ RF9BVVhfQ0hfQ1RMLCA2ICogNCwgMCwgMCwgMCwgRF9TS0xfUExVUywgTlVMTCwKIAkJCQkJCWRw X2F1eF9jaF9jdGxfbW1pb193cml0ZSk7CiAKLQlNTUlPX0QoSFNXX1BXUl9XRUxMX0JJT1MsIERf U0tMX1BMVVMpOwotCU1NSU9fREgoSFNXX1BXUl9XRUxMX0RSSVZFUiwgRF9TS0xfUExVUywgTlVM TCwKLQkJCQkJCXNrbF9wb3dlcl93ZWxsX2N0bF93cml0ZSk7CisJLyogVXNlIGFuIGFyYml0cmFy eSBwb3dlciB3ZWxsIGNvbnRyb2xsZWQgYnkgdGhlIFBXUl9XRUxMX0NUTCByZWdpc3RlciAqLwor CU1NSU9fRChIU1dfUFdSX1dFTExfQ1RMX0JJT1MoU0tMX0RJU1BfUFdfTUlTQ19JTyksIERfU0tM X1BMVVMpOworCU1NSU9fREgoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoU0tMX0RJU1BfUFdfTUlT Q19JTyksIERfU0tMX1BMVVMsIE5VTEwsCisJCXNrbF9wb3dlcl93ZWxsX2N0bF93cml0ZSk7CiAJ TU1JT19ESChHRU42X1BDT0RFX01BSUxCT1gsIERfU0tMX1BMVVMsIE5VTEwsIG1haWxib3hfd3Jp dGUpOwogCiAJTU1JT19EKDB4YTIxMCwgRF9TS0xfUExVUyk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAppbmRleCA0NGI4ZGExOWEyYTAuLmIyZDc4NTk2OWQxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCkBAIC0xMjU0LDEzICsxMjU0LDEzIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKIAog CS8qCiAJICogSFNXL0JEVwotCSAqICAtIEhTV19QV1JfV0VMTF9EUklWRVIgKHN0YXR1cyBiaXQ6 IGlkKjIsIHJlcSBiaXQ6IGlkKjIrMSkKKwkgKiAgLSBIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUigw KSAoc3RhdHVzIGJpdDogaWQqMiwgcmVxIGJpdDogaWQqMisxKQogCSAqLwogCUhTV19ESVNQX1BX X0dMT0JBTCA9IDE1LAogCiAJLyoKIAkgKiBHRU45KwotCSAqICAtIEhTV19QV1JfV0VMTF9EUklW RVIgKHN0YXR1cyBiaXQ6IGlkKjIsIHJlcSBiaXQ6IGlkKjIrMSkKKwkgKiAgLSBIU1dfUFdSX1dF TExfQ1RMX0RSSVZFUigwKSAoc3RhdHVzIGJpdDogaWQqMiwgcmVxIGJpdDogaWQqMisxKQogCSAq LwogCVNLTF9ESVNQX1BXX01JU0NfSU8gPSAwLAogCVNLTF9ESVNQX1BXX0RESV9BX0UsCkBAIC04 MTg5LDExICs4MTg5LDI5IEBAIGVudW0gewogI2RlZmluZSAgIFNLTF9BVURfQ09ERUNfV0FLRV9T SUdOQUwJCSgxIDw8IDE1KQogCiAvKiBIU1cgUG93ZXIgV2VsbHMgKi8KLSNkZWZpbmUgSFNXX1BX Ul9XRUxMX0JJT1MJCQlfTU1JTygweDQ1NDAwKSAvKiBDVEwxICovCi0jZGVmaW5lIEhTV19QV1Jf V0VMTF9EUklWRVIJCQlfTU1JTygweDQ1NDA0KSAvKiBDVEwyICovCi0jZGVmaW5lIEhTV19QV1Jf V0VMTF9LVk1SCQkJX01NSU8oMHg0NTQwOCkgLyogQ1RMMyAqLwotI2RlZmluZSBIU1dfUFdSX1dF TExfREVCVUcJCQlfTU1JTygweDQ1NDBDKSAvKiBDVEw0ICovCi0jZGVmaW5lIF9IU1dfUFdfU0hJ RlQocHcpCQkJKChwdykgKiAyKQorI2RlZmluZSBfSFNXX1BXUl9XRUxMX0NUTDEJCQkweDQ1NDAw CisjZGVmaW5lIF9IU1dfUFdSX1dFTExfQ1RMMgkJCTB4NDU0MDQKKyNkZWZpbmUgX0hTV19QV1Jf V0VMTF9DVEwzCQkJMHg0NTQwOAorI2RlZmluZSBfSFNXX1BXUl9XRUxMX0NUTDQJCQkweDQ1NDBD CisKKy8qCisgKiBFYWNoIHBvd2VyIHdlbGwgY29udHJvbCByZWdpc3RlciBjb250YWlucyB1cCB0 byAxNiAocmVxdWVzdCwgc3RhdHVzKSBIVworICogZmxhZyB0dXBsZXMuIFRoZSByZWdpc3RlciBp bmRleCBhbmQgSFcgZmxhZyBzaGlmdCBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICogcG93ZXIgd2Vs bCBJRCAoc2VlIGk5MTVfcG93ZXJfd2VsbF9pZCkuIFRoZXJlIGFyZSA0IHBvc3NpYmxlIHNvdXJj ZXMgb2YKKyAqIHBvd2VyIHdlbGwgcmVxdWVzdHMgZWFjaCBzb3VyY2UgaGF2aW5nIGl0cyBvd24g c2V0IG9mIGNvbnRyb2wgcmVnaXN0ZXJzOgorICogQklPUywgRFJJVkVSLCBLVk1SLCBERUJVRy4K KyAqLworI2RlZmluZSBfSFNXX1BXX1JFR19JRFgocHcpCQkJKChwdykgPj4gNCkKKyNkZWZpbmUg X0hTV19QV19TSElGVChwdykJCQkoKChwdykgJiAweGYpICogMikKKy8qIFRPRE86IEFkZCBhbGwg UFdSX1dFTExfQ1RMIHJlZ2lzdGVycyBiZWxvdyBmb3IgbmV3IHBsYXRmb3JtcyAqLworI2RlZmlu ZSBIU1dfUFdSX1dFTExfQ1RMX0JJT1MocHcpCV9NTUlPKF9QSUNLKF9IU1dfUFdfUkVHX0lEWChw dyksICAgICAgIFwKKwkJCQkJCSAgICBfSFNXX1BXUl9XRUxMX0NUTDEpKQorI2RlZmluZSBIU1df UFdSX1dFTExfQ1RMX0RSSVZFUihwdykJX01NSU8oX1BJQ0soX0hTV19QV19SRUdfSURYKHB3KSwg ICAgICAgXAorCQkJCQkJICAgIF9IU1dfUFdSX1dFTExfQ1RMMikpCisjZGVmaW5lIEhTV19QV1Jf V0VMTF9DVExfS1ZNUgkJX01NSU8oX0hTV19QV1JfV0VMTF9DVEwzKQorI2RlZmluZSBIU1dfUFdS X1dFTExfQ1RMX0RFQlVHKHB3KQlfTU1JTyhfUElDSyhfSFNXX1BXX1JFR19JRFgocHcpLCAgICAg ICBcCisJCQkJCQkgICAgX0hTV19QV1JfV0VMTF9DVEw0KSkKKwogI2RlZmluZSAgIEhTV19QV1Jf V0VMTF9DVExfUkVRKHB3KQkJKDEgPDwgKF9IU1dfUFdfU0hJRlQocHcpICsgMSkpCiAjZGVmaW5l ICAgSFNXX1BXUl9XRUxMX0NUTF9TVEFURShwdykJCSgxIDw8IF9IU1dfUFdfU0hJRlQocHcpKQog I2RlZmluZSBIU1dfUFdSX1dFTExfQ1RMNQkJCV9NTUlPKDB4NDU0MTApCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYmVmZjEzOGU5YjkyLi5iMGNmNjc4YjEwZmUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTg3NjgsNyArODc2OCw4IEBAIHN0YXRp YyB2b2lkIGFzc2VydF9jYW5fZGlzYWJsZV9sY3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCUk5MTVfU1RBVEVfV0FSTihjcnRjLT5hY3RpdmUsICJDUlRDIGZvciBwaXBl ICVjIGVuYWJsZWRcbiIsCiAJCSAgICAgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsKIAotCUk5MTVf U1RBVEVfV0FSTihJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0RSSVZFUiksICJQb3dlciB3ZWxsIG9u XG4iKTsKKwlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9DVExfRFJJVkVS KEhTV19ESVNQX1BXX0dMT0JBTCkpLAorCQkJIkRpc3BsYXkgcG93ZXIgd2VsbCBvblxuIik7CiAJ STkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChTUExMX0NUTCkgJiBTUExMX1BMTF9FTkFCTEUsICJT UExMIGVuYWJsZWRcbiIpOwogCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoV1JQTExfQ1RMKDAp KSAmIFdSUExMX1BMTF9FTkFCTEUsICJXUlBMTDEgZW5hYmxlZFxuIik7CiAJSTkxNV9TVEFURV9X QVJOKEk5MTVfUkVBRChXUlBMTF9DVEwoMSkpICYgV1JQTExfUExMX0VOQUJMRSwgIldSUExMMiBl bmFibGVkXG4iKTsKQEAgLTE1MzA5LDcgKzE1MzEwLDggQEAgaW50ZWxfZGlzcGxheV9jYXB0dXJl X2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJu IE5VTEw7CiAKIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9w cml2KSkKLQkJZXJyb3ItPnBvd2VyX3dlbGxfZHJpdmVyID0gSTkxNV9SRUFEKEhTV19QV1JfV0VM TF9EUklWRVIpOworCQllcnJvci0+cG93ZXJfd2VsbF9kcml2ZXIgPQorCQkJSTkxNV9SRUFEKEhT V19QV1JfV0VMTF9DVExfRFJJVkVSKEhTV19ESVNQX1BXX0dMT0JBTCkpOwogCiAJZm9yX2VhY2hf cGlwZShkZXZfcHJpdiwgaSkgewogCQllcnJvci0+cGlwZVtpXS5wb3dlcl9kb21haW5fb24gPQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCmluZGV4IDZlMGM5ZDk5YmYwYS4u YjY2ZDhlMTM2YWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBA IC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIHZvaWQgaHN3X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZW5h YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCS8qIFRpbWVvdXQgZm9y IFBXMToxMCB1cywgQVVYOm5vdCBzcGVjaWZpZWQsIG90aGVyIFBXczoyMCB1cy4gKi8KIAlXQVJO X09OKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAotCQkJCQlIU1dfUFdSX1dFTExf RFJJVkVSLAorCQkJCQlIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCksCiAJCQkJCUhTV19QV1Jf V0VMTF9DVExfU1RBVEUoaWQpLAogCQkJCQlIU1dfUFdSX1dFTExfQ1RMX1NUQVRFKGlkKSwKIAkJ CQkJMSkpOwpAQCAtMzE5LDEwICszMTksMTAgQEAgc3RhdGljIHUzMiBoc3dfcG93ZXJfd2VsbF9y ZXF1ZXN0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIgcmVxX21h c2sgPSBIU1dfUFdSX1dFTExfQ1RMX1JFUShpZCk7CiAJdTMyIHJldDsKIAotCXJldCA9IEk5MTVf UkVBRChIU1dfUFdSX1dFTExfQklPUykgJiByZXFfbWFzayA/IDEgOiAwOwotCXJldCB8PSBJOTE1 X1JFQUQoSFNXX1BXUl9XRUxMX0RSSVZFUikgJiByZXFfbWFzayA/IDIgOiAwOwotCXJldCB8PSBJ OTE1X1JFQUQoSFNXX1BXUl9XRUxMX0tWTVIpICYgcmVxX21hc2sgPyA0IDogMDsKLQlyZXQgfD0g STkxNV9SRUFEKEhTV19QV1JfV0VMTF9ERUJVRykgJiByZXFfbWFzayA/IDggOiAwOworCXJldCA9 IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0JJT1MoaWQpKSAmIHJlcV9tYXNrID8gMSA6IDA7 CisJcmV0IHw9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCkpICYgcmVxX21h c2sgPyAyIDogMDsKKwlyZXQgfD0gSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9DVExfS1ZNUikgJiBy ZXFfbWFzayA/IDQgOiAwOworCXJldCB8PSBJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0NUTF9ERUJV RyhpZCkpICYgcmVxX21hc2sgPyA4IDogMDsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zNDMsNyAr MzQzLDcgQEAgc3RhdGljIHZvaWQgaHN3X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogU2tpcCB0aGUgd2FpdCBpbiBjYXNl IGFueSBvZiB0aGUgcmVxdWVzdCBiaXRzIGFyZSBzZXQgYW5kIHByaW50IGEKIAkgKiBkaWFnbm9z dGljIG1lc3NhZ2UuCiAJICovCi0Jd2FpdF9mb3IoKGRpc2FibGVkID0gIShJOTE1X1JFQUQoSFNX X1BXUl9XRUxMX0RSSVZFUikgJgorCXdhaXRfZm9yKChkaXNhYmxlZCA9ICEoSTkxNV9SRUFEKEhT V19QV1JfV0VMTF9DVExfRFJJVkVSKGlkKSkgJgogCQkJICAgICAgIEhTV19QV1JfV0VMTF9DVExf U1RBVEUoaWQpKSkgfHwKIAkJIChyZXFzID0gaHN3X3Bvd2VyX3dlbGxfcmVxdWVzdGVycyhkZXZf cHJpdiwgaWQpKSwgMSk7CiAJaWYgKGRpc2FibGVkKQpAQCAtMzg0LDggKzM4NCw4IEBAIHN0YXRp YyB2b2lkIGhzd19wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCQlnZW45X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZnVzZXMoZGV2X3ByaXYsIFNLTF9Q RzApOwogCX0KIAotCXZhbCA9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfRFJJVkVSKTsKLQlJOTE1 X1dSSVRFKEhTV19QV1JfV0VMTF9EUklWRVIsIHZhbCB8IEhTV19QV1JfV0VMTF9DVExfUkVRKGlk KSk7CisJdmFsID0gSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9DVExfRFJJVkVSKGlkKSk7CisJSTkx NV9XUklURShIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCksIHZhbCB8IEhTV19QV1JfV0VMTF9D VExfUkVRKGlkKSk7CiAJaHN3X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZW5hYmxlKGRldl9wcml2LCBw b3dlcl93ZWxsKTsKIAogCWlmICh3YWl0X2Z1c2VzKQpAQCAtNDAzLDggKzQwMyw5IEBAIHN0YXRp YyB2b2lkIGhzd19wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCiAJaHN3X3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUoZGV2X3ByaXYsIHBvd2VyX3dl bGwtPmhzdy5pcnFfcGlwZV9tYXNrKTsKIAotCXZhbCA9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExf RFJJVkVSKTsKLQlJOTE1X1dSSVRFKEhTV19QV1JfV0VMTF9EUklWRVIsIHZhbCAmIH5IU1dfUFdS X1dFTExfQ1RMX1JFUShpZCkpOworCXZhbCA9IEk5MTVfUkVBRChIU1dfUFdSX1dFTExfQ1RMX0RS SVZFUihpZCkpOworCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpLAorCQkg ICB2YWwgJiB+SFNXX1BXUl9XRUxMX0NUTF9SRVEoaWQpKTsKIAloc3dfd2FpdF9mb3JfcG93ZXJf d2VsbF9kaXNhYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKIH0KIApAQCAtNDE5LDE3ICs0MjAs MTkgQEAgc3RhdGljIGJvb2wgaHN3X3Bvd2VyX3dlbGxfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgaWQgPSBwb3dlcl93 ZWxsLT5pZDsKIAl1MzIgbWFzayA9IEhTV19QV1JfV0VMTF9DVExfUkVRKGlkKSB8IEhTV19QV1Jf V0VMTF9DVExfU1RBVEUoaWQpOwogCi0JcmV0dXJuIChJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0RS SVZFUikgJiBtYXNrKSA9PSBtYXNrOworCXJldHVybiAoSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9D VExfRFJJVkVSKGlkKSkgJiBtYXNrKSA9PSBtYXNrOwogfQogCiBzdGF0aWMgdm9pZCBhc3NlcnRf Y2FuX2VuYWJsZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogeworCWVu dW0gaTkxNV9wb3dlcl93ZWxsX2lkIGlkID0gU0tMX0RJU1BfUFdfMjsKKwogCVdBUk5fT05DRSgo STkxNV9SRUFEKERDX1NUQVRFX0VOKSAmIERDX1NUQVRFX0VOX0RDOSksCiAJCSAgIkRDOSBhbHJl YWR5IHByb2dyYW1tZWQgdG8gYmUgZW5hYmxlZC5cbiIpOwogCVdBUk5fT05DRShJOTE1X1JFQUQo RENfU1RBVEVfRU4pICYgRENfU1RBVEVfRU5fVVBUT19EQzUsCiAJCSAgIkRDNSBzdGlsbCBub3Qg ZGlzYWJsZWQgdG8gZW5hYmxlIERDOS5cbiIpOwotCVdBUk5fT05DRShJOTE1X1JFQUQoSFNXX1BX Ul9XRUxMX0RSSVZFUikgJgotCQkgIEhTV19QV1JfV0VMTF9DVExfUkVRKFNLTF9ESVNQX1BXXzIp LAorCVdBUk5fT05DRShJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpKSAmCisJ CSAgSFNXX1BXUl9XRUxMX0NUTF9SRVEoaWQpLAogCQkgICJQb3dlciB3ZWxsIDIgb24uXG4iKTsK IAlXQVJOX09OQ0UoaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSwKIAkJICAiSW50ZXJydXB0 cyBub3QgZGlzYWJsZWQgeWV0LlxuIik7CkBAIC02MzAsMTUgKzYzMywxNSBAQCBzdGF0aWMgdm9p ZCBoc3dfcG93ZXJfd2VsbF9zeW5jX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIHsKIAllbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCBpZCA9IHBvd2VyX3dlbGwtPmlkOwogCXUz MiBtYXNrID0gSFNXX1BXUl9XRUxMX0NUTF9SRVEoaWQpOwotCXUzMiBiaW9zX3JlcSA9IEk5MTVf UkVBRChIU1dfUFdSX1dFTExfQklPUyk7CisJdTMyIGJpb3NfcmVxID0gSTkxNV9SRUFEKEhTV19Q V1JfV0VMTF9DVExfQklPUyhpZCkpOwogCiAJLyogVGFrZSBvdmVyIHRoZSByZXF1ZXN0IGJpdCBp ZiBzZXQgYnkgQklPUy4gKi8KIAlpZiAoYmlvc19yZXEgJiBtYXNrKSB7Ci0JCXUzMiBkcnZfcmVx ID0gSTkxNV9SRUFEKEhTV19QV1JfV0VMTF9EUklWRVIpOworCQl1MzIgZHJ2X3JlcSA9IEk5MTVf UkVBRChIU1dfUFdSX1dFTExfQ1RMX0RSSVZFUihpZCkpOwogCiAJCWlmICghKGRydl9yZXEgJiBt YXNrKSkKLQkJCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RSSVZFUiwgZHJ2X3JlcSB8IG1hc2sp OwotCQlJOTE1X1dSSVRFKEhTV19QV1JfV0VMTF9CSU9TLCBiaW9zX3JlcSAmIH5tYXNrKTsKKwkJ CUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0NUTF9EUklWRVIoaWQpLCBkcnZfcmVxIHwgbWFzayk7 CisJCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0NUTF9CSU9TKGlkKSwgYmlvc19yZXEgJiB+bWFz ayk7CiAJfQogfQogCi0tIAoyLjEzLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=