From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH V11] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Wed, 16 Mar 2016 08:27:18 +0100 Message-ID: <20160316072718.GM14170@phenom.ffwll.local> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> <1458077645-12657-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 mail-wm0-x22e.google.com (mail-wm0-x22e.google.com [IPv6:2a00:1450:400c:c09::22e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7BB806E84E for ; Wed, 16 Mar 2016 07:26:32 +0000 (UTC) Received: by mail-wm0-x22e.google.com with SMTP id p65so58613435wmp.0 for ; Wed, 16 Mar 2016 00:26:32 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1458077645-12657-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: clinton.a.taylor@intel.com Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMTUsIDIwMTYgYXQgMDI6MzQ6MDVQTSAtMDcwMCwgY2xpbnRvbi5hLnRheWxv ckBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9y QGludGVsLmNvbT4KPiAKPiBXQVJOSU5HOiBVc2luZyBDaHJvbWVPUyB3aXRoIGFuIGVEUCBwYW5l bCBhbmQgYSA0S0A2MCBEUCBtb25pdG9yIGNvbm5lY3RlZAo+IHRvIERESTEgdGhlIHN5c3RlbSB3 aWxsIGhhcmQgaGFuZyBkdXJpbmcgYSBjb2xkIGJvb3QuIE9jY3VycyB3aGVuIERESTEKPiBpcyBl bmFibGVkIHdoZW4gdGhlIGNkY2xrIGlzIGxlc3MgdGhlbiByZXF1aXJlZC4gRFAgY29ubmVjdGVk IHRvIERESTIKPiBhbmQgSFBEIG9uIGVpdGhlciBwb3J0IHdvcmtzIGNvcnJlY3RseS4KClNvIHRo aXMgcGF0Y2ggaGFyZC1oYW5ncyBtYWNoaW5lcz8KCj4gCj4gU2V0IGNkY2xrIGJhc2VkIG9uIHRo ZSBtYXggcmVxdWlyZWQgcGl4ZWwgY2xvY2sgYmFzZWQgb24gVkNPCj4gc2VsZWN0ZWQuIFRyYWNr IGJvb3QgdmNvIGluc3RlYWQgb2YgYm9vdCBjZGNsay4KPiAKPiBUaGUgdmNvIGlzIG5vdyB0cmFj a2VkIGF0IHRoZSBhdG9taWMgbGV2ZWwgYW5kIGFsbCBDUlRDcyB1cGRhdGVkIGlmCj4gdGhlIHJl cXVpcmVkIHZjbyBpcyBjaGFuZ2VkLiBOb3QgdGVzdGVkIHdpdGggZURQIHYxLjQgcGFuZWxzIHRo YXQKPiByZXF1aXJlIDg2NDAgdmNvIGR1ZSB0byBhdmFpbGFiaWxpdHkuCj4gCj4gVjE6IGluaXRp YWwgdmVyc2lvbgo+IFYyOiBhZGQgdmNvIHRyYWNraW5nIGluIGludGVsX2RwX2NvbXB1dGVfY29u ZmlnKCksIHJlbmFtZQo+IHNrbF9ib290X2NkY2xrLgo+IFYzOiByZWJhc2UsIFYyIGZlZWRiYWNr IG5vdCBwb3NzaWJsZSBhcyBlbmNvZGVycyBhcmUgbm90IGF3YXJlIG9mCj4gYXRvbWljLgo+IFY0 OiB0cmFjayB0YXJnZXQgdmNvIGlzIGF0b21pYyBzdGF0ZS4gbW9kZXNldCBhbGwgQ1JUQ3MgaWYg dmNvIGNoYW5nZXMKPiBWNTogcmVuYW1lIGF0b21pYyB2YXJpYWJsZSwgY2xlYW5lciBpZi9lbHNl IGxvZ2ljLCB1c2UgZXhpc3RpbmcgdmNvIGlmCj4gICAgICAgZW5jb2RlciBkb2VzIG5vdCByZXR1 cm4gYSBuZXcgdmNvIHZhbHVlLiBjaGVja19wYXRjaC5wbCBjbGVhbnVwCj4gVjY6IHNpbXBsaWZ5 IGxvZ2ljIGluIGludGVsX21vZGVzZXRfY2hlY2tzLgo+IFY3OiByZW9yZGVyIGFuIElGIGZvciBy ZWFkYWJpbGl0eSBhbmQgd2hpdGVzcGFjZSBmaXguCj4gVjg6IHVzZSBkZXZfY2RjbGsgZm9yIHRy YWNraW5nIG5ldyBjZGNsayBkdXJpbmcgYXRvbWljCj4gVjk6IGNvcnJlY3RseSBoYW5kbGUgdmNv IDg2NDAgd2hlbiBjcnRjcz09MAo+IFYxMDogQ2xlYW4gdXAgaWYgZWxzZSBpbiBjcnRjcz09MAo+ IFYxMTogUmViYXNlIGZvciBuZXcgaW50ZWxfZHBsbF9tZ3IuYwo+IAo+IFJldmlld2VkLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKSXMgdGhlIHIt YiBmcm9tIFZpbGxlIHJlYWxseSBmb3IgdjExPwotRGFuaWVsCgo+IFNpZ25lZC1vZmYtYnk6IENs aW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgICAyICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgfCAgMTExICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgICAgOSAr LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAgIDUgKysKPiAg NCBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggODBiMTRmMS4uYmY4N2U2MiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xNzU5LDcgKzE3NTksNyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSB7Cj4gIAlpbnQgbnVtX2ZlbmNlX3JlZ3M7IC8qIDggb24gcHJlLTk2NSwgMTYg b3RoZXJ3aXNlICovCj4gIAo+ICAJdW5zaWduZWQgaW50IGZzYl9mcmVxLCBtZW1fZnJlcSwgaXNf ZGRyMzsKPiAtCXVuc2lnbmVkIGludCBza2xfYm9vdF9jZGNsazsKPiArCXVuc2lnbmVkIGludCBz a2xfdmNvX2ZyZXE7Cj4gIAl1bnNpZ25lZCBpbnQgY2RjbGtfZnJlcSwgbWF4X2NkY2xrX2ZyZXEs IGF0b21pY19jZGNsa19mcmVxOwo+ICAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJlcTsKPiAg CXVuc2lnbmVkIGludCByYXdjbGtfZnJlcTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gaW5kZXggY2U1NWYwYi4uZmM1MjY4YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtNTU4NCw3ICs1NTg0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBz a2xfY2RjbGtfZGVjaW1hbCh1bnNpZ25lZCBpbnQgZnJlcSkKPiAgCXJldHVybiAoZnJlcSAtIDEw MDApIC8gNTAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdW5zaWduZWQgaW50IHNrbF9jZGNsa19nZXRf dmNvKHVuc2lnbmVkIGludCBmcmVxKQo+ICt1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28o dW5zaWduZWQgaW50IGZyZXEpCj4gIHsKPiAgCXVuc2lnbmVkIGludCBpOwo+ICAKPiBAQCAtNTc0 MiwxNyArNTc0MiwyMSBAQCB2b2lkIHNrbF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICAKPiAgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXVuc2lnbmVkIGludCByZXF1aXJlZF92Y287 Cj4gKwl1bnNpZ25lZCBpbnQgY2RjbGs7Cj4gIAo+ICAJLyogRFBMTDAgbm90IGVuYWJsZWQgKGhh cHBlbnMgb24gZWFybHkgQklPUyB2ZXJzaW9ucykgKi8KPiAgCWlmICghKEk5MTVfUkVBRChMQ1BM TDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKSB7Cj4gIAkJLyogZW5hYmxlIERQTEwwICovCj4g LQkJcmVxdWlyZWRfdmNvID0gc2tsX2NkY2xrX2dldF92Y28oZGV2X3ByaXYtPnNrbF9ib290X2Nk Y2xrKTsKPiAtCQlza2xfZHBsbDBfZW5hYmxlKGRldl9wcml2LCByZXF1aXJlZF92Y28pOwo+ICsJ CWlmIChkZXZfcHJpdi0+c2tsX3Zjb19mcmVxICE9IDg2NDApCj4gKwkJCWRldl9wcml2LT5za2xf dmNvX2ZyZXEgPSA4MTAwOwo+ICsJCXNrbF9kcGxsMF9lbmFibGUoZGV2X3ByaXYsIGRldl9wcml2 LT5za2xfdmNvX2ZyZXEpOwo+ICsJCWNkY2xrID0gKChkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID09 IDgxMDApID8gMzM3NTAwIDogMzA4NTcwKTsKPiArCX0gZWxzZSB7Cj4gKwkJY2RjbGsgPSBkZXZf cHJpdi0+Y2RjbGtfZnJlcTsKPiAgCX0KPiAgCj4gLQkvKiBzZXQgQ0RDTEsgdG8gdGhlIGZyZXF1 ZW5jeSB0aGUgQklPUyBjaG9zZSAqLwo+IC0Jc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgZGV2X3By aXYtPnNrbF9ib290X2NkY2xrKTsKPiArCS8qIHNldCBDRENMSyB0byB0aGUgbG93ZXN0IGZyZXF1 ZW5jeSwgTW9kZXNldCBmb2xsb3dzICovCj4gKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCBjZGNs ayk7Cj4gIAo+ICAJLyogZW5hYmxlIERCVUYgcG93ZXIgKi8KPiAgCUk5MTVfV1JJVEUoREJVRl9D VEwsIEk5MTVfUkVBRChEQlVGX0NUTCkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+IEBAIC01NzY4 LDcgKzU3NzIsNyBAQCBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgewo+ICAJdWludDMyX3QgbGNwbGwxID0gSTkxNV9SRUFEKExDUExM MV9DVEwpOwo+ICAJdWludDMyX3QgY2RjdGwgPSBJOTE1X1JFQUQoQ0RDTEtfQ1RMKTsKPiAtCWlu dCBmcmVxID0gZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrOwo+ICsJaW50IGZyZXEgPSBkZXZfcHJp di0+Y2RjbGtfZnJlcTsKPiAgCj4gIAkvKgo+ICAJICogY2hlY2sgaWYgdGhlIHByZS1vcyBpbnRp YWxpemVkIHRoZSBkaXNwbGF5Cj4gQEAgLTU3OTIsMTEgKzU3OTYsNyBAQCBpbnQgc2tsX3Nhbml0 aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkvKiBBbGwg d2VsbDsgbm90aGluZyB0byBzYW5pdGl6ZSAqLwo+ICAJCXJldHVybiBmYWxzZTsKPiAgc2FuaXRp emU6Cj4gLQkvKgo+IC0JICogQXMgb2Ygbm93IGluaXRpYWxpemUgd2l0aCBtYXggY2RjbGsgdGls bAo+IC0JICogd2UgZ2V0IGR5bmFtaWMgY2RjbGsgc3VwcG9ydAo+IC0JICogKi8KPiAtCWRldl9w cml2LT5za2xfYm9vdF9jZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPiArCj4gIAlz a2xfaW5pdF9jZGNsayhkZXZfcHJpdik7Cj4gIAo+ICAJLyogd2UgZGlkIGhhdmUgdG8gc2FuaXRp emUgKi8KPiBAQCAtOTc1Myw2ICs5NzUzLDczIEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9tb2Rl c2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAJ YnJvYWR3ZWxsX3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBp bnQgc2tsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gK3sKPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50 ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4gKwljb25zdCBpbnQgbWF4X3BpeGNsayA9IGls a19tYXhfcGl4ZWxfcmF0ZShzdGF0ZSk7Cj4gKwlpbnQgY2RjbGs7Cj4gKwo+ICsJLyoKPiArCSAq IEZJWE1FIHNob3VsZCBhbHNvIGFjY291bnQgZm9yIHBsYW5lIHJhdGlvCj4gKwkgKiBvbmNlIDY0 YnBwIHBpeGVsIGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KPiArCSAqLwo+ICsKPiArCWlmIChpbnRl bF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9PSA4NjQwKSB7Cj4gKwkJLyogdmNvIDg2NDAgKi8KPiAr CQlpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKPiArCQkJY2RjbGsgPSA2MTcxNDA7Cj4gKwkJZWxz ZSBpZiAobWF4X3BpeGNsayA+IDQzMjAwMCkKPiArCQkJY2RjbGsgPSA1NDAwMDA7Cj4gKwkJZWxz ZSBpZiAobWF4X3BpeGNsayA+IDMwODU3MCkKPiArCQkJY2RjbGsgPSA0MzIwMDA7Cj4gKwkJZWxz ZQo+ICsJCQljZGNsayA9IDMwODU3MDsKPiArCX0gZWxzZSB7Cj4gKwkJLyogVkNPIDgxMDAgKi8K PiArCQlpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKPiArCQkJY2RjbGsgPSA2NzUwMDA7Cj4gKwkJ ZWxzZSBpZiAobWF4X3BpeGNsayA+IDQ1MDAwMCkKPiArCQkJY2RjbGsgPSA1NDAwMDA7Cj4gKwkJ ZWxzZSBpZiAobWF4X3BpeGNsayA+IDMzNzUwMCkKPiArCQkJY2RjbGsgPSA0NTAwMDA7Cj4gKwkJ ZWxzZQo+ICsJCQljZGNsayA9IDMzNzUwMDsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogRklYTUUg bW92ZSB0aGUgY2RjbGsgY2FjbHVsYXRpb24gdG8KPiArCSAqIGNvbXB1dGVfY29uZmlnKCkgc28g d2UgY2FuIGZhaWwgZ3JhY2VndWxseS4KPiArCSAqLwo+ICsJaWYgKGNkY2xrID4gZGV2X3ByaXYt Pm1heF9jZGNsa19mcmVxKSB7Cj4gKwkJRFJNX0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtI eikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4gKwkJCSAgY2RjbGssIGRldl9wcml2LT5tYXhf Y2RjbGtfZnJlcSk7Cj4gKwkJY2RjbGsgPSBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXE7Cj4gKwl9 Cj4gKwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9IGNk Y2xrOwo+ICsJaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKQo+ICsJCWludGVsX3N0YXRl LT5kZXZfY2RjbGsgPSAoKGludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvID09IDg2NDApID8KPiAr CQkJCQkgICAzMDg1NzAgOiAzMzc1MDApOwo+ICsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgc2tsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpvbGRfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRf c3RhdGUtPmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gKwl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKG9sZF9zdGF0ZSktPmRldl9jZGNsazsKPiArCj4gKwkvKgo+ICsJICogRklYTUUgZGlz YWJsZS9lbmFibGUgUExMIHNob3VsZCB3cmFwIHNldF9jZGNsaygpCj4gKwkgKi8KPiArCXNrbF9z ZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7Cj4gKwo+ICsJZGV2X3ByaXYtPnNrbF92Y29f ZnJlcSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsa19wbGxfdmNvOwo+ ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIHsKPiBAQCAtMTMyMTQsOSArMTMyODEsMTUgQEAgc3RhdGljIGludCBpbnRl bF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkgKiBh ZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMgZGlyZWN0bHkuCj4gIAkgKi8KPiAgCWlmIChk ZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGspIHsKPiArCQlpZiAoIWludGVsX3N0 YXRlLT5jZGNsa19wbGxfdmNvKQo+ICsJCQlpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9IGRl dl9wcml2LT5za2xfdmNvX2ZyZXE7Cj4gKwo+ICAJCXJldCA9IGRldl9wcml2LT5kaXNwbGF5Lm1v ZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7Cj4gKwkJaWYgKHJldCA8IDApCj4gKwkJCXJldHVybiBy ZXQ7Cj4gIAo+IC0JCWlmICghcmV0ICYmIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3By aXYtPmNkY2xrX2ZyZXEpCj4gKwkJaWYgKGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3By aXYtPmNkY2xrX2ZyZXEgfHwKPiArCQkgICAgaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gIT0g ZGV2X3ByaXYtPnNrbF92Y29fZnJlcSkKPiAgCQkJcmV0ID0gaW50ZWxfbW9kZXNldF9hbGxfcGlw ZXMoc3RhdGUpOwo+ICAKPiAgCQlpZiAocmV0IDwgMCkKPiBAQCAtMTM1ODgsNyArMTM2NjEsOCBA QCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCQlkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoc3RhdGUt PmRldiwgc3RhdGUpOwo+ICAKPiAgCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jb21t aXRfY2RjbGsgJiYKPiAtCQkgICAgaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+ Y2RjbGtfZnJlcSkKPiArCQkgICAgKGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYt PmNkY2xrX2ZyZXEgfHwKPiArCQkgICAgaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gIT0gZGV2 X3ByaXYtPnNrbF92Y29fZnJlcSkpCj4gIAkJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY29t bWl0X2NkY2xrKHN0YXRlKTsKPiAgCX0KPiAgCj4gQEAgLTE0OTY0LDggKzE1MDM4LDEyIEBAIHN0 YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJ CQlicm94dG9uX21vZGVzZXRfY29tbWl0X2NkY2xrOwo+ICAJCWRldl9wcml2LT5kaXNwbGF5Lm1v ZGVzZXRfY2FsY19jZGNsayA9Cj4gIAkJCWJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrOwo+ICsJ fSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ICsJCWRl dl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrID0KPiArCQkJc2tsX21vZGVzZXRf Y29tbWl0X2NkY2xrOwo+ICsJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9 Cj4gKwkJCXNrbF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gIAl9Cj4gLQo+ICAJc3dpdGNoIChJTlRF TF9JTkZPKGRldiktPmdlbikgewo+ICAJY2FzZSAyOgo+ICAJCWRldl9wcml2LT5kaXNwbGF5LnF1 ZXVlX2ZsaXAgPSBpbnRlbF9nZW4yX3F1ZXVlX2ZsaXA7Cj4gQEAgLTE1NjcyLDcgKzE1NzUwLDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAkJaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7Cj4gIAkJCWRl dl9wcml2LT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBjcnRjLT5waXBlOwo+ICAKPiAtCQkJaWYgKElT X0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiArCQkJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikg fHwgSVNfU0tZTEFLRShkZXZfcHJpdikgfHwKPiArCQkJICAgIElTX0tBQllMQUtFKGRldl9wcml2 KSkgewo+ICAJCQkJcGl4Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPiAg Cj4gIAkJCQkvKiBwaXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1JSBvZiBjZGNsayB3aXRoIElQ UyBvbiBCRFcgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiBpbmRleCA0 YjYzNmM0Li5hNTY0MmIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwbGxfbWdyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5j Cj4gQEAgLTExODMsNiArMTE4Myw3IEBAIHNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPiAgCXVpbnQzMl90IGN0cmwxLCBjZmdjcjEsIGNmZ2NyMjsK PiAgCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7Cj4gKwl1aW50MzJfdCB2Y28g PSA4MTAwOwo+ICAKPiAgCS8qCj4gIAkgKiBTZWUgY29tbWVudCBpbiBpbnRlbF9kcGxsX2h3X3N0 YXRlIHRvIHVuZGVyc3RhbmQgd2h5IHdlIGFsd2F5cyB1c2UgMAo+IEBAIC0xMjI1LDE3ICsxMjI2 LDE3IEBAIHNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJY2FzZSAxNjIwMDA6Cj4gIAkJCWN0cmwxIHw9 IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzE2MjAsIDApOwo+ICAJ CQlicmVhazsKPiAtCQkvKiBUQkQ6IEZvciBEUCBsaW5rIHJhdGVzIDIuMTYgR0h6IGFuZCA0LjMy IEdIeiwgVkNPIGlzIDg2NDAgd2hpY2gKPiAtCQlyZXN1bHRzIGluIENEQ0xLIGNoYW5nZS4gTmVl ZCB0byBoYW5kbGUgdGhlIGNoYW5nZSBvZiBDRENMSyBieQo+IC0JCWRpc2FibGluZyBwaXBlcyBh bmQgcmUtZW5hYmxpbmcgdGhlbSAqLwo+ICAJCWNhc2UgMTA4MDAwOgo+ICAJCQljdHJsMSB8PSBE UExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8xMDgwLCAwKTsKPiArCQkJ dmNvID0gODY0MDsKPiAgCQkJYnJlYWs7Cj4gIAkJY2FzZSAyMTYwMDA6Cj4gIAkJCWN0cmwxIHw9 IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzIxNjAsIDApOwo+ICsJ CQl2Y28gPSA4NjQwOwo+ICAJCQlicmVhazsKPiAgCQl9Cj4gIAo+ICsJCXRvX2ludGVsX2F0b21p Y19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKS0+Y2RjbGtfcGxsX3ZjbyA9IHZjbzsKPiAg CQljZmdjcjEgPSBjZmdjcjIgPSAwOwo+ICAJfSBlbHNlIHsKPiAgCQlyZXR1cm4gTlVMTDsKPiBA QCAtMTYyOCw3ICsxNjI5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJaW50IGNkY2xrX2ZyZXE7Cj4gIAo+ICAJCWNkY2xrX2Zy ZXEgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYpOwo+IC0J CWRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gKwkJZGV2X3ByaXYtPnNr bF92Y29fZnJlcSA9IHNrbF9jZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+ICAJCWlmIChza2xf c2FuaXRpemVfY2RjbGsoZGV2X3ByaXYpKQo+ICAJCQlEUk1fREVCVUdfS01TKCJTYW5pdGl6ZWQg Y2RjbGsgcHJvZ3JhbW1lZCBieSBwcmUtb3NcbiIpOwo+ICAJCWlmICghKEk5MTVfUkVBRChMQ1BM TDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g aW5kZXggMDJiM2QyMi4uYjIzYjEyOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g QEAgLTMwMSw2ICszMDEsMTAgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7Cj4gIAkgKiBk b24ndCBib3RoZXIgY2FsY3VsYXRpbmcgaW50ZXJtZWRpYXRlIHdhdGVybWFya3MuCj4gIAkgKi8K PiAgCWJvb2wgc2tpcF9pbnRlcm1lZGlhdGVfd207Cj4gKwo+ICsJLyogU0tML0tCTCBPbmx5ICov Cj4gKwl1bnNpZ25lZCBpbnQgY2RjbGtfcGxsX3ZjbzsKPiArCj4gIH07Cj4gIAo+ICBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgewo+IEBAIC0xMjM5LDYgKzEyNDMsNyBAQCB2b2lkIGJ4dF9kaXNh YmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIHNrbF9p bml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIGludCBza2xf c2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9p ZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4g K3Vuc2lnbmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSk7Cj4gIHZv aWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAg dm9pZCBza2xfZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK PiAgdm9pZCBpbnRlbF9kcF9nZXRfbV9uKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IC0tIAo+ IDEuNy45LjUKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK