From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 19/23] drm/i915/icl: Reserve all required PLLs for TypeC ports Date: Tue, 4 Jun 2019 17:58:22 +0300 Message-ID: <20190604145826.16424-20-imre.deak@intel.com> References: <20190604145826.16424-1-imre.deak@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 9EA24899D6 for ; Tue, 4 Jun 2019 14:59:46 +0000 (UTC) In-Reply-To: <20190604145826.16424-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: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org V2hlbiBlbmFibGluZyBhIFR5cGVDIHBvcnQgd2UgbmVlZCB0byByZXNlcnZlIGFsbCB0aGUgcmVx dWlyZWQgUExMcyBmb3IKaXQsIHRoZSBUQlQgUExMIGZvciBUQlQtYWx0IGFuZCB0aGUgTUcgUEhZ IFBMTCBmb3IgRFAtYWx0L2xlZ2FjeSBzaW5rcy4KV2UgY2FuIHNlbGVjdCB0aGUgcHJvcGVyIFBM TCBmb3IgdGhlIGN1cnJlbnQgcG9ydCBtb2RlIGZyb20gdGhlIHJlc2VydmVkClBMTHMgb25seSBv bmNlIHdlIHNlbGVjdGVkIGFuZCBsb2NrZWQgZG93biB0aGUgcG9ydCBtb2RlIGZvciB0aGUgd2hv bGUKZHVyYXRpb24gb2YgdGhlIHBvcnQncyBhY3RpdmUgc3RhdGUuIFJlc2V0dGluZyBhbmQgbG9j a2luZyBkb3duIHRoZSBwb3J0Cm1vZGUgY2FuIGluIHR1cm4gaGFwcGVuIG9ubHkgZHVyaW5nIHRo ZSBtb2Rlc2V0IGNvbW1pdCBwaGFzZSBvbmNlIHdlCmRpc2FibGVkIHRoZSBnaXZlbiBwb3J0IGFu ZCB0aGUgUExMIGl0IHVzZWQuCgpUbyBzdXBwb3J0IHRoZSBhYm92ZSByZXNlcnZlLWFuZC1zZWxl Y3QgUExMIHNlbWFudGljIHdlIHN0b3JlIHRoZQpyZXNlcnZlZCBQTExzIGFsb25nIHdpdGggdGhl aXIgSFcgc3RhdGUgaW4gdGhlIENSVEMgc3RhdGUgYW5kIHByb3ZpZGUgYQp3YXkgdG8gc2VsZWN0 IHRoZSBhY3RpdmUgUExMIGZyb20gdGhlc2UuIFRoZSBzZWxlY3RlZCBQTEwgYWxvbmcgd2l0aCBp dHMKSFcgc3RhdGUgd2lsbCBiZSBwb2ludGVkIGF0IGJ5IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxs L2RwbGxfaHdfc3RhdGUgYXMKaW4gdGhlIGNhc2Ugb2Ygb3RoZXIgcG9ydCB0eXBlcy4KCkJlc2lk ZXMgcmVzZXJ2aW5nIGFsbCByZXF1aXJlZCBQTExzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KCkNj OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEltcmUg RGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgIHwgIDExICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21n ci5jIHwgMTUyICsrKysrKysrKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcGxsX21nci5oIHwgICA5ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgIHwgICA5ICsrCiA0IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCA0 MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZDg2 ZmNlYWNmMTk5Li5mODZiNWI4NDhjYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKQEAgLTk4NzgsNiArOTg3OCw3IEBAIHN0YXRpYyB2b2lkIGljZWxha2VfZ2V0X2RkaV9wbGwo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCWVudW0gcG9ydCBwb3J0LAog CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKKwllbnVtIGljbF9w b3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkOwogCWVudW0gaW50ZWxfZHBsbF9pZCBpZDsKIAl1MzIg dGVtcDsKIApAQCAtOTg4NSwyMiArOTg4NiwyOCBAQCBzdGF0aWMgdm9pZCBpY2VsYWtlX2dldF9k ZGlfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdGVtcCA9IEk5MTVf UkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCkgJgogCQkgICAgICAgRFBDTEtBX0NGR0NSMF9ERElfQ0xL X1NFTF9NQVNLKHBvcnQpOwogCQlpZCA9IHRlbXAgPj4gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NF TF9TSElGVChwb3J0KTsKKwkJcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOwog CX0gZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpIHsKIAkJdTMyIGNs a19zZWwgPSBJOTE1X1JFQUQoRERJX0NMS19TRUwocG9ydCkpICYgRERJX0NMS19TRUxfTUFTSzsK IAogCQlpZiAoY2xrX3NlbCA9PSBERElfQ0xLX1NFTF9NRykgewogCQkJaWQgPSBpY2xfdGNfcG9y dF90b19wbGxfaWQoaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwKIAkJCQkJCQkJICAgIHBvcnQp KTsKKwkJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfTUdfUEhZOwogCQl9IGVsc2Ugewog CQkJV0FSTl9PTihjbGtfc2VsIDwgRERJX0NMS19TRUxfVEJUXzE2Mik7CiAJCQlpZCA9IERQTExf SURfSUNMX1RCVFBMTDsKKwkJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfREVGQVVMVDsK IAkJfQogCX0gZWxzZSB7CiAJCVdBUk4oMSwgIkludmFsaWQgcG9ydCAleFxuIiwgcG9ydCk7CiAJ CXJldHVybjsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwgPSBpbnRlbF9nZXRfc2hh cmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsIGlkKTsKKwlwaXBlX2NvbmZpZy0+aWNsX3BvcnRfZHBs bHNbcG9ydF9kcGxsX2lkXS5wbGwgPQorCQlpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2 X3ByaXYsIGlkKTsKKworCWljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChwaXBlX2NvbmZpZywgcG9y dF9kcGxsX2lkKTsKIH0KIAogc3RhdGljIHZvaWQgYnh0X2dldF9kZGlfcGxsKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEyMDM3LDYgKzEyMDQ0LDggQEAgY2xlYXJfaW50 ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlzYXZl ZF9zdGF0ZS0+c2NhbGVyX3N0YXRlID0gY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwogCXNhdmVk X3N0YXRlLT5zaGFyZWRfZHBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwogCXNhdmVkX3N0 YXRlLT5kcGxsX2h3X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKKwltZW1jcHko c2F2ZWRfc3RhdGUtPmljbF9wb3J0X2RwbGxzLCBjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxscywK KwkgICAgICAgc2l6ZW9mKHNhdmVkX3N0YXRlLT5pY2xfcG9ydF9kcGxscykpOwogCXNhdmVkX3N0 YXRlLT5jcmNfZW5hYmxlZCA9IGNydGNfc3RhdGUtPmNyY19lbmFibGVkOwogCWlmIChJU19HNFgo ZGV2X3ByaXYpIHx8CiAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggZDJj YTJjNjc2ZjAzLi5jZTA4YTJlZWU1NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYwpAQCAtMjg1NiwzNCArMjg1Niw3OSBAQCBzdGF0aWMgYm9vbCBpY2xfY2FsY19tZ19wbGxf c3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcmV0dXJuIHRydWU7 CiB9CiAKKy8qKgorICogaWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsIC0gc2VsZWN0IHRoZSBhY3Rp dmUgcG9ydCBEUExMIGZvciBhIGdpdmVuIENSVEMKKyAqIEBjcnRjX3N0YXRlOiBzdGF0ZSBmb3Ig dGhlIENSVEMgdG8gc2VsZWN0IHRoZSBEUExMIGZvcgorICogQHBvcnRfZHBsbF9pZDogdGhlIGFj dGl2ZSBAcG9ydF9kcGxsX2lkIHRvIHNlbGVjdAorICoKKyAqIFNlbGVjdCB0aGUgZ2l2ZW4gQHBv cnRfZHBsbF9pZCBpbnN0YW5jZSBmcm9tIHRoZSBEUExMcyByZXNlcnZlZCBmb3IgdGhlCisgKiBD UlRDLgorICovCit2b2lkIGljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgIGVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0 X2RwbGxfaWQpCit7CisJc3RydWN0IGljbF9wb3J0X2RwbGwgKnBvcnRfZHBsbCA9CisJCSZjcnRj X3N0YXRlLT5pY2xfcG9ydF9kcGxsc1twb3J0X2RwbGxfaWRdOworCisJY3J0Y19zdGF0ZS0+c2hh cmVkX2RwbGwgPSBwb3J0X2RwbGwtPnBsbDsKKwljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0g cG9ydF9kcGxsLT5od19zdGF0ZTsKK30KKworc3RhdGljIHZvaWQgaWNsX3VwZGF0ZV9hY3RpdmVf ZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICBzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sK KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19n ZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKnByaW1hcnlfcG9ydDsKKwllbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkOwor CisJcHJpbWFyeV9wb3J0ID0gZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUID8K KwkJZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSktPnByaW1hcnkgOgorCQllbmNfdG9fZGlnX3Bv cnQoJmVuY29kZXItPmJhc2UpOworCisJc3dpdGNoIChwcmltYXJ5X3BvcnQtPnRjX21vZGUpIHsK KwljYXNlIFRDX1BPUlRfVEJUX0FMVDoKKwkJcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9E RUZBVUxUOworCQlicmVhazsKKwljYXNlIFRDX1BPUlRfRFBfQUxUOgorCWNhc2UgVENfUE9SVF9M RUdBQ1k6CisJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfTUdfUEhZOworCQlicmVhazsK Kwl9CisKKwlpY2xfc2V0X2FjdGl2ZV9wb3J0X2RwbGwoY3J0Y19zdGF0ZSwgcG9ydF9kcGxsX2lk KTsKK30KKwogc3RhdGljIGJvb2wgaWNsX2dldF9jb21ib19waHlfZHBsbChzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJ CQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo c3RhdGUsIGNydGMpOwotCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOworCXN0cnVjdCBp Y2xfcG9ydF9kcGxsICpwb3J0X2RwbGwgPQorCQkmY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNb SUNMX1BPUlRfRFBMTF9ERUZBVUxUXTsKIAotCWlmICghaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRj X3N0YXRlLCBlbmNvZGVyLAotCQkJCSAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSkpIHsKKwlp ZiAoIWljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2RlciwgJnBvcnRfZHBsbC0+ aHdfc3RhdGUpKSB7CiAJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBjYWxjdWxhdGUgY29tYm8g UEhZIFBMTCBzdGF0ZS5cbiIpOwogCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlwbGwgPSBpbnRl bF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZSwKLQkJCQkgICAgIERQTExfSURfSUNMX0RQTEwwLAotCQkJCSAgICAgRFBMTF9JRF9JQ0xfRFBM TDEpOwotCWlmICghcGxsKSB7CisJcG9ydF9kcGxsLT5wbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9k cGxsKHN0YXRlLCBjcnRjLAorCQkJCQkJJnBvcnRfZHBsbC0+aHdfc3RhdGUsCisJCQkJCQlEUExM X0lEX0lDTF9EUExMMCwKKwkJCQkJCURQTExfSURfSUNMX0RQTEwxKTsKKwlpZiAoIXBvcnRfZHBs bC0+cGxsKSB7CiAJCURSTV9ERUJVR19LTVMoIk5vIGNvbWJvIFBIWSBQTEwgZm91bmQgZm9yIHBv cnQgJWNcbiIsCiAJCQkgICAgICBwb3J0X25hbWUoZW5jb2Rlci0+cG9ydCkpOwogCQlyZXR1cm4g ZmFsc2U7CiAJfQogCiAJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAot CQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKKwkJCQkgICAgcG9ydF9k cGxsLT5wbGwsICZwb3J0X2RwbGwtPmh3X3N0YXRlKTsKIAotCWNydGNfc3RhdGUtPnNoYXJlZF9k cGxsID0gcGxsOworCWljbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RhdGUsIGNydGMsIGVuY29kZXIp OwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0yODk1LDQ5ICsyOTQwLDU1IEBAIHN0YXRpYyBib29s IGljbF9nZXRfdGNfcGh5X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2Uu ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwotCWVudW0gdGNfcG9ydCB0Y19w b3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7Ci0Jc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQ7Ci0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpwbGw7Ci0JZW51bSBpbnRlbF9kcGxsX2lkIG1pbiwgbWF4OwotCWJvb2wgcmV0OwotCi0JaWYg KGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkKLQkJZGlnX3BvcnQgPSBlbmNf dG9fbXN0KCZlbmNvZGVyLT5iYXNlKS0+cHJpbWFyeTsKLQllbHNlCi0JCWRpZ19wb3J0ID0gZW5j X3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKKwlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAqcG9y dF9kcGxsID0KKwkJJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW0lDTF9QT1JUX0RQTExfREVG QVVMVF07CisJZW51bSBpbnRlbF9kcGxsX2lkIGRwbGxfaWQ7CiAKLQlpZiAoZGlnX3BvcnQtPnRj X21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKSB7Ci0JCW1pbiA9IERQTExfSURfSUNMX1RCVFBMTDsK LQkJbWF4ID0gbWluOwotCQlyZXQgPSBpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVu Y29kZXIsCi0JCQkJCSAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOwotCX0gZWxzZSB7Ci0J CW1pbiA9IGljbF90Y19wb3J0X3RvX3BsbF9pZCh0Y19wb3J0KTsKLQkJbWF4ID0gbWluOwotCQly ZXQgPSBpY2xfY2FsY19tZ19wbGxfc3RhdGUoY3J0Y19zdGF0ZSwKLQkJCQkJICAgICZjcnRjX3N0 YXRlLT5kcGxsX2h3X3N0YXRlKTsKKwlpZiAoIWljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0 ZSwgZW5jb2RlciwgJnBvcnRfZHBsbC0+aHdfc3RhdGUpKSB7CisJCURSTV9ERUJVR19LTVMoIkNv dWxkIG5vdCBjYWxjdWxhdGUgVEJUIFBMTCBzdGF0ZS5cbiIpOworCQlyZXR1cm4gZmFsc2U7CiAJ fQogCi0JaWYgKCFyZXQpIHsKLQkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBQ TEwgc3RhdGUuXG4iKTsKKwlwb3J0X2RwbGwtPnBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwo c3RhdGUsIGNydGMsCisJCQkJCQkmcG9ydF9kcGxsLT5od19zdGF0ZSwKKwkJCQkJCURQTExfSURf SUNMX1RCVFBMTCwKKwkJCQkJCURQTExfSURfSUNMX1RCVFBMTCk7CisJaWYgKCFwb3J0X2RwbGwt PnBsbCkgeworCQlEUk1fREVCVUdfS01TKCJObyBUQlQtQUxUIFBMTCBmb3VuZFxuIik7CiAJCXJl dHVybiBmYWxzZTsKIAl9CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRj LAorCQkJCSAgICBwb3J0X2RwbGwtPnBsbCwgJnBvcnRfZHBsbC0+aHdfc3RhdGUpOwogCiAKLQlw bGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAotCQkJCSAgICAgJmNydGNf c3RhdGUtPmRwbGxfaHdfc3RhdGUsCi0JCQkJICAgICBtaW4sIG1heCk7Ci0JaWYgKCFwbGwpIHsK LQkJRFJNX0RFQlVHX0tNUygiTm8gUExMIHNlbGVjdGVkXG4iKTsKLQkJcmV0dXJuIGZhbHNlOwor CXBvcnRfZHBsbCA9ICZjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1tJQ0xfUE9SVF9EUExMX01H X1BIWV07CisJaWYgKCFpY2xfY2FsY19tZ19wbGxfc3RhdGUoY3J0Y19zdGF0ZSwgJnBvcnRfZHBs bC0+aHdfc3RhdGUpKSB7CisJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBjYWxjdWxhdGUgTUcg UEhZIFBMTCBzdGF0ZS5cbiIpOworCQlnb3RvIGVycl91bnJlZmVyZW5jZV90YnRfcGxsOwogCX0K IAorCWRwbGxfaWQgPSBpY2xfdGNfcG9ydF90b19wbGxfaWQoaW50ZWxfcG9ydF90b190YyhkZXZf cHJpdiwKKwkJCQkJCQkgZW5jb2Rlci0+cG9ydCkpOworCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxf ZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkJCSZwb3J0X2RwbGwtPmh3X3N0YXRl LAorCQkJCQkJZHBsbF9pZCwKKwkJCQkJCWRwbGxfaWQpOworCWlmICghcG9ydF9kcGxsLT5wbGwp IHsKKwkJRFJNX0RFQlVHX0tNUygiTm8gTUcgUEhZIFBMTCBmb3VuZFxuIik7CisJCWdvdG8gZXJy X3VucmVmZXJlbmNlX3RidF9wbGw7CisJfQogCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChz dGF0ZSwgY3J0YywKLQkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisJ CQkJICAgIHBvcnRfZHBsbC0+cGxsLCAmcG9ydF9kcGxsLT5od19zdGF0ZSk7CiAKLQljcnRjX3N0 YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKKwlpY2xfdXBkYXRlX2FjdGl2ZV9kcGxsKHN0YXRlLCBj cnRjLCBlbmNvZGVyKTsKIAogCXJldHVybiB0cnVlOworCitlcnJfdW5yZWZlcmVuY2VfdGJ0X3Bs bDoKKwlwb3J0X2RwbGwgPSAmY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBM TF9ERUZBVUxUXTsKKwlpbnRlbF91bnJlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0Yywg cG9ydF9kcGxsLT5wbGwpOworCisJcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBpY2xf Z2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLApAQCAtMjk1Nyw2ICsz MDA4LDI1IEBAIHN0YXRpYyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdm9pZCBpY2xfcHV0X2Rw bGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICBzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJ CWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCWVudW0gaWNs X3BvcnRfZHBsbF9pZCBpZDsKKworCWZvciAoaWQgPSBJQ0xfUE9SVF9EUExMX0RFRkFVTFQ7IGlk IDwgSUNMX1BPUlRfRFBMTF9DT1VOVDsgaWQrKykgeworCQlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAq cG9ydF9kcGxsID0KKwkJCSZjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1tpZF07CisKKwkJaWYg KCFwb3J0X2RwbGwtPnBsbCkKKwkJCWNvbnRpbnVlOworCisJCWludGVsX3VucmVmZXJlbmNlX3No YXJlZF9kcGxsKHN0YXRlLCBjcnRjLCBwb3J0X2RwbGwtPnBsbCk7CisJCXBvcnRfZHBsbC0+cGxs ID0gTlVMTDsKKwl9Cit9CisKIHN0YXRpYyBib29sIG1nX3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsLAogCQkJCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSkKQEAgLTMz MzAsNyArMzQwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGljbF9wbGxzW10g PSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGljbF9wbGxfbWdyID0gewog CS5kcGxsX2luZm8gPSBpY2xfcGxscywKIAkuZ2V0X2RwbGxzID0gaWNsX2dldF9kcGxscywKLQku cHV0X2RwbGxzID0gaW50ZWxfcHV0X2RwbGwsCisJLnB1dF9kcGxscyA9IGljbF9wdXRfZHBsbHMs CiAJLmR1bXBfaHdfc3RhdGUgPSBpY2xfZHVtcF9od19zdGF0ZSwKIH07CiAKQEAgLTMzNDMsNyAr MzQxMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGVobF9wbGxzW10gPSB7CiBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGVobF9wbGxfbWdyID0gewogCS5kcGxs X2luZm8gPSBlaGxfcGxscywKIAkuZ2V0X2RwbGxzID0gaWNsX2dldF9kcGxscywKLQkucHV0X2Rw bGxzID0gaW50ZWxfcHV0X2RwbGwsCisJLnB1dF9kcGxscyA9IGljbF9wdXRfZHBsbHMsCiAJLmR1 bXBfaHdfc3RhdGUgPSBpY2xfZHVtcF9od19zdGF0ZSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGxsX21nci5oCmluZGV4IDZmZmRjYzA2YWQyMy4uM2JlYTgxYmRlMzQzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKQEAgLTE0MSw2ICsxNDEsMTMgQEAgZW51bSBp bnRlbF9kcGxsX2lkIHsKIH07CiAjZGVmaW5lIEk5MTVfTlVNX1BMTFMgNwogCitlbnVtIGljbF9w b3J0X2RwbGxfaWQgeworCUlDTF9QT1JUX0RQTExfREVGQVVMVCwKKwlJQ0xfUE9SVF9EUExMX01H X1BIWSwKKworCUlDTF9QT1JUX0RQTExfQ09VTlQsCit9OworCiBzdHJ1Y3QgaW50ZWxfZHBsbF9o d19zdGF0ZSB7CiAJLyogaTl4eCwgcGNoIHBsbHMgKi8KIAl1MzIgZHBsbDsKQEAgLTMzNyw2ICsz NDQsOCBAQCBib29sIGludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIHZv aWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMpOwordm9pZCBpY2xfc2V0X2FjdGl2 ZV9wb3J0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAg ICBlbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkKTsKIHZvaWQgaW50ZWxfcHJlcGFy ZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7 CiB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAppbmRleCAxOGQyOTJkZDBkOWMuLmM2MTk1NWM0MTk3NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKQEAgLTgxMiw2ICs4MTIsMTUgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewog CS8qIEFjdHVhbCByZWdpc3RlciBzdGF0ZSBvZiB0aGUgZHBsbCwgZm9yIHNoYXJlZCBkcGxsIGNy b3NzLWNoZWNraW5nLiAqLwogCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3Rh dGU7CiAKKwkvKgorCSAqIElDTCByZXNlcnZlZCBEUExMcyBmb3IgdGhlIENSVEMvcG9ydC4gVGhl IGFjdGl2ZSBQTEwgaXMgc2VsZWN0ZWQgYnkKKwkgKiBzZXR0aW5nIHNoYXJlZF9kcGxsIGFuZCBk cGxsX2h3X3N0YXRlIHRvIG9uZSBvZiB0aGVzZSByZXNlcnZlZCBvbmVzLgorCSAqLworCXN0cnVj dCBpY2xfcG9ydF9kcGxsIHsKKwkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CisJCXN0 cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGh3X3N0YXRlOworCX0gaWNsX3BvcnRfZHBsbHNbSUNM X1BPUlRfRFBMTF9DT1VOVF07CisKIAkvKiBEU0kgUExMIHJlZ2lzdGVycyAqLwogCXN0cnVjdCB7 CiAJCXUzMiBjdHJsLCBkaXY7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==