From mboxrd@z Thu Jan 1 00:00:00 1970 From: clinton.a.taylor@intel.com Subject: [PATCH V5] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Fri, 12 Feb 2016 18:06:10 -0800 Message-ID: <1455329170-25474-1-git-send-email-clinton.a.taylor@intel.com> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id A7C806EB71 for ; Fri, 12 Feb 2016 18:09:42 -0800 (PST) In-Reply-To: <1449620105-32754-1-git-send-email-clinton.a.taylor@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 RnJvbTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KClNldCBjZGNs ayBiYXNlZCBvbiB0aGUgbWF4IHJlcXVpcmVkIHBpeGVsIGNsb2NrIGJhc2VkIG9uIFZDTwpzZWxl Y3RlZC4gVHJhY2sgYm9vdCB2Y28gaW5zdGVhZCBvZiBib290IGNkY2xrLgoKVGhlIHZjbyBpcyBu b3cgdHJhY2tlZCBhdCB0aGUgYXRvbWljIGxldmVsIGFuZCBhbGwgQ1JUQ3MgdXBkYXRlZCBpZgp0 aGUgcmVxdWlyZWQgdmNvIGlzIGNoYW5nZWQuIE5vdCB0ZXN0ZWQgd2l0aCBlRFAgdjEuNCBwYW5l bHMgdGhhdApyZXF1aXJlIDg2NDAgdmNvIGR1ZSB0byBhdmFpbGFiaWxpdHkuCgpWMTogaW5pdGlh bCB2ZXJzaW9uClYyOiBhZGQgdmNvIHRyYWNraW5nIGluIGludGVsX2RwX2NvbXB1dGVfY29uZmln KCksIHJlbmFtZQpza2xfYm9vdF9jZGNsay4KVjM6IHJlYmFzZSwgVjIgZmVlZGJhY2sgbm90IHBv c3NpYmxlIGFzIGVuY29kZXJzIGFyZSBub3QgYXdhcmUgb2YKYXRvbWljLgpWNDogdHJhY2sgdGFy Z2V0IHZjbyBpcyBhdG9taWMgc3RhdGUuIG1vZGVzZXQgYWxsIENSVENzIGlmIHZjbyBjaGFuZ2Vz ClY1OiByZW5hbWUgYXRvbWljIHZhcmlhYmxlLCBjbGVhbmVyIGlmL2Vsc2UgbG9naWMsIHVzZSBl eGlzdGluZyB2Y28gaWYKICAgIGVuY29kZXIgZG9lcyBub3QgcmV0dXJuIGEgbmV3IHZjbyB2YWx1 ZS4gY2hlY2tfcGF0Y2gucGwgY2xlYW51cAoKU2lnbmVkLW9mZi1ieTogQ2xpbnQgVGF5bG9yIDxj bGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KQ2M6IFZpbGxlID0/aXNvLTg4NTktMT9RP1N5cmo9 RTRsPUU0Pz0gPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jICAgICB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8ICAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgICAgNiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAgNCArKwogNSBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5z ZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXgg ODIxNjY2NS4uZjY1ZGQxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xODIyLDcgKzE4 MjIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJaW50IG51bV9mZW5jZV9yZWdzOyAv KiA4IG9uIHByZS05NjUsIDE2IG90aGVyd2lzZSAqLwogCiAJdW5zaWduZWQgaW50IGZzYl9mcmVx LCBtZW1fZnJlcSwgaXNfZGRyMzsKLQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7CisJdW5z aWduZWQgaW50IHNrbF92Y29fZnJlcTsKIAl1bnNpZ25lZCBpbnQgY2RjbGtfZnJlcSwgbWF4X2Nk Y2xrX2ZyZXEsIGF0b21pY19jZGNsa19mcmVxOwogCXVuc2lnbmVkIGludCBtYXhfZG90Y2xrX2Zy ZXE7CiAJdW5zaWduZWQgaW50IGhwbGxfZnJlcTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKaW5k ZXggNmQ1YjA5Zi4uMjg1YWRhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKQEAgLTI5NTgs NyArMjk1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCWludCBjZGNsa19mcmVxOwogCiAJCWNkY2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYpOwotCQlkZXZfcHJpdi0+c2tsX2Jvb3RfY2Rj bGsgPSBjZGNsa19mcmVxOworCQlkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID0gc2tsX2NkY2xrX2dl dF92Y28oY2RjbGtfZnJlcSk7CiAJCWlmIChza2xfc2FuaXRpemVfY2RjbGsoZGV2X3ByaXYpKQog CQkJRFJNX0RFQlVHX0tNUygiU2FuaXRpemVkIGNkY2xrIHByb2dyYW1tZWQgYnkgcHJlLW9zXG4i KTsKIAkJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9DVEwpICYgTENQTExfUExMX0VOQUJMRSkpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOWUyMjczYi4uYzI4M2FiZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNTY2Myw3ICs1NjYzLDcgQEAgc3Rh dGljIHVuc2lnbmVkIGludCBza2xfY2RjbGtfZGVjaW1hbCh1bnNpZ25lZCBpbnQgZnJlcSkKIAly ZXR1cm4gKGZyZXEgLSAxMDAwKSAvIDUwMDsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBza2xf Y2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKK3Vuc2lnbmVkIGludCBza2xfY2RjbGtf Z2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIApAQCAtNTgy MSwxNyArNTgyMSwyMSBAQCB2b2lkIHNrbF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCiB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKLQl1bnNpZ25lZCBpbnQgcmVxdWlyZWRfdmNvOworCXVuc2ln bmVkIGludCBjZGNsazsKIAogCS8qIERQTEwwIG5vdCBlbmFibGVkIChoYXBwZW5zIG9uIGVhcmx5 IEJJT1MgdmVyc2lvbnMpICovCiAJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9DVEwpICYgTENQTExf UExMX0VOQUJMRSkpIHsKIAkJLyogZW5hYmxlIERQTEwwICovCi0JCXJlcXVpcmVkX3ZjbyA9IHNr bF9jZGNsa19nZXRfdmNvKGRldl9wcml2LT5za2xfYm9vdF9jZGNsayk7Ci0JCXNrbF9kcGxsMF9l bmFibGUoZGV2X3ByaXYsIHJlcXVpcmVkX3Zjbyk7CisJCWlmIChkZXZfcHJpdi0+c2tsX3Zjb19m cmVxICE9IDg2NDApCisJCQlkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID0gODEwMDsKKwkJc2tsX2Rw bGwwX2VuYWJsZShkZXZfcHJpdiwgZGV2X3ByaXYtPnNrbF92Y29fZnJlcSk7CisJCWNkY2xrID0g KChkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID09IDgxMDApID8gMzM3NTAwIDogMzA4NTcwKTsKKwl9 IGVsc2UgeworCQljZGNsayA9IGRldl9wcml2LT5jZGNsa19mcmVxOwogCX0KIAotCS8qIHNldCBD RENMSyB0byB0aGUgZnJlcXVlbmN5IHRoZSBCSU9TIGNob3NlICovCi0Jc2tsX3NldF9jZGNsayhk ZXZfcHJpdiwgZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrKTsKKwkvKiBzZXQgQ0RDTEsgdG8gdGhl IGxvd2VzdCBmcmVxdWVuY3ksIE1vZGVzZXQgZm9sbG93cyAqLworCXNrbF9zZXRfY2RjbGsoZGV2 X3ByaXYsIGNkY2xrKTsKIAogCS8qIGVuYWJsZSBEQlVGIHBvd2VyICovCiAJSTkxNV9XUklURShE QlVGX0NUTCwgSTkxNV9SRUFEKERCVUZfQ1RMKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7CkBAIC01 ODQ3LDcgKzU4NTEsNyBAQCBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKIAl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQTEwx X0NUTCk7CiAJdWludDMyX3QgY2RjdGwgPSBJOTE1X1JFQUQoQ0RDTEtfQ1RMKTsKLQlpbnQgZnJl cSA9IGRldl9wcml2LT5za2xfYm9vdF9jZGNsazsKKwlpbnQgZnJlcSA9IGRldl9wcml2LT5jZGNs a19mcmVxOwogCiAJLyoKIAkgKiBjaGVjayBpZiB0aGUgcHJlLW9zIGludGlhbGl6ZWQgdGhlIGRp c3BsYXkKQEAgLTU4NzEsMTEgKzU4NzUsNyBAQCBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJLyogQWxsIHdlbGw7IG5vdGhpbmcgdG8g c2FuaXRpemUgKi8KIAkJcmV0dXJuIGZhbHNlOwogc2FuaXRpemU6Ci0JLyoKLQkgKiBBcyBvZiBu b3cgaW5pdGlhbGl6ZSB3aXRoIG1heCBjZGNsayB0aWxsCi0JICogd2UgZ2V0IGR5bmFtaWMgY2Rj bGsgc3VwcG9ydAotCSAqICovCi0JZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrID0gZGV2X3ByaXYt Pm1heF9jZGNsa19mcmVxOworCiAJc2tsX2luaXRfY2RjbGsoZGV2X3ByaXYpOwogCiAJLyogd2Ug ZGlkIGhhdmUgdG8gc2FuaXRpemUgKi8KQEAgLTk4NDUsNiArOTg0NSw3MCBAQCBzdGF0aWMgdm9p ZCBicm9hZHdlbGxfbW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg Km9sZF9zdGF0ZSkKIAlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKIH0KIAor c3RhdGljIGludCBza2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KHN0YXRlLT5kZXYpOworCWNvbnN0IGludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRl KHN0YXRlKTsKKwlpbnQgY2RjbGs7CisKKwkvKgorCSAqIEZJWE1FIHNob3VsZCBhbHNvIGFjY291 bnQgZm9yIHBsYW5lIHJhdGlvCisJICogb25jZSA2NGJwcCBwaXhlbCBmb3JtYXRzIGFyZSBzdXBw b3J0ZWQuCisJICovCisKKwlpZiAodG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+Y2RjbGtf cGxsX3ZjbyA9PSA4NjQwKSB7CisJCS8qIHZjbyA4NjQwICovCisJCWlmIChtYXhfcGl4Y2xrID4g NTQwMDAwKQorCQkJY2RjbGsgPSA2MTcxNDA7CisJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0MzIw MDApCisJCQljZGNsayA9IDU0MDAwMDsKKwkJZWxzZSBpZiAobWF4X3BpeGNsayA+IDMwODU3MCkK KwkJCWNkY2xrID0gNDMyMDAwOworCQllbHNlCisJCQljZGNsayA9IDMwODU3MDsKKwl9IGVsc2Ug eworCQkvKiBWQ08gODEwMCAqLworCQlpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKKwkJCWNkY2xr ID0gNjc1MDAwOworCQllbHNlIGlmIChtYXhfcGl4Y2xrID4gNDUwMDAwKQorCQkJY2RjbGsgPSA1 NDAwMDA7CisJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMzc1MDApCisJCQljZGNsayA9IDQ1MDAw MDsKKwkJZWxzZQorCQkJY2RjbGsgPSAzMzc1MDA7CisJfQorCisJLyoKKwkgKiBGSVhNRSBtb3Zl IHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bworCSAqIGNvbXB1dGVfY29uZmlnKCkgc28gd2UgY2Fu IGZhaWwgZ3JhY2VndWxseS4KKwkgKi8KKwlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4X2NkY2xr X2ZyZXEpIHsKKwkJRFJNX0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBt YXggKCVkIGtIeilcbiIsCisJCQkgIGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwor CQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKKwl9CisKKwl0b19pbnRlbF9hdG9t aWNfc3RhdGUoc3RhdGUpLT5jZGNsayA9IGNkY2xrOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyB2b2lkIHNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq b2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfc3RhdGUtPmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwor CXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRl KS0+Y2RjbGs7CisKKwkvKgorCSAqIEZJWE1FIGRpc2FibGUvZW5hYmxlIFBMTCBzaG91bGQgd3Jh cCBzZXRfY2RjbGsoKQorCSAqLworCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7 CisKKwlpZiAodG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSktPmNkY2xrX3BsbF92Y28p IHsKKwkJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRf c3RhdGUpLT5jZGNsa19wbGxfdmNvOworCX0KK30KKwogc3RhdGljIGludCBoYXN3ZWxsX2NydGNf Y29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKQEAgLTEzMjE5LDExICsxMzI4MywxNCBA QCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKIAogc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRl LT5kZXY7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRl bF9hdG9taWNfc3RhdGUoc3RhdGUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHN0YXRlLT5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJaW50IHJldCA9IDAsIGk7CisJdW5z aWduZWQgaW50IHRhcmdldF92Y28gPSAwOworCWJvb2wgY2RjbGtfY2hhbmdlLCB2Y29fY2hhbmdl OwogCiAJaWYgKCFjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0YXRlKSkgewogCQlEUk1f REVCVUdfS01TKCJyZWplY3RpbmcgY29uZmxpY3RpbmcgZGlnaXRhbCBwb3J0IGNvbmZpZ3VyYXRp b25cbiIpOwpAQCAtMTMyNDgsOSArMTMzMTUsMjIgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0 X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJICogYWRqdXN0ZWRfbW9k ZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5LgogCSAqLwogCWlmIChkZXZfcHJpdi0+ZGlzcGxh eS5tb2Rlc2V0X2NhbGNfY2RjbGspIHsKKwkJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZ TEFLRShkZXYpKSB7CisJCQl0YXJnZXRfdmNvID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRl KS0+Y2RjbGtfcGxsX3ZjbzsKKwkJCWlmICghdGFyZ2V0X3ZjbykKKwkJCQl0b19pbnRlbF9hdG9t aWNfc3RhdGUoc3RhdGUpLT5jZGNsa19wbGxfdmNvID0KKwkJCQkJCSAgICAgIGRldl9wcml2LT5z a2xfdmNvX2ZyZXE7CisJCX0KKwogCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2Nh bGNfY2RjbGsoc3RhdGUpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJY2Rj bGtfY2hhbmdlID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJl cTsKKwkJdmNvX2NoYW5nZSA9ICgoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikp ICYmCisJCQkgICAgICh0YXJnZXRfdmNvKSAmJiAoZGV2X3ByaXYtPnNrbF92Y29fZnJlcSAhPSB0 YXJnZXRfdmNvKSk7CiAKLQkJaWYgKCFyZXQgJiYgaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBk ZXZfcHJpdi0+Y2RjbGtfZnJlcSkKKwkJaWYgKGNkY2xrX2NoYW5nZSB8fCB2Y29fY2hhbmdlKQog CQkJcmV0ID0gaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RhdGUpOwogCiAJCWlmIChyZXQgPCAw KQpAQCAtMTUwMDIsNiArMTUwODIsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlicm94dG9uX21vZGVzZXRfY29tbWl0X2NkY2xr OwogCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQogCQkJYnJveHRvbl9t b2Rlc2V0X2NhbGNfY2RjbGs7CisJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FC WUxBS0UoZGV2KSkgeworCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9 CisJCQlza2xfbW9kZXNldF9jb21taXRfY2RjbGs7CisJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVz ZXRfY2FsY19jZGNsayA9CisJCQlza2xfbW9kZXNldF9jYWxjX2NkY2xrOwogCX0KIAogCXN3aXRj aCAoSU5URUxfSU5GTyhkZXYpLT5nZW4pIHsKQEAgLTE1NzI1LDcgKzE1ODEwLDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgewogCQkJZGV2X3ByaXYtPmFjdGl2 ZV9jcnRjcyB8PSAxIDw8IGNydGMtPnBpcGU7CiAKLQkJCWlmIChJU19CUk9BRFdFTEwoZGV2X3By aXYpKSB7CisJCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19TS1lMQUtFKGRldl9w cml2KSB8fAorCQkJICAgIElTX0tBQllMQUtFKGRldl9wcml2KSkgewogCQkJCXBpeGNsayA9IGls a19waXBlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7CiAKIAkJCQkvKiBwaXhlbCByYXRlIG11c3Ru J3QgZXhjZWVkIDk1JSBvZiBjZGNsayB3aXRoIElQUyBvbiBCRFcgKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCmluZGV4IGEwNzNmMDQuLmFmYTIxYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpA QCAtMTI0NSw2ICsxMjQ1LDcgQEAgc3RhdGljIHZvaWQKIHNrbF9lZHBfc2V0X3BsbF9jb25maWco c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXUzMiBjdHJsMTsKKwl1 MzIgdmNvID0gODEwMDsKIAogCW1lbXNldCgmcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUsIDAs CiAJICAgICAgIHNpemVvZihwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSkpOwpAQCAtMTI3Nywx MyArMTI3OCwxNiBAQCBza2xfZWRwX3NldF9wbGxfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKIAljYXNlIDEwODAwMDoKIAkJY3RybDEgfD0gRFBMTF9DVFJMMV9M SU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVfMTA4MCwKIAkJCQkJICAgICAgU0tMX0RQTEww KTsKKwkJdmNvID0gODY0MDsKIAkJYnJlYWs7CiAJY2FzZSAyMTYwMDA6CiAJCWN0cmwxIHw9IERQ TExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzIxNjAsCiAJCQkJCSAgICAg IFNLTF9EUExMMCk7CisJCXZjbyA9IDg2NDA7CiAJCWJyZWFrOwotCiAJfQorCisJdG9faW50ZWxf YXRvbWljX3N0YXRlKHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlKS0+Y2RjbGtfcGxsX3ZjbyA9IHZj bzsKIAlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5jdHJsMSA9IGN0cmwxOwogfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDg3ODE3MmEuLjQ3OTM2ZDQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCkBAIC0yNjAsNiArMjYwLDkgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSB7CiAKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHNoYXJlZF9kcGxsW0k5MTVf TlVNX1BMTFNdOwogCXN0cnVjdCBpbnRlbF93bV9jb25maWcgd21fY29uZmlnOworCisJLyogU0tM L0tCTCBPbmx5ICovCisJdW5zaWduZWQgaW50IGNkY2xrX3BsbF92Y287CiB9OwogCiBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgewpAQCAtMTE5MSw2ICsxMTk0LDcgQEAgdm9pZCBieHRfZGlzYWJs ZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgc2tsX2luaXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBza2xfc2FuaXRp emVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgc2tsX3Vu aW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordW5zaWduZWQg aW50IHNrbF9jZGNsa19nZXRfdmNvKHVuc2lnbmVkIGludCBmcmVxKTsKIHZvaWQgc2tsX2VuYWJs ZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgc2tsX2Rpc2Fi bGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2Rw X2dldF9tX24oc3RydWN0IGludGVsX2NydGMgKmNydGMsCi0tIAoxLjcuOS41CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK