From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 RESEND 3/6] drm/i915/bxt: Move DDI PHY enabling/disabling to the power well code Date: Mon, 13 Jun 2016 16:44:34 +0300 Message-ID: <1465825477-32671-3-git-send-email-imre.deak@intel.com> References: <1465825477-32671-1-git-send-email-imre.deak@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 ESMTP id 264AE6E5EE for ; Mon, 13 Jun 2016 13:44:41 +0000 (UTC) In-Reply-To: <1465825477-32671-1-git-send-email-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 List-Id: intel-gfx@lists.freedesktop.org U28gZmFyIHdlIGRlcGVuZGVkIG9uIHRoZSBIVyB0byBkeW5hbWljYWxseSBwb3dlciBkb3duIHVu dXNlZCBQSFlzIGFuZApzbyB3ZSBlbmFibGVkIHRoZW0gbWFudWFsbHkgb25jZSBkdXJpbmcgZHJp dmVyIGxvYWRpbmcvcmVzdW1pbmcuIFRoZXJlCmFyZSBpbmRpY2F0aW9ucyBob3dldmVyIHRoYXQg d2UgY2FuIGFjaGlldmUgYmV0dGVyIHBvd2VyIHNhdmluZ3MgYnkKbWFudWFsIHBvd2VyaW5nIHRv Z2dsaW5nLiBTbyBtYWtlIHRoZSBQSFkgZW5hYmxpbmcvZGlzYWJsaW5nIHRvIGhhcHBlbgpvbi1k ZW1hbmQgd2hlbmV2ZXIgd2UgbmVlZCBlaXRoZXIgdGhlIGNvcnJlc3BvbmRpbmcgQVVYIG9yIHBv cnQKZnVuY3Rpb25hbGl0eS4gQ0hWIGRvZXMgdGhpcyBhbHJlYWR5IGJ5IGVuYWJsaW5nIHRoZSBQ SFkgYWxvbmcgdGhlCmNvcnJlc3BvbmRpbmcgUEhZIGNvbW1vbiBsYW5lIHBvd2VyIHdlbGxzIHRo ZXJlLCBkbyB0aGUgc2FtZSBvbiBCWFQgYnkKYWRkaW5nIHZpcnR1YWwgcG93ZXIgd2VsbHMgZm9y IHRoZSBzYW1lIHB1cnBvc2UuCgpBbHNvIHNhbml0eSBjaGVjayB0aGUgY29tbW9uIGxhbmUgcG93 ZXIgZG93biBhY2sgc2lnbmFsIGZyb20gdGhlIFBIWS4gRG8KdGhpcyBvbmx5IHdoZW4gdGhlIFBI WSBpcyBlbmFibGVkLCBzaW5jZSBpdCdzIG5vdCBjbGVhciBhdCB3aGF0IHBvaW50CnRoZSBIVyBw b3dlci9jbG9jayBnYXRlcyB0aGluZ3MuCgpXaGlsZSBhdCBpdCByZW5hbWUgYnJveHRvbl8gcHJl Zml4IHRvIGJ4dF8gaW4gcmVsYXRlZCBmdW5jdGlvbiBuYW1lcyB0bwpiZXR0ZXIgYWxpZ24gd2l0 aCB0aGUgU0tMIGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRl bC5jb20+ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICB8 ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgfCAgNDYgKysr LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAg OSArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDEwNiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0 aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggODFk MTg5Ni4uNmNhYTVhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC03MTYsNiArNzE2LDkg QEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7CiAJLyogTm90IGFjdHVhbCBiaXQgZ3JvdXBz LiBVc2VkIGFzIElEcyBmb3IgbG9va3VwX3Bvd2VyX3dlbGwoKSAqLwogCVNLTF9ESVNQX1BXX0FM V0FZU19PTiwKIAlTS0xfRElTUF9QV19EQ19PRkYsCisKKwlCWFRfRFBJT19DTU5fQSwKKwlCWFRf RFBJT19DTU5fQkMsCiB9OwogCiAjZGVmaW5lIFNLTF9QT1dFUl9XRUxMX1NUQVRFKHB3KSAoMSA8 PCAoKHB3KSAqIDIpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwppbmRleCBiMTBjN2I1Li5kZWU2 ZGQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMTc0Miw4ICsxNzQyLDggQEAgc3Rh dGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIpCiAJfQogfQogCi1zdGF0aWMgYm9vbCBicm94dG9uX3BoeV9pc19lbmFibGVkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICBlbnVtIGRwaW9fcGh5IHBoeSkK K2Jvb2wgYnh0X2RkaV9waHlfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCisJCQkgICAgZW51bSBkcGlvX3BoeSBwaHkpCiB7CiAJaWYgKCEoSTkxNV9SRUFEKEJY VF9QX0NSX0dUX0RJU1BfUFdST04pICYgR1RfRElTUExBWV9QT1dFUl9PTihwaHkpKSkKIAkJcmV0 dXJuIGZhbHNlOwpAQCAtMTc4NywyMSArMTc4NywxNyBAQCBzdGF0aWMgdm9pZCBicm94dG9uX3Bo eV93YWl0X2dyY19kb25lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJRFJN X0VSUk9SKCJ0aW1lb3V0IHdhaXRpbmcgZm9yIFBIWSVkIEdSQ1xuIiwgcGh5KTsKIH0KIAotc3Rh dGljIGJvb2wgYnJveHRvbl9waHlfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKLQkJCQkgICAgIGVudW0gZHBpb19waHkgcGh5KTsKLQotc3RhdGljIHZvaWQg YnJveHRvbl9waHlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkg ICAgIGVudW0gZHBpb19waHkgcGh5KQordm9pZCBieHRfZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBkcGlvX3BoeSBwaHkpCiB7CiAJZW51bSBwb3J0 IHBvcnQ7CiAJdTMyIHBvcnRzLCB2YWw7CiAKLQlpZiAoYnJveHRvbl9waHlfaXNfZW5hYmxlZChk ZXZfcHJpdiwgcGh5KSkgeworCWlmIChieHRfZGRpX3BoeV9pc19lbmFibGVkKGRldl9wcml2LCBw aHkpKSB7CiAJCS8qIFN0aWxsIHJlYWQgb3V0IHRoZSBHUkMgdmFsdWUgZm9yIHN0YXRlIHZlcmlm aWNhdGlvbiAqLwogCQlpZiAocGh5ID09IERQSU9fUEhZMCkKIAkJCWRldl9wcml2LT5ieHRfcGh5 X2dyYyA9IGJyb3h0b25fZ2V0X2dyYyhkZXZfcHJpdiwgcGh5KTsKIAotCQlpZiAoYnJveHRvbl9w aHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwaHkpKSB7CisJCWlmIChieHRfZGRpX3BoeV92ZXJp Znlfc3RhdGUoZGV2X3ByaXYsIHBoeSkpIHsKIAkJCURSTV9ERUJVR19EUklWRVIoIkRESSBQSFkg JWQgYWxyZWFkeSBlbmFibGVkLCAiCiAJCQkJCSAid29uJ3QgcmVwcm9ncmFtIGl0XG4iLCBwaHkp OwogCkBAIC0xODEwLDggKzE4MDYsNiBAQCBzdGF0aWMgdm9pZCBicm94dG9uX3BoeV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCQlEUk1fREVCVUdfRFJJVkVSKCJE REkgUEhZICVkIGVuYWJsZWQgd2l0aCBpbnZhbGlkIHN0YXRlLCAiCiAJCQkJICJmb3JjZSByZXBy b2dyYW1taW5nIGl0XG4iLCBwaHkpOwotCX0gZWxzZSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkRE SSBQSFkgJWQgbm90IGVuYWJsZWQsIGVuYWJsaW5nIGl0XG4iLCBwaHkpOwogCX0KIAogCXZhbCA9 IEk5MTVfUkVBRChCWFRfUF9DUl9HVF9ESVNQX1BXUk9OKTsKQEAgLTE5MTksMTUgKzE5MTMsNyBA QCBzdGF0aWMgdm9pZCBicm94dG9uX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJYnJveHRvbl9waHlfd2FpdF9ncmNfZG9uZShkZXZfcHJpdiwgRFBJT19QSFkx KTsKIH0KIAotdm9pZCBicm94dG9uX2RkaV9waHlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCi17Ci0JLyogRW5hYmxlIFBIWTEgZmlyc3Qgc2luY2UgaXQgcHJvdmlkZXMg UmNvbXAgZm9yIFBIWTAgKi8KLQlicm94dG9uX3BoeV9pbml0KGRldl9wcml2LCBEUElPX1BIWTEp OwotCWJyb3h0b25fcGh5X2luaXQoZGV2X3ByaXYsIERQSU9fUEhZMCk7Ci19Ci0KLXN0YXRpYyB2 b2lkIGJyb3h0b25fcGh5X3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Ci0JCQkgICAgICAgZW51bSBkcGlvX3BoeSBwaHkpCit2b2lkIGJ4dF9kZGlfcGh5X3VuaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gZHBpb19waHkgcGh5KQogewog CXVpbnQzMl90IHZhbDsKIApAQCAtMTk0MCwxMiArMTkyNiw2IEBAIHN0YXRpYyB2b2lkIGJyb3h0 b25fcGh5X3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJSTkxNV9X UklURShCWFRfUF9DUl9HVF9ESVNQX1BXUk9OLCB2YWwpOwogfQogCi12b2lkIGJyb3h0b25fZGRp X3BoeV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWJyb3h0 b25fcGh5X3VuaW5pdChkZXZfcHJpdiwgRFBJT19QSFkxKTsKLQlicm94dG9uX3BoeV91bmluaXQo ZGV2X3ByaXYsIERQSU9fUEhZMCk7Ci19Ci0KIHN0YXRpYyBib29sIF9fcHJpbnRmKDYsIDcpCiBf X3BoeV9yZWdfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg ZW51bSBkcGlvX3BoeSBwaHksCiAJCSAgICAgICBpOTE1X3JlZ190IHJlZywgdTMyIG1hc2ssIHUz MiBleHBlY3RlZCwKQEAgLTE5NzMsOCArMTk1Myw4IEBAIF9fcGh5X3JlZ192ZXJpZnlfc3RhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSwKIAly ZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGJyb3h0b25fcGh5X3ZlcmlmeV9zdGF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICBlbnVtIGRwaW9fcGh5 IHBoeSkKK2Jvb2wgYnh0X2RkaV9waHlfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgIGVudW0gZHBpb19waHkgcGh5KQogewogCWVudW0gcG9y dCBwb3J0OwogCXUzMiBwb3J0czsKQEAgLTE5ODUsOCArMTk2NSw3IEBAIHN0YXRpYyBib29sIGJy b3h0b25fcGh5X3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJX19waHlfcmVnX3ZlcmlmeV9zdGF0ZShkZXZfcHJpdiwgcGh5LCByZWcsIG1hc2ssIGV4cCwg Zm10LAlcCiAJCQkgICAgICAgIyMgX19WQV9BUkdTX18pCiAKLQkvKiBXZSBleHBlY3QgdGhlIFBI WSB0byBiZSBhbHdheXMgZW5hYmxlZCAqLwotCWlmICghYnJveHRvbl9waHlfaXNfZW5hYmxlZChk ZXZfcHJpdiwgcGh5KSkKKwlpZiAoIWJ4dF9kZGlfcGh5X2lzX2VuYWJsZWQoZGV2X3ByaXYsIHBo eSkpCiAJCXJldHVybiBmYWxzZTsKIAogCW9rID0gdHJ1ZTsKQEAgLTIwNDksMTMgKzIwMjgsNiBA QCBzdGF0aWMgYm9vbCBicm94dG9uX3BoeV92ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogI3VuZGVmIF9DSEsKIH0KIAotdm9pZCBicm94dG9uX2RkaV9waHlf dmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlpZiAo IWJyb3h0b25fcGh5X3ZlcmlmeV9zdGF0ZShkZXZfcHJpdiwgRFBJT19QSFkwKSB8fAotCSAgICAh YnJveHRvbl9waHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBEUElPX1BIWTEpKQotCQlpOTE1X3Jl cG9ydF9lcnJvcihkZXZfcHJpdiwgIkRESSBQSFkgc3RhdGUgbWlzbWF0Y2hcbiIpOwotfQotCiB2 b2lkIGludGVsX2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBf dG9fZGlnX3BvcnQoaW50ZWxfZHApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAyNzBk YThkLi4wNjE0MTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTI2Miw5ICsxMjYy LDEyIEBAIHZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIHZvaWQgaHN3X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CiB2b2lkIGJyb3h0b25faW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogdm9pZCBicm94dG9uX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBicm94dG9uX2RkaV9waHlfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBicm94dG9uX2RkaV9waHlfdW5pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGJyb3h0b25fZGRpX3BoeV92ZXJp Znlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgYnh0X2Rk aV9waHlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gZHBpb19w aHkgcGh5KTsKK3ZvaWQgYnh0X2RkaV9waHlfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBkcGlvX3BoeSBwaHkpOworYm9vbCBieHRfZGRpX3BoeV9pc19lbmFi bGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICBlbnVtIGRwaW9f cGh5IHBoeSk7Citib29sIGJ4dF9kZGlfcGh5X3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgICBlbnVtIGRwaW9fcGh5IHBoeSk7CiB2b2lkIGdl bjlfc2FuaXRpemVfZGNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK IHZvaWQgYnh0X2VuYWJsZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK IHZvaWQgYnh0X2Rpc2FibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggMTA5NzhjYi4uN2U5 MTg4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtNjUsNiAr NjUsOSBAQAogYm9vbCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3dlbGxfaXNfZW5hYmxlZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIGludCBwb3dlcl93ZWxsX2lkKTsK IAorc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKgorbG9va3VwX3Bvd2VyX3dlbGwoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgcG93ZXJfd2VsbF9pZCk7CisKIGNv bnN0IGNoYXIgKgogaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW4gZG9tYWluKQogewpAQCAtNDM2LDYgKzQzOSwxNiBAQCBzdGF0aWMg dm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCUJJVChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKIAlCSVQoUE9XRVJfRE9NQUlOX0FV WF9BKSB8CQkJXAogCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisjZGVmaW5lIEJYVF9EUElPX0NN Tl9BX1BPV0VSX0RPTUFJTlMgKAkJCVwKKwlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfTEFO RVMpIHwJCVwKKwlCSVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAorCUJJVChQT1dFUl9ET01B SU5fSU5JVCkpCisjZGVmaW5lIEJYVF9EUElPX0NNTl9CQ19QT1dFUl9ET01BSU5TICgJCQlcCisJ QklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CQlcCisJQklUKFBPV0VSX0RPTUFJ Tl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCisJQklUKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJCVwK KwlCSVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJXAorCUJJVChQT1dFUl9ET01BSU5fSU5JVCkp CiAKIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZW5hYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7CkBAIC04MTcsNiArODMwLDcyIEBAIHN0YXRpYyB2b2lkIHNrbF9w b3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXNr bF9zZXRfcG93ZXJfd2VsbChkZXZfcHJpdiwgcG93ZXJfd2VsbCwgZmFsc2UpOwogfQogCitzdGF0 aWMgZW51bSBkcGlvX3BoeSBieHRfcG93ZXJfd2VsbF90b19waHkoc3RydWN0IGk5MTVfcG93ZXJf d2VsbCAqcG93ZXJfd2VsbCkKK3sKKwllbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHBvd2VyX3dl bGxfaWQgPSBwb3dlcl93ZWxsLT5kYXRhOworCisJcmV0dXJuIHBvd2VyX3dlbGxfaWQgPT0gQlhU X0RQSU9fQ01OX0EgPyBEUElPX1BIWTEgOiBEUElPX1BIWTA7Cit9CisKK3N0YXRpYyB2b2lkIGJ4 dF9kcGlvX2Ntbl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCisJCQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCit7CisJ ZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyBwb3dlcl93ZWxsX2lkID0gcG93ZXJfd2VsbC0+ZGF0 YTsKKwlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpjbW5fYV93ZWxsOworCisJaWYgKHBvd2VyX3dl bGxfaWQgPT0gQlhUX0RQSU9fQ01OX0JDKSB7CisJCS8qCisJCSAqIFdlIG5lZWQgdG8gY29weSB0 aGUgR1JDIGNhbGlicmF0aW9uIHZhbHVlIGZyb20gdGhlIGVEUCBQSFksCisJCSAqIHNvIG1ha2Ug c3VyZSBpdCdzIHBvd2VyZWQgdXAuCisJCSAqLworCQljbW5fYV93ZWxsID0gbG9va3VwX3Bvd2Vy X3dlbGwoZGV2X3ByaXYsIEJYVF9EUElPX0NNTl9BKTsKKwkJaW50ZWxfcG93ZXJfd2VsbF9nZXQo ZGV2X3ByaXYsIGNtbl9hX3dlbGwpOworCX0KKworCWJ4dF9kZGlfcGh5X2luaXQoZGV2X3ByaXYs IGJ4dF9wb3dlcl93ZWxsX3RvX3BoeShwb3dlcl93ZWxsKSk7CisKKwlpZiAocG93ZXJfd2VsbF9p ZCA9PSBCWFRfRFBJT19DTU5fQkMpCisJCWludGVsX3Bvd2VyX3dlbGxfcHV0KGRldl9wcml2LCBj bW5fYV93ZWxsKTsKK30KKworc3RhdGljIHZvaWQgYnh0X2RwaW9fY21uX3Bvd2VyX3dlbGxfZGlz YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCSAgICBzdHJ1Y3Qg aTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQoreworCWJ4dF9kZGlfcGh5X3VuaW5pdChkZXZf cHJpdiwgYnh0X3Bvd2VyX3dlbGxfdG9fcGh5KHBvd2VyX3dlbGwpKTsKK30KKworc3RhdGljIGJv b2wgYnh0X2RwaW9fY21uX3Bvd2VyX3dlbGxfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCisJCQkJCSAgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxs KQoreworCXJldHVybiBieHRfZGRpX3BoeV9pc19lbmFibGVkKGRldl9wcml2LAorCQkJCSAgICAg IGJ4dF9wb3dlcl93ZWxsX3RvX3BoeShwb3dlcl93ZWxsKSk7Cit9CisKK3N0YXRpYyB2b2lkIGJ4 dF9kcGlvX2Ntbl9wb3dlcl93ZWxsX3N5bmNfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAorCQkJCQkgICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKK3sK KwlpZiAocG93ZXJfd2VsbC0+Y291bnQgPiAwKQorCQlieHRfZHBpb19jbW5fcG93ZXJfd2VsbF9l bmFibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOworCWVsc2UKKwkJYnh0X2RwaW9fY21uX3Bvd2Vy X3dlbGxfZGlzYWJsZShkZXZfcHJpdiwgcG93ZXJfd2VsbCk7Cit9CisKKworc3RhdGljIHZvaWQg Ynh0X3ZlcmlmeV9kZGlfcGh5X3Bvd2VyX3dlbGxzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsOworCisJcG93 ZXJfd2VsbCA9IGxvb2t1cF9wb3dlcl93ZWxsKGRldl9wcml2LCBCWFRfRFBJT19DTU5fQSk7CisJ aWYgKHBvd2VyX3dlbGwtPmNvdW50ID4gMCkKKwkJYnh0X2RkaV9waHlfdmVyaWZ5X3N0YXRlKGRl dl9wcml2LAorCQkJCQkgYnh0X3Bvd2VyX3dlbGxfdG9fcGh5KHBvd2VyX3dlbGwpKTsKKworCXBv d2VyX3dlbGwgPSBsb29rdXBfcG93ZXJfd2VsbChkZXZfcHJpdiwgQlhUX0RQSU9fQ01OX0JDKTsK KwlpZiAocG93ZXJfd2VsbC0+Y291bnQgPiAwKQorCQlieHRfZGRpX3BoeV92ZXJpZnlfc3RhdGUo ZGV2X3ByaXYsCisJCQkJCSBieHRfcG93ZXJfd2VsbF90b19waHkocG93ZXJfd2VsbCkpOworfQor CiBzdGF0aWMgYm9vbCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpw b3dlcl93ZWxsKQogewpAQCAtODQzLDcgKzkyMiw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfZGNfb2Zm X3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAln ZW45X2Fzc2VydF9kYnVmX2VuYWJsZWQoZGV2X3ByaXYpOwogCiAJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKQotCQlicm94dG9uX2RkaV9waHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2KTsKKwkJYnh0 X3ZlcmlmeV9kZGlfcGh5X3Bvd2VyX3dlbGxzKGRldl9wcml2KTsKIH0KIAogc3RhdGljIHZvaWQg Z2VuOV9kY19vZmZfcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKQEAgLTE4MDIsNiArMTg4MSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf cG93ZXJfd2VsbF9vcHMgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9vcHMgPSB7CiAJLmlzX2VuYWJs ZWQgPSBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZWQsCiB9OwogCitzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgYnh0X2RwaW9fY21uX3Bvd2VyX3dlbGxfb3BzID0g eworCS5zeW5jX2h3ID0gYnh0X2RwaW9fY21uX3Bvd2VyX3dlbGxfc3luY19odywKKwkuZW5hYmxl ID0gYnh0X2RwaW9fY21uX3Bvd2VyX3dlbGxfZW5hYmxlLAorCS5kaXNhYmxlID0gYnh0X2RwaW9f Y21uX3Bvd2VyX3dlbGxfZGlzYWJsZSwKKwkuaXNfZW5hYmxlZCA9IGJ4dF9kcGlvX2Ntbl9wb3dl cl93ZWxsX2VuYWJsZWQsCit9OworCiBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCBoc3df cG93ZXJfd2VsbHNbXSA9IHsKIAl7CiAJCS5uYW1lID0gImFsd2F5cy1vbiIsCkBAIC0yMDM4LDYg KzIxMjQsMTggQEAgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgYnh0X3Bvd2VyX3dlbGxz W10gPSB7CiAJCS5vcHMgPSAmc2tsX3Bvd2VyX3dlbGxfb3BzLAogCQkuZGF0YSA9IFNLTF9ESVNQ X1BXXzIsCiAJfSwKKwl7CisJCS5uYW1lID0gImRwaW8tY29tbW9uLWEiLAorCQkuZG9tYWlucyA9 IEJYVF9EUElPX0NNTl9BX1BPV0VSX0RPTUFJTlMsCisJCS5vcHMgPSAmYnh0X2RwaW9fY21uX3Bv d2VyX3dlbGxfb3BzLAorCQkuZGF0YSA9IEJYVF9EUElPX0NNTl9BLAorCX0sCisJeworCQkubmFt ZSA9ICJkcGlvLWNvbW1vbi1iYyIsCisJCS5kb21haW5zID0gQlhUX0RQSU9fQ01OX0JDX1BPV0VS X0RPTUFJTlMsCisJCS5vcHMgPSAmYnh0X2RwaW9fY21uX3Bvd2VyX3dlbGxfb3BzLAorCQkuZGF0 YSA9IEJYVF9EUElPX0NNTl9CQywKKwl9LAogfTsKIAogc3RhdGljIGludApAQCAtMjMwNywxMCAr MjQwNSw2IEBAIHZvaWQgYnh0X2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAogCWdlbjlfZGJ1Zl9lbmFibGUoZGV2X3ByaXYpOwogCi0JYnJveHRv bl9kZGlfcGh5X2luaXQoZGV2X3ByaXYpOwotCi0JYnJveHRvbl9kZGlfcGh5X3ZlcmlmeV9zdGF0 ZShkZXZfcHJpdik7Ci0KIAlpZiAocmVzdW1lICYmIGRldl9wcml2LT5jc3IuZG1jX3BheWxvYWQp CiAJCWludGVsX2Nzcl9sb2FkX3Byb2dyYW0oZGV2X3ByaXYpOwogfQpAQCAtMjMyMiw4ICsyNDE2 LDYgQEAgdm9pZCBieHRfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAKIAlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRElT QUJMRSk7CiAKLQlicm94dG9uX2RkaV9waHlfdW5pbml0KGRldl9wcml2KTsKLQogCWdlbjlfZGJ1 Zl9kaXNhYmxlKGRldl9wcml2KTsKIAogCWJyb3h0b25fdW5pbml0X2NkY2xrKGRldl9wcml2KTsK LS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK