From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 3/6] drm/i915/bxt: Move DDI PHY enabling/disabling to the power well code Date: Tue, 7 Jun 2016 21:24:30 +0300 Message-ID: <1465323873-9786-4-git-send-email-imre.deak@intel.com> References: <1465323873-9786-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 580E06E80E for ; Tue, 7 Jun 2016 18:24:47 +0000 (UTC) In-Reply-To: <1465323873-9786-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+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgICAz ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgICB8ICA0NiArKystLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgIHwgICA5ICsr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTA2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25z KCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA4ZjAxMjlk Li44MWZjNDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTcxMyw2ICs3MTMsOSBAQCBl bnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKIAkvKiBOb3QgYWN0dWFsIGJpdCBncm91cHMuIFVz ZWQgYXMgSURzIGZvciBsb29rdXBfcG93ZXJfd2VsbCgpICovCiAJU0tMX0RJU1BfUFdfQUxXQVlT X09OLAogCVNLTF9ESVNQX1BXX0RDX09GRiwKKworCUJYVF9EUElPX0NNTl9BLAorCUJYVF9EUElP X0NNTl9CQywKIH07CiAKICNkZWZpbmUgU0tMX1BPV0VSX1dFTExfU1RBVEUocHcpICgxIDw8ICgo cHcpICogMikpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IGIxMGM3YjUuLmRlZTZkZDAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0xNzQyLDggKzE3NDIsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cikKIAl9CiB9CiAKLXN0YXRpYyBib29sIGJyb3h0b25fcGh5X2lzX2VuYWJsZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgIGVudW0gZHBpb19waHkgcGh5KQorYm9v bCBieHRfZGRpX3BoeV9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwkJCSAgICBlbnVtIGRwaW9fcGh5IHBoeSkKIHsKIAlpZiAoIShJOTE1X1JFQUQoQlhUX1Bf Q1JfR1RfRElTUF9QV1JPTikgJiBHVF9ESVNQTEFZX1BPV0VSX09OKHBoeSkpKQogCQlyZXR1cm4g ZmFsc2U7CkBAIC0xNzg3LDIxICsxNzg3LDE3IEBAIHN0YXRpYyB2b2lkIGJyb3h0b25fcGh5X3dh aXRfZ3JjX2RvbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlEUk1fRVJS T1IoInRpbWVvdXQgd2FpdGluZyBmb3IgUEhZJWQgR1JDXG4iLCBwaHkpOwogfQogCi1zdGF0aWMg Ym9vbCBicm94dG9uX3BoeV92ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAotCQkJCSAgICAgZW51bSBkcGlvX3BoeSBwaHkpOwotCi1zdGF0aWMgdm9pZCBicm94 dG9uX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAg ZW51bSBkcGlvX3BoeSBwaHkpCit2b2lkIGJ4dF9kZGlfcGh5X2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSkKIHsKIAllbnVtIHBvcnQgcG9y dDsKIAl1MzIgcG9ydHMsIHZhbDsKIAotCWlmIChicm94dG9uX3BoeV9pc19lbmFibGVkKGRldl9w cml2LCBwaHkpKSB7CisJaWYgKGJ4dF9kZGlfcGh5X2lzX2VuYWJsZWQoZGV2X3ByaXYsIHBoeSkp IHsKIAkJLyogU3RpbGwgcmVhZCBvdXQgdGhlIEdSQyB2YWx1ZSBmb3Igc3RhdGUgdmVyaWZpY2F0 aW9uICovCiAJCWlmIChwaHkgPT0gRFBJT19QSFkwKQogCQkJZGV2X3ByaXYtPmJ4dF9waHlfZ3Jj ID0gYnJveHRvbl9nZXRfZ3JjKGRldl9wcml2LCBwaHkpOwogCi0JCWlmIChicm94dG9uX3BoeV92 ZXJpZnlfc3RhdGUoZGV2X3ByaXYsIHBoeSkpIHsKKwkJaWYgKGJ4dF9kZGlfcGh5X3ZlcmlmeV9z dGF0ZShkZXZfcHJpdiwgcGh5KSkgewogCQkJRFJNX0RFQlVHX0RSSVZFUigiRERJIFBIWSAlZCBh bHJlYWR5IGVuYWJsZWQsICIKIAkJCQkJICJ3b24ndCByZXByb2dyYW0gaXRcbiIsIHBoeSk7CiAK QEAgLTE4MTAsOCArMTgwNiw2IEBAIHN0YXRpYyB2b2lkIGJyb3h0b25fcGh5X2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJCURSTV9ERUJVR19EUklWRVIoIkRESSBQ SFkgJWQgZW5hYmxlZCB3aXRoIGludmFsaWQgc3RhdGUsICIKIAkJCQkgImZvcmNlIHJlcHJvZ3Jh bW1pbmcgaXRcbiIsIHBoeSk7Ci0JfSBlbHNlIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiRERJIFBI WSAlZCBub3QgZW5hYmxlZCwgZW5hYmxpbmcgaXRcbiIsIHBoeSk7CiAJfQogCiAJdmFsID0gSTkx NV9SRUFEKEJYVF9QX0NSX0dUX0RJU1BfUFdST04pOwpAQCAtMTkxOSwxNSArMTkxMyw3IEBAIHN0 YXRpYyB2b2lkIGJyb3h0b25fcGh5X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQlicm94dG9uX3BoeV93YWl0X2dyY19kb25lKGRldl9wcml2LCBEUElPX1BIWTEpOwog fQogCi12b2lkIGJyb3h0b25fZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKLXsKLQkvKiBFbmFibGUgUEhZMSBmaXJzdCBzaW5jZSBpdCBwcm92aWRlcyBSY29t cCBmb3IgUEhZMCAqLwotCWJyb3h0b25fcGh5X2luaXQoZGV2X3ByaXYsIERQSU9fUEhZMSk7Ci0J YnJveHRvbl9waHlfaW5pdChkZXZfcHJpdiwgRFBJT19QSFkwKTsKLX0KLQotc3RhdGljIHZvaWQg YnJveHRvbl9waHlfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJ CSAgICAgICBlbnVtIGRwaW9fcGh5IHBoeSkKK3ZvaWQgYnh0X2RkaV9waHlfdW5pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBkcGlvX3BoeSBwaHkpCiB7CiAJdWlu dDMyX3QgdmFsOwogCkBAIC0xOTQwLDEyICsxOTI2LDYgQEAgc3RhdGljIHZvaWQgYnJveHRvbl9w aHlfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJOTE1X1dSSVRF KEJYVF9QX0NSX0dUX0RJU1BfUFdST04sIHZhbCk7CiB9CiAKLXZvaWQgYnJveHRvbl9kZGlfcGh5 X3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JYnJveHRvbl9w aHlfdW5pbml0KGRldl9wcml2LCBEUElPX1BIWTEpOwotCWJyb3h0b25fcGh5X3VuaW5pdChkZXZf cHJpdiwgRFBJT19QSFkwKTsKLX0KLQogc3RhdGljIGJvb2wgX19wcmludGYoNiwgNykKIF9fcGh5 X3JlZ192ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVt IGRwaW9fcGh5IHBoeSwKIAkJICAgICAgIGk5MTVfcmVnX3QgcmVnLCB1MzIgbWFzaywgdTMyIGV4 cGVjdGVkLApAQCAtMTk3Myw4ICsxOTUzLDggQEAgX19waHlfcmVnX3ZlcmlmeV9zdGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gZHBpb19waHkgcGh5LAogCXJldHVy biBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgYnJveHRvbl9waHlfdmVyaWZ5X3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgIGVudW0gZHBpb19waHkgcGh5 KQorYm9vbCBieHRfZGRpX3BoeV92ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJICAgICAgZW51bSBkcGlvX3BoeSBwaHkpCiB7CiAJZW51bSBwb3J0IHBv cnQ7CiAJdTMyIHBvcnRzOwpAQCAtMTk4NSw4ICsxOTY1LDcgQEAgc3RhdGljIGJvb2wgYnJveHRv bl9waHlfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlf X3BoeV9yZWdfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwaHksIHJlZywgbWFzaywgZXhwLCBmbXQs CVwKIAkJCSAgICAgICAjIyBfX1ZBX0FSR1NfXykKIAotCS8qIFdlIGV4cGVjdCB0aGUgUEhZIHRv IGJlIGFsd2F5cyBlbmFibGVkICovCi0JaWYgKCFicm94dG9uX3BoeV9pc19lbmFibGVkKGRldl9w cml2LCBwaHkpKQorCWlmICghYnh0X2RkaV9waHlfaXNfZW5hYmxlZChkZXZfcHJpdiwgcGh5KSkK IAkJcmV0dXJuIGZhbHNlOwogCiAJb2sgPSB0cnVlOwpAQCAtMjA0OSwxMyArMjAyOCw2IEBAIHN0 YXRpYyBib29sIGJyb3h0b25fcGh5X3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAjdW5kZWYgX0NISwogfQogCi12b2lkIGJyb3h0b25fZGRpX3BoeV92ZXJp Znlfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWlmICghYnJv eHRvbl9waHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBEUElPX1BIWTApIHx8Ci0JICAgICFicm94 dG9uX3BoeV92ZXJpZnlfc3RhdGUoZGV2X3ByaXYsIERQSU9fUEhZMSkpCi0JCWk5MTVfcmVwb3J0 X2Vycm9yKGRldl9wcml2LCAiRERJIFBIWSBzdGF0ZSBtaXNtYXRjaFxuIik7Ci19Ci0KIHZvaWQg aW50ZWxfZGRpX3ByZXBhcmVfbGlua19yZXRyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp CiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGViZTdiMzQu LjE3NDQ1ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMjYzLDkgKzEyNjMsMTIg QEAgdm9pZCBoc3dfZW5hYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owogdm9pZCBoc3dfZGlzYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIHZvaWQgYnJveHRvbl9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CiB2b2lkIGJyb3h0b25fdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Ci12b2lkIGJyb3h0b25fZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGJyb3h0b25fZGRpX3BoeV91bmluaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgYnJveHRvbl9kZGlfcGh5X3ZlcmlmeV9z dGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBieHRfZGRpX3Bo eV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBkcGlvX3BoeSBw aHkpOwordm9pZCBieHRfZGRpX3BoeV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSk7Citib29sIGJ4dF9kZGlfcGh5X2lzX2VuYWJsZWQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgIGVudW0gZHBpb19waHkg cGh5KTsKK2Jvb2wgYnh0X2RkaV9waHlfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgIGVudW0gZHBpb19waHkgcGh5KTsKIHZvaWQgZ2VuOV9z YW5pdGl6ZV9kY19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9p ZCBieHRfZW5hYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9p ZCBieHRfZGlzYWJsZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwppbmRleCBkMGQwNTZhLi4xZGQ5Mzdh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC02NSw2ICs2NSw5 IEBACiBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfd2VsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgaW50IHBvd2VyX3dlbGxfaWQpOwogCitz dGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqCitsb29rdXBfcG93ZXJfd2VsbChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBwb3dlcl93ZWxsX2lkKTsKKwogY29uc3Qg Y2hhciAqCiBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbiBkb21haW4pCiB7CkBAIC00MzMsNiArNDM2LDE2IEBAIHN0YXRpYyB2b2lk IGhzd19zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ QklUKFBPV0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJXAogCUJJVChQT1dFUl9ET01BSU5fQVVYX0Ep IHwJCQlcCiAJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKKyNkZWZpbmUgQlhUX0RQSU9fQ01OX0Ff UE9XRVJfRE9NQUlOUyAoCQkJXAorCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9MQU5FUykg fAkJXAorCUJJVChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCisJQklUKFBPV0VSX0RPTUFJTl9J TklUKSkKKyNkZWZpbmUgQlhUX0RQSU9fQ01OX0JDX1BPV0VSX0RPTUFJTlMgKAkJCVwKKwlCSVQo UE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKKwlCSVQoUE9XRVJfRE9NQUlOX1BP UlRfRERJX0NfTEFORVMpIHwJCVwKKwlCSVQoUE9XRVJfRE9NQUlOX0FVWF9CKSB8CQkJXAorCUJJ VChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlcCisJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKIAog c3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKQEAgLTgxNCw2ICs4MjcsNzIgQEAgc3RhdGljIHZvaWQgc2tsX3Bvd2Vy X3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc2tsX3Nl dF9wb3dlcl93ZWxsKGRldl9wcml2LCBwb3dlcl93ZWxsLCBmYWxzZSk7CiB9CiAKK3N0YXRpYyBl bnVtIGRwaW9fcGh5IGJ4dF9wb3dlcl93ZWxsX3RvX3BoeShzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxs ICpwb3dlcl93ZWxsKQoreworCWVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgcG93ZXJfd2VsbF9p ZCA9IHBvd2VyX3dlbGwtPmRhdGE7CisKKwlyZXR1cm4gcG93ZXJfd2VsbF9pZCA9PSBCWFRfRFBJ T19DTU5fQSA/IERQSU9fUEhZMSA6IERQSU9fUEhZMDsKK30KKworc3RhdGljIHZvaWQgYnh0X2Rw aW9fY21uX3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwkJCQkJICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKK3sKKwllbnVt IHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHBvd2VyX3dlbGxfaWQgPSBwb3dlcl93ZWxsLT5kYXRhOwor CXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKmNtbl9hX3dlbGw7CisKKwlpZiAocG93ZXJfd2VsbF9p ZCA9PSBCWFRfRFBJT19DTU5fQkMpIHsKKwkJLyoKKwkJICogV2UgbmVlZCB0byBjb3B5IHRoZSBH UkMgY2FsaWJyYXRpb24gdmFsdWUgZnJvbSB0aGUgZURQIFBIWSwKKwkJICogc28gbWFrZSBzdXJl IGl0J3MgcG93ZXJlZCB1cC4KKwkJICovCisJCWNtbl9hX3dlbGwgPSBsb29rdXBfcG93ZXJfd2Vs bChkZXZfcHJpdiwgQlhUX0RQSU9fQ01OX0EpOworCQlpbnRlbF9wb3dlcl93ZWxsX2dldChkZXZf cHJpdiwgY21uX2Ffd2VsbCk7CisJfQorCisJYnh0X2RkaV9waHlfaW5pdChkZXZfcHJpdiwgYnh0 X3Bvd2VyX3dlbGxfdG9fcGh5KHBvd2VyX3dlbGwpKTsKKworCWlmIChwb3dlcl93ZWxsX2lkID09 IEJYVF9EUElPX0NNTl9CQykKKwkJaW50ZWxfcG93ZXJfd2VsbF9wdXQoZGV2X3ByaXYsIGNtbl9h X3dlbGwpOworfQorCitzdGF0aWMgdm9pZCBieHRfZHBpb19jbW5fcG93ZXJfd2VsbF9kaXNhYmxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgIHN0cnVjdCBpOTE1 X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCit7CisJYnh0X2RkaV9waHlfdW5pbml0KGRldl9wcml2 LCBieHRfcG93ZXJfd2VsbF90b19waHkocG93ZXJfd2VsbCkpOworfQorCitzdGF0aWMgYm9vbCBi eHRfZHBpb19jbW5fcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCQkJICAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCit7 CisJcmV0dXJuIGJ4dF9kZGlfcGh5X2lzX2VuYWJsZWQoZGV2X3ByaXYsCisJCQkJICAgICAgYnh0 X3Bvd2VyX3dlbGxfdG9fcGh5KHBvd2VyX3dlbGwpKTsKK30KKworc3RhdGljIHZvaWQgYnh0X2Rw aW9fY21uX3Bvd2VyX3dlbGxfc3luY19odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkJCSAgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQoreworCWlm IChwb3dlcl93ZWxsLT5jb3VudCA+IDApCisJCWJ4dF9kcGlvX2Ntbl9wb3dlcl93ZWxsX2VuYWJs ZShkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CisJZWxzZQorCQlieHRfZHBpb19jbW5fcG93ZXJfd2Vs bF9kaXNhYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKK30KKworCitzdGF0aWMgdm9pZCBieHRf dmVyaWZ5X2RkaV9waHlfcG93ZXJfd2VsbHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQoreworCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGw7CisKKwlwb3dlcl93 ZWxsID0gbG9va3VwX3Bvd2VyX3dlbGwoZGV2X3ByaXYsIEJYVF9EUElPX0NNTl9BKTsKKwlpZiAo cG93ZXJfd2VsbC0+Y291bnQgPiAwKQorCQlieHRfZGRpX3BoeV92ZXJpZnlfc3RhdGUoZGV2X3By aXYsCisJCQkJCSBieHRfcG93ZXJfd2VsbF90b19waHkocG93ZXJfd2VsbCkpOworCisJcG93ZXJf d2VsbCA9IGxvb2t1cF9wb3dlcl93ZWxsKGRldl9wcml2LCBCWFRfRFBJT19DTU5fQkMpOworCWlm IChwb3dlcl93ZWxsLT5jb3VudCA+IDApCisJCWJ4dF9kZGlfcGh5X3ZlcmlmeV9zdGF0ZShkZXZf cHJpdiwKKwkJCQkJIGJ4dF9wb3dlcl93ZWxsX3RvX3BoeShwb3dlcl93ZWxsKSk7Cit9CisKIHN0 YXRpYyBib29sIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2Vy X3dlbGwpCiB7CkBAIC04NDAsNyArOTE5LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9kY19vZmZfcG93 ZXJfd2VsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWdlbjlf YXNzZXJ0X2RidWZfZW5hYmxlZChkZXZfcHJpdik7CiAKIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJp dikpCi0JCWJyb3h0b25fZGRpX3BoeV92ZXJpZnlfc3RhdGUoZGV2X3ByaXYpOworCQlieHRfdmVy aWZ5X2RkaV9waHlfcG93ZXJfd2VsbHMoZGV2X3ByaXYpOwogfQogCiBzdGF0aWMgdm9pZCBnZW45 X2RjX29mZl9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LApAQCAtMTgwNCw2ICsxODgzLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dl cl93ZWxsX29wcyBnZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcyA9IHsKIAkuaXNfZW5hYmxlZCA9 IGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZW5hYmxlZCwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9wb3dlcl93ZWxsX29wcyBieHRfZHBpb19jbW5fcG93ZXJfd2VsbF9vcHMgPSB7CisJ LnN5bmNfaHcgPSBieHRfZHBpb19jbW5fcG93ZXJfd2VsbF9zeW5jX2h3LAorCS5lbmFibGUgPSBi eHRfZHBpb19jbW5fcG93ZXJfd2VsbF9lbmFibGUsCisJLmRpc2FibGUgPSBieHRfZHBpb19jbW5f cG93ZXJfd2VsbF9kaXNhYmxlLAorCS5pc19lbmFibGVkID0gYnh0X2RwaW9fY21uX3Bvd2VyX3dl bGxfZW5hYmxlZCwKK307CisKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsIGhzd19wb3dl cl93ZWxsc1tdID0gewogCXsKIAkJLm5hbWUgPSAiYWx3YXlzLW9uIiwKQEAgLTIwNDAsNiArMjEy NiwxOCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCBieHRfcG93ZXJfd2VsbHNbXSA9 IHsKIAkJLm9wcyA9ICZza2xfcG93ZXJfd2VsbF9vcHMsCiAJCS5kYXRhID0gU0tMX0RJU1BfUFdf MiwKIAl9LAorCXsKKwkJLm5hbWUgPSAiZHBpby1jb21tb24tYSIsCisJCS5kb21haW5zID0gQlhU X0RQSU9fQ01OX0FfUE9XRVJfRE9NQUlOUywKKwkJLm9wcyA9ICZieHRfZHBpb19jbW5fcG93ZXJf d2VsbF9vcHMsCisJCS5kYXRhID0gQlhUX0RQSU9fQ01OX0EsCisJfSwKKwl7CisJCS5uYW1lID0g ImRwaW8tY29tbW9uLWJjIiwKKwkJLmRvbWFpbnMgPSBCWFRfRFBJT19DTU5fQkNfUE9XRVJfRE9N QUlOUywKKwkJLm9wcyA9ICZieHRfZHBpb19jbW5fcG93ZXJfd2VsbF9vcHMsCisJCS5kYXRhID0g QlhUX0RQSU9fQ01OX0JDLAorCX0sCiB9OwogCiBzdGF0aWMgaW50CkBAIC0yMzA5LDEwICsyNDA3 LDYgQEAgdm9pZCBieHRfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCiAJZ2VuOV9kYnVmX2VuYWJsZShkZXZfcHJpdik7CiAKLQlicm94dG9uX2Rk aV9waHlfaW5pdChkZXZfcHJpdik7Ci0KLQlicm94dG9uX2RkaV9waHlfdmVyaWZ5X3N0YXRlKGRl dl9wcml2KTsKLQogCWlmIChyZXN1bWUgJiYgZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCkKIAkJ aW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShkZXZfcHJpdik7CiB9CkBAIC0yMzI0LDggKzI0MTgsNiBA QCB2b2lkIGJ4dF9kaXNwbGF5X2NvcmVfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAogCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxF KTsKIAotCWJyb3h0b25fZGRpX3BoeV91bmluaXQoZGV2X3ByaXYpOwotCiAJZ2VuOV9kYnVmX2Rp c2FibGUoZGV2X3ByaXYpOwogCiAJYnJveHRvbl91bmluaXRfY2RjbGsoZGV2X3ByaXYpOwotLSAK Mi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=