From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 19/23] drm/i915/icl: Reserve all required PLLs for TypeC ports Date: Fri, 7 Jun 2019 20:41:29 +0300 Message-ID: <20190607174129.18725-1-imre.deak@intel.com> References: <20190604145826.16424-20-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1A38689DA5 for ; Fri, 7 Jun 2019 17:41:35 +0000 (UTC) In-Reply-To: <20190604145826.16424-20-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 ZXMgcmVzZXJ2aW5nIGFsbCByZXF1aXJlZCBQTExzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KCnYy OgotIEZpeCByZWxlYXNpbmcgdGhlIElDTCBQTExzLCBub3QgY2xlYXJpbmcgdGhlIFBMTHMgZnJv bSB0aGUgb2xkCiAgY3J0Y19zdGF0ZS4KCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZnds bC5jaD4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgIDExICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgMTUxICsrKysrKysrKysrKysrKysrKyst LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIHwgICA5ICsrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgIHwgICA5ICsrCiA0IGZpbGVzIGNo YW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNzM4MWZiMmUxMjQwLi4wMDZiZTNjM2YxYmQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTk4ODAsNiArOTg4MCw3IEBAIHN0YXRp YyB2b2lkIGljZWxha2VfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkJCWVudW0gcG9ydCBwb3J0LAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKKwllbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkOwogCWVu dW0gaW50ZWxfZHBsbF9pZCBpZDsKIAl1MzIgdGVtcDsKIApAQCAtOTg4NywyMiArOTg4OCwyOCBA QCBzdGF0aWMgdm9pZCBpY2VsYWtlX2dldF9kZGlfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJdGVtcCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCkgJgogCQkg ICAgICAgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQpOwogCQlpZCA9IHRlbXAg Pj4gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KTsKKwkJcG9ydF9kcGxsX2lk ID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOwogCX0gZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190Yyhk ZXZfcHJpdiwgcG9ydCkpIHsKIAkJdTMyIGNsa19zZWwgPSBJOTE1X1JFQUQoRERJX0NMS19TRUwo cG9ydCkpICYgRERJX0NMS19TRUxfTUFTSzsKIAogCQlpZiAoY2xrX3NlbCA9PSBERElfQ0xLX1NF TF9NRykgewogCQkJaWQgPSBpY2xfdGNfcG9ydF90b19wbGxfaWQoaW50ZWxfcG9ydF90b190Yyhk ZXZfcHJpdiwKIAkJCQkJCQkJICAgIHBvcnQpKTsKKwkJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JU X0RQTExfTUdfUEhZOwogCQl9IGVsc2UgewogCQkJV0FSTl9PTihjbGtfc2VsIDwgRERJX0NMS19T RUxfVEJUXzE2Mik7CiAJCQlpZCA9IERQTExfSURfSUNMX1RCVFBMTDsKKwkJCXBvcnRfZHBsbF9p ZCA9IElDTF9QT1JUX0RQTExfREVGQVVMVDsKIAkJfQogCX0gZWxzZSB7CiAJCVdBUk4oMSwgIklu dmFsaWQgcG9ydCAleFxuIiwgcG9ydCk7CiAJCXJldHVybjsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+ c2hhcmVkX2RwbGwgPSBpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsIGlkKTsK KwlwaXBlX2NvbmZpZy0+aWNsX3BvcnRfZHBsbHNbcG9ydF9kcGxsX2lkXS5wbGwgPQorCQlpbnRl bF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsIGlkKTsKKworCWljbF9zZXRfYWN0aXZl X3BvcnRfZHBsbChwaXBlX2NvbmZpZywgcG9ydF9kcGxsX2lkKTsKIH0KIAogc3RhdGljIHZvaWQg Ynh0X2dldF9kZGlfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEy MDQxLDYgKzEyMDQ4LDggQEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlzYXZlZF9zdGF0ZS0+c2NhbGVyX3N0YXRlID0gY3J0Y19z dGF0ZS0+c2NhbGVyX3N0YXRlOwogCXNhdmVkX3N0YXRlLT5zaGFyZWRfZHBsbCA9IGNydGNfc3Rh dGUtPnNoYXJlZF9kcGxsOwogCXNhdmVkX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gY3J0Y19zdGF0 ZS0+ZHBsbF9od19zdGF0ZTsKKwltZW1jcHkoc2F2ZWRfc3RhdGUtPmljbF9wb3J0X2RwbGxzLCBj cnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxscywKKwkgICAgICAgc2l6ZW9mKHNhdmVkX3N0YXRlLT5p Y2xfcG9ydF9kcGxscykpOwogCXNhdmVkX3N0YXRlLT5jcmNfZW5hYmxlZCA9IGNydGNfc3RhdGUt PmNyY19lbmFibGVkOwogCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8CiAJICAgIElTX1ZBTExFWVZJ RVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggOGFjMjkzZGI0M2E1Li4xNzQ0MWQ1Zjk5MGUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMjg1NiwzNCArMjg1Niw3OSBAQCBz dGF0aWMgYm9vbCBpY2xfY2FsY19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qKgorICogaWNsX3NldF9hY3RpdmVf cG9ydF9kcGxsIC0gc2VsZWN0IHRoZSBhY3RpdmUgcG9ydCBEUExMIGZvciBhIGdpdmVuIENSVEMK KyAqIEBjcnRjX3N0YXRlOiBzdGF0ZSBmb3IgdGhlIENSVEMgdG8gc2VsZWN0IHRoZSBEUExMIGZv cgorICogQHBvcnRfZHBsbF9pZDogdGhlIGFjdGl2ZSBAcG9ydF9kcGxsX2lkIHRvIHNlbGVjdAor ICoKKyAqIFNlbGVjdCB0aGUgZ2l2ZW4gQHBvcnRfZHBsbF9pZCBpbnN0YW5jZSBmcm9tIHRoZSBE UExMcyByZXNlcnZlZCBmb3IgdGhlCisgKiBDUlRDLgorICovCit2b2lkIGljbF9zZXRfYWN0aXZl X3BvcnRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAg IGVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0X2RwbGxfaWQpCit7CisJc3RydWN0IGljbF9wb3J0 X2RwbGwgKnBvcnRfZHBsbCA9CisJCSZjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1twb3J0X2Rw bGxfaWRdOworCisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwb3J0X2RwbGwtPnBsbDsKKwlj cnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gcG9ydF9kcGxsLT5od19zdGF0ZTsKK30KKworc3Rh dGljIHZvaWQgaWNsX3VwZGF0ZV9hY3RpdmVfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMp OworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnByaW1hcnlfcG9ydDsKKwllbnVtIGljbF9w b3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkOworCisJcHJpbWFyeV9wb3J0ID0gZW5jb2Rlci0+dHlw ZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUID8KKwkJZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSkt PnByaW1hcnkgOgorCQllbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCisJc3dpdGNo IChwcmltYXJ5X3BvcnQtPnRjX21vZGUpIHsKKwljYXNlIFRDX1BPUlRfVEJUX0FMVDoKKwkJcG9y dF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOworCQlicmVhazsKKwljYXNlIFRDX1BP UlRfRFBfQUxUOgorCWNhc2UgVENfUE9SVF9MRUdBQ1k6CisJCXBvcnRfZHBsbF9pZCA9IElDTF9Q T1JUX0RQTExfTUdfUEhZOworCQlicmVhazsKKwl9CisKKwlpY2xfc2V0X2FjdGl2ZV9wb3J0X2Rw bGwoY3J0Y19zdGF0ZSwgcG9ydF9kcGxsX2lkKTsKK30KKwogc3RhdGljIGJvb2wgaWNsX2dldF9j b21ib19waHlfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CiAJCWludGVs X2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwotCXN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbCAqcGxsOworCXN0cnVjdCBpY2xfcG9ydF9kcGxsICpwb3J0X2RwbGwgPQorCQkm Y3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBMTF9ERUZBVUxUXTsKIAotCWlm ICghaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLCBlbmNvZGVyLAotCQkJCSAmY3J0Y19z dGF0ZS0+ZHBsbF9od19zdGF0ZSkpIHsKKwlpZiAoIWljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19z dGF0ZSwgZW5jb2RlciwgJnBvcnRfZHBsbC0+aHdfc3RhdGUpKSB7CiAJCURSTV9ERUJVR19LTVMo IkNvdWxkIG5vdCBjYWxjdWxhdGUgY29tYm8gUEhZIFBMTCBzdGF0ZS5cbiIpOwogCiAJCXJldHVy biBmYWxzZTsKIAl9CiAKLQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRj LCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKLQkJCQkgICAgIERQTExfSURfSUNMX0RQTEww LAotCQkJCSAgICAgRFBMTF9JRF9JQ0xfRFBMTDEpOwotCWlmICghcGxsKSB7CisJcG9ydF9kcGxs LT5wbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkJJnBvcnRf ZHBsbC0+aHdfc3RhdGUsCisJCQkJCQlEUExMX0lEX0lDTF9EUExMMCwKKwkJCQkJCURQTExfSURf SUNMX0RQTEwxKTsKKwlpZiAoIXBvcnRfZHBsbC0+cGxsKSB7CiAJCURSTV9ERUJVR19LTVMoIk5v IGNvbWJvIFBIWSBQTEwgZm91bmQgZm9yIHBvcnQgJWNcbiIsCiAJCQkgICAgICBwb3J0X25hbWUo ZW5jb2Rlci0+cG9ydCkpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJaW50ZWxfcmVmZXJlbmNl X3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAotCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxs X2h3X3N0YXRlKTsKKwkJCQkgICAgcG9ydF9kcGxsLT5wbGwsICZwb3J0X2RwbGwtPmh3X3N0YXRl KTsKIAotCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOworCWljbF91cGRhdGVfYWN0aXZl X2RwbGwoc3RhdGUsIGNydGMsIGVuY29kZXIpOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0yODk1 LDQ5ICsyOTQwLDU1IEBAIHN0YXRpYyBib29sIGljbF9nZXRfdGNfcGh5X2RwbGxzKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUs IGNydGMpOwotCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJp diwgZW5jb2Rlci0+cG9ydCk7Ci0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQ7 Ci0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Ci0JZW51bSBpbnRlbF9kcGxsX2lkIG1p biwgbWF4OwotCWJvb2wgcmV0OwotCi0JaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVU X0RQX01TVCkKLQkJZGlnX3BvcnQgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKS0+cHJpbWFy eTsKLQllbHNlCi0JCWRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsK KwlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAqcG9ydF9kcGxsID0KKwkJJmNydGNfc3RhdGUtPmljbF9w b3J0X2RwbGxzW0lDTF9QT1JUX0RQTExfREVGQVVMVF07CisJZW51bSBpbnRlbF9kcGxsX2lkIGRw bGxfaWQ7CiAKLQlpZiAoZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKSB7Ci0J CW1pbiA9IERQTExfSURfSUNMX1RCVFBMTDsKLQkJbWF4ID0gbWluOwotCQlyZXQgPSBpY2xfY2Fs Y19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVuY29kZXIsCi0JCQkJCSAgJmNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUpOwotCX0gZWxzZSB7Ci0JCW1pbiA9IGljbF90Y19wb3J0X3RvX3BsbF9pZCh0 Y19wb3J0KTsKLQkJbWF4ID0gbWluOwotCQlyZXQgPSBpY2xfY2FsY19tZ19wbGxfc3RhdGUoY3J0 Y19zdGF0ZSwKLQkJCQkJICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKKwlpZiAoIWlj bF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2RlciwgJnBvcnRfZHBsbC0+aHdfc3Rh dGUpKSB7CisJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBjYWxjdWxhdGUgVEJUIFBMTCBzdGF0 ZS5cbiIpOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaWYgKCFyZXQpIHsKLQkJRFJNX0RFQlVH X0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBQTEwgc3RhdGUuXG4iKTsKKwlwb3J0X2RwbGwtPnBs bCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJCQkmcG9ydF9kcGxs LT5od19zdGF0ZSwKKwkJCQkJCURQTExfSURfSUNMX1RCVFBMTCwKKwkJCQkJCURQTExfSURfSUNM X1RCVFBMTCk7CisJaWYgKCFwb3J0X2RwbGwtPnBsbCkgeworCQlEUk1fREVCVUdfS01TKCJObyBU QlQtQUxUIFBMTCBmb3VuZFxuIik7CiAJCXJldHVybiBmYWxzZTsKIAl9CisJaW50ZWxfcmVmZXJl bmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwb3J0X2RwbGwtPnBsbCwgJnBv cnRfZHBsbC0+aHdfc3RhdGUpOwogCiAKLQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0 YXRlLCBjcnRjLAotCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCi0JCQkJICAg ICBtaW4sIG1heCk7Ci0JaWYgKCFwbGwpIHsKLQkJRFJNX0RFQlVHX0tNUygiTm8gUExMIHNlbGVj dGVkXG4iKTsKLQkJcmV0dXJuIGZhbHNlOworCXBvcnRfZHBsbCA9ICZjcnRjX3N0YXRlLT5pY2xf cG9ydF9kcGxsc1tJQ0xfUE9SVF9EUExMX01HX1BIWV07CisJaWYgKCFpY2xfY2FsY19tZ19wbGxf c3RhdGUoY3J0Y19zdGF0ZSwgJnBvcnRfZHBsbC0+aHdfc3RhdGUpKSB7CisJCURSTV9ERUJVR19L TVMoIkNvdWxkIG5vdCBjYWxjdWxhdGUgTUcgUEhZIFBMTCBzdGF0ZS5cbiIpOworCQlnb3RvIGVy cl91bnJlZmVyZW5jZV90YnRfcGxsOwogCX0KIAorCWRwbGxfaWQgPSBpY2xfdGNfcG9ydF90b19w bGxfaWQoaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwKKwkJCQkJCQkgZW5jb2Rlci0+cG9ydCkp OworCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywK KwkJCQkJCSZwb3J0X2RwbGwtPmh3X3N0YXRlLAorCQkJCQkJZHBsbF9pZCwKKwkJCQkJCWRwbGxf aWQpOworCWlmICghcG9ydF9kcGxsLT5wbGwpIHsKKwkJRFJNX0RFQlVHX0tNUygiTm8gTUcgUEhZ IFBMTCBmb3VuZFxuIik7CisJCWdvdG8gZXJyX3VucmVmZXJlbmNlX3RidF9wbGw7CisJfQogCWlu dGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKLQkJCQkgICAgcGxsLCAmY3J0 Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisJCQkJICAgIHBvcnRfZHBsbC0+cGxsLCAmcG9ydF9k cGxsLT5od19zdGF0ZSk7CiAKLQljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKKwlpY2xf dXBkYXRlX2FjdGl2ZV9kcGxsKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsKIAogCXJldHVybiB0cnVl OworCitlcnJfdW5yZWZlcmVuY2VfdGJ0X3BsbDoKKwlwb3J0X2RwbGwgPSAmY3J0Y19zdGF0ZS0+ aWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBMTF9ERUZBVUxUXTsKKwlpbnRlbF91bnJlZmVyZW5j ZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywgcG9ydF9kcGxsLT5wbGwpOworCisJcmV0dXJuIGZh bHNlOwogfQogCiBzdGF0aWMgYm9vbCBpY2xfZ2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLApAQCAtMjk1Nyw2ICszMDA4LDI0IEBAIHN0YXRpYyBib29sIGljbF9nZXRf ZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJcmV0dXJuIGZhbHNlOwog fQogCitzdGF0aWMgdm9pZCBpY2xfcHV0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAorCQkJICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3Rh dGUoc3RhdGUsIGNydGMpOworCWVudW0gaWNsX3BvcnRfZHBsbF9pZCBpZDsKKworCWZvciAoaWQg PSBJQ0xfUE9SVF9EUExMX0RFRkFVTFQ7IGlkIDwgSUNMX1BPUlRfRFBMTF9DT1VOVDsgaWQrKykg eworCQlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAqcG9ydF9kcGxsID0KKwkJCSZjcnRjX3N0YXRlLT5p Y2xfcG9ydF9kcGxsc1tpZF07CisKKwkJaWYgKCFwb3J0X2RwbGwtPnBsbCkKKwkJCWNvbnRpbnVl OworCisJCWludGVsX3VucmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLCBwb3J0X2Rw bGwtPnBsbCk7CisJfQorfQorCiBzdGF0aWMgYm9vbCBtZ19wbGxfZ2V0X2h3X3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKnBsbCwKIAkJCQlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCkBAIC0z MzMwLDcgKzMzOTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBpY2xfcGxsc1td ID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9IHsK IAkuZHBsbF9pbmZvID0gaWNsX3BsbHMsCiAJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMsCi0J LnB1dF9kcGxscyA9IGludGVsX3B1dF9kcGxsLAorCS5wdXRfZHBsbHMgPSBpY2xfcHV0X2RwbGxz LAogCS5kdW1wX2h3X3N0YXRlID0gaWNsX2R1bXBfaHdfc3RhdGUsCiB9OwogCkBAIC0zMzQzLDcg KzM0MTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBlaGxfcGxsc1tdID0gewog c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBlaGxfcGxsX21nciA9IHsKIAkuZHBs bF9pbmZvID0gZWhsX3BsbHMsCiAJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMsCi0JLnB1dF9k cGxscyA9IGludGVsX3B1dF9kcGxsLAorCS5wdXRfZHBsbHMgPSBpY2xfcHV0X2RwbGxzLAogCS5k dW1wX2h3X3N0YXRlID0gaWNsX2R1bXBfaHdfc3RhdGUsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuaAppbmRleCA2ZmZkY2MwNmFkMjMuLjNiZWE4MWJkZTM0MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCkBAIC0xNDEsNiArMTQxLDEzIEBAIGVudW0g aW50ZWxfZHBsbF9pZCB7CiB9OwogI2RlZmluZSBJOTE1X05VTV9QTExTIDcKIAorZW51bSBpY2xf cG9ydF9kcGxsX2lkIHsKKwlJQ0xfUE9SVF9EUExMX0RFRkFVTFQsCisJSUNMX1BPUlRfRFBMTF9N R19QSFksCisKKwlJQ0xfUE9SVF9EUExMX0NPVU5ULAorfTsKKwogc3RydWN0IGludGVsX2RwbGxf aHdfc3RhdGUgewogCS8qIGk5eHgsIHBjaCBwbGxzICovCiAJdTMyIGRwbGw7CkBAIC0zMzcsNiAr MzQ0LDggQEAgYm9vbCBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiB2 b2lkIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKK3ZvaWQgaWNsX3NldF9hY3Rp dmVfcG9ydF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAg ICAgZW51bSBpY2xfcG9ydF9kcGxsX2lkIHBvcnRfZHBsbF9pZCk7CiB2b2lkIGludGVsX3ByZXBh cmVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Owogdm9pZCBpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKaW5kZXggZjliNmY2M2ViYmZlLi43ZjFkY2I4ZDhhMjggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCkBAIC04MTIsNiArODEyLDE1IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsK IAkvKiBBY3R1YWwgcmVnaXN0ZXIgc3RhdGUgb2YgdGhlIGRwbGwsIGZvciBzaGFyZWQgZHBsbCBj cm9zcy1jaGVja2luZy4gKi8KIAlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSBkcGxsX2h3X3N0 YXRlOwogCisJLyoKKwkgKiBJQ0wgcmVzZXJ2ZWQgRFBMTHMgZm9yIHRoZSBDUlRDL3BvcnQuIFRo ZSBhY3RpdmUgUExMIGlzIHNlbGVjdGVkIGJ5CisJICogc2V0dGluZyBzaGFyZWRfZHBsbCBhbmQg ZHBsbF9od19zdGF0ZSB0byBvbmUgb2YgdGhlc2UgcmVzZXJ2ZWQgb25lcy4KKwkgKi8KKwlzdHJ1 Y3QgaWNsX3BvcnRfZHBsbCB7CisJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOworCQlz dHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSBod19zdGF0ZTsKKwl9IGljbF9wb3J0X2RwbGxzW0lD TF9QT1JUX0RQTExfQ09VTlRdOworCiAJLyogRFNJIFBMTCByZWdpc3RlcnMgKi8KIAlzdHJ1Y3Qg ewogCQl1MzIgY3RybCwgZGl2OwotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=