From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 02/21] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Thu, 19 May 2016 12:08:42 +0300 Message-ID: <1463648922.12342.10.camel@intel.com> References: <1463172100-24715-1-git-send-email-ville.syrjala@linux.intel.com> <1463172100-24715-3-git-send-email-ville.syrjala@linux.intel.com> Reply-To: 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 0A7096E01B for ; Thu, 19 May 2016 09:08:47 +0000 (UTC) In-Reply-To: <1463172100-24715-3-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gcGUsIDIwMTYtMDUtMTMgYXQgMjM6NDEgKzAzMDAsIHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tIHdyb3RlOgo+IEZyb206IENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRl bC5jb20+Cj4gCj4gV0FSTklORzogVXNpbmcgQ2hyb21lT1Mgd2l0aCBhbiBlRFAgcGFuZWwgYW5k IGEgNEtANjAgRFAgbW9uaXRvciBjb25uZWN0ZWQKPiB0byBEREkxIHRoZSBzeXN0ZW0gd2lsbCBo YXJkIGhhbmcgZHVyaW5nIGEgY29sZCBib290LiBPY2N1cnMgd2hlbiBEREkxCj4gaXMgZW5hYmxl ZCB3aGVuIHRoZSBjZGNsayBpcyBsZXNzIHRoZW4gcmVxdWlyZWQuIERQIGNvbm5lY3RlZCB0byBE REkyCj4gYW5kIEhQRCBvbiBlaXRoZXIgcG9ydCB3b3JrcyBjb3JyZWN0bHkuCj4gCj4gU2V0IGNk Y2xrIGJhc2VkIG9uIHRoZSBtYXggcmVxdWlyZWQgcGl4ZWwgY2xvY2sgYmFzZWQgb24gVkNPCj4g c2VsZWN0ZWQuIFRyYWNrIGJvb3QgdmNvIGluc3RlYWQgb2YgYm9vdCBjZGNsay4KPiAKPiBUaGUg dmNvIGlzIG5vdyB0cmFja2VkIGF0IHRoZSBhdG9taWMgbGV2ZWwgYW5kIGFsbCBDUlRDcyB1cGRh dGVkIGlmCj4gdGhlIHJlcXVpcmVkIHZjbyBpcyBjaGFuZ2VkLiBOb3QgdGVzdGVkIHdpdGggZURQ IHYxLjQgcGFuZWxzIHRoYXQKPiByZXF1aXJlIDg2NDAgdmNvIGR1ZSB0byBhdmFpbGFiaWxpdHku Cj4gCj4gVjE6IGluaXRpYWwgdmVyc2lvbgo+IFYyOiBhZGQgdmNvIHRyYWNraW5nIGluIGludGVs X2RwX2NvbXB1dGVfY29uZmlnKCksIHJlbmFtZQo+IHNrbF9ib290X2NkY2xrLgo+IFYzOiByZWJh c2UsIFYyIGZlZWRiYWNrIG5vdCBwb3NzaWJsZSBhcyBlbmNvZGVycyBhcmUgbm90IGF3YXJlIG9m Cj4gYXRvbWljLgo+IFY0OiB0cmFjayB0YXJnZXQgdmNvIGlzIGF0b21pYyBzdGF0ZS4gbW9kZXNl dCBhbGwgQ1JUQ3MgaWYgdmNvIGNoYW5nZXMKPiBWNTogcmVuYW1lIGF0b21pYyB2YXJpYWJsZSwg Y2xlYW5lciBpZi9lbHNlIGxvZ2ljLCB1c2UgZXhpc3RpbmcgdmNvIGlmCj4gwqDCoMKgwqDCoMKg ZW5jb2RlciBkb2VzIG5vdCByZXR1cm4gYSBuZXcgdmNvIHZhbHVlLiBjaGVja19wYXRjaC5wbCBj bGVhbnVwCj4gVjY6IHNpbXBsaWZ5IGxvZ2ljIGluIGludGVsX21vZGVzZXRfY2hlY2tzLgo+IFY3 OiByZW9yZGVyIGFuIElGIGZvciByZWFkYWJpbGl0eSBhbmQgd2hpdGVzcGFjZSBmaXguCj4gVjg6 IHVzZSBkZXZfY2RjbGsgZm9yIHRyYWNraW5nIG5ldyBjZGNsayBkdXJpbmcgYXRvbWljCj4gVjk6 IGNvcnJlY3RseSBoYW5kbGUgdmNvIDg2NDAgd2hlbiBjcnRjcz09MAo+IFYxMDogQ2xlYW4gdXAg aWYgZWxzZSBpbiBjcnRjcz09MAo+IFYxMTogUmViYXNlIGZvciBuZXcgaW50ZWxfZHBsbF9tZ3Iu Ywo+IAo+IFJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxv ckBpbnRlbC5jb20+Cj4gW3ZzeXJqYWxhOiByZWJhc2VkIGR1ZSB0byBjaHVybl0KPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoK SXQgaGFzIFItYiBhbHJlYWR5LCBidXQgc2luY2UgSSB3ZW50IHRocm91Z2ggaXQgaW4gYW55IGNh c2U6ClJldmlld2VkLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+CgpBIGZldyBu b3RlcyBiZWxvdywgbm9uZSBvZiB0aGVtIGFyZSBhYm91dCBhY3R1YWwgcHJvYmxlbXMuCgo+IC0t LQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoMKgfMKgwqDC oDIgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuY8KgwqB8IDEwOSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcGxsX21nci5jIHzCoMKgwqA5ICstLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmjCoMKgwqDCoMKgwqB8wqDCoMKgNCArKwo+IMKgNCBmaWxlcyBjaGFuZ2VkLCAx MDQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gaW5kZXggMWJhNjE0MTkzY2M5Li5iMzE5ZGE5NzBjOGEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBAQCAtMTgyMCw3ICsxODIwLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgewo+IMKgCWludCBudW1fZmVuY2VfcmVnczsgLyogOCBvbiBwcmUtOTY1LCAxNiBvdGhlcndp c2UgKi8KPiDCoAo+IMKgCXVuc2lnbmVkIGludCBmc2JfZnJlcSwgbWVtX2ZyZXEsIGlzX2RkcjM7 Cj4gLQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4gKwl1bnNpZ25lZCBpbnQgc2tsX3Zj b19mcmVxOwo+IMKgCXVuc2lnbmVkIGludCBjZGNsa19mcmVxLCBtYXhfY2RjbGtfZnJlcSwgYXRv bWljX2NkY2xrX2ZyZXE7Cj4gwqAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJlcTsKPiDCoAl1 bnNpZ25lZCBpbnQgcmF3Y2xrX2ZyZXE7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IGluZGV4IGNjOWE4YjQyZmJjNi4uNDFmZTE4YzRiNzYxIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC01NTQwLDcgKzU1NDAsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHNrbF9jZGNsa19lbnRyeSB7Cj4gwqAJeyAuZnJlcSA9IDY3NTAwMCwgLnZjbyA9IDgx MDAgfSwKPiDCoH07Cj4gwqAKPiAtc3RhdGljIHVuc2lnbmVkIGludCBza2xfY2RjbGtfZ2V0X3Zj byh1bnNpZ25lZCBpbnQgZnJlcSkKPiArdW5zaWduZWQgaW50IHNrbF9jZGNsa19nZXRfdmNvKHVu c2lnbmVkIGludCBmcmVxKQo+IMKgewo+IMKgCXVuc2lnbmVkIGludCBpOwo+IMKgCj4gQEAgLTU2 OTgsMTcgKzU2OTgsMjEgQEAgdm9pZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiDCoAo+IMKgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQl1bnNpZ25lZCBpbnQgdmNvOwo+ICsJ dW5zaWduZWQgaW50IGNkY2xrOwo+IMKgCj4gwqAJLyogRFBMTDAgbm90IGVuYWJsZWQgKGhhcHBl bnMgb24gZWFybHkgQklPUyB2ZXJzaW9ucykgKi8KPiDCoAlpZiAoIShJOTE1X1JFQUQoTENQTEwx X0NUTCkgJiBMQ1BMTF9QTExfRU5BQkxFKSkgewo+IMKgCQkvKiBlbmFibGUgRFBMTDAgKi8KPiAt CQl2Y28gPSBza2xfY2RjbGtfZ2V0X3ZjbyhkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGspOwo+IC0J CXNrbF9kcGxsMF9lbmFibGUoZGV2X3ByaXYsIHZjbyk7Cj4gKwkJaWYgKGRldl9wcml2LT5za2xf dmNvX2ZyZXEgIT0gODY0MCkKPiArCQkJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IDgxMDA7CgpU aGlzIHNlZW1zIHJlZHVuZGFudCwgVkNPIGNhbiBvbmx5IGJlIGVpdGhlciBvZiB0aGUgYWJvdmUg dHdvLCBidXQgeW91CmNoYW5nZS9maXggdGhpcyBsYXRlciBpbiB0aGUgc2VyaWVzLCBzbyBpdCdz IG9rLgoKPiArCQlza2xfZHBsbDBfZW5hYmxlKGRldl9wcml2LCBkZXZfcHJpdi0+c2tsX3Zjb19m cmVxKTsKPiArCQljZGNsayA9ICgoZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9PSA4MTAwKSA/IDMz NzUwMCA6IDMwODU3MCk7Cj4gKwl9IGVsc2Ugewo+ICsJCWNkY2xrID0gZGV2X3ByaXYtPmNkY2xr X2ZyZXE7Cj4gwqAJfQo+IMKgCj4gLQkvKiBzZXQgQ0RDTEsgdG8gdGhlIGZyZXF1ZW5jeSB0aGUg QklPUyBjaG9zZSAqLwo+IC0Jc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgZGV2X3ByaXYtPnNrbF9i b290X2NkY2xrKTsKPiArCS8qIHNldCBDRENMSyB0byB0aGUgbG93ZXN0IGZyZXF1ZW5jeSwgTW9k ZXNldCBmb2xsb3dzICovCj4gKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCBjZGNsayk7Cj4gwqAK PiDCoAkvKiBlbmFibGUgREJVRiBwb3dlciAqLwo+IMKgCUk5MTVfV1JJVEUoREJVRl9DVEwsIEk5 MTVfUkVBRChEQlVGX0NUTCkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+IEBAIC01NzI0LDcgKzU3 MjgsNyBAQCBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiDCoHsKPiDCoAl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQTEwxX0NU TCk7Cj4gwqAJdWludDMyX3QgY2RjdGwgPSBJOTE1X1JFQUQoQ0RDTEtfQ1RMKTsKPiAtCWludCBm cmVxID0gZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrOwo+ICsJaW50IGZyZXEgPSBkZXZfcHJpdi0+ Y2RjbGtfZnJlcTsKPiDCoAo+IMKgCS8qCj4gwqAJwqAqIGNoZWNrIGlmIHRoZSBwcmUtb3MgaW50 aWFsaXplZCB0aGUgZGlzcGxheQo+IEBAIC01NzQ4LDExICs1NzUyLDcgQEAgaW50IHNrbF9zYW5p dGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJCS8qIEFs bCB3ZWxsOyBub3RoaW5nIHRvIHNhbml0aXplICovCj4gwqAJCXJldHVybiBmYWxzZTsKPiDCoHNh bml0aXplOgo+IC0JLyoKPiAtCcKgKiBBcyBvZiBub3cgaW5pdGlhbGl6ZSB3aXRoIG1heCBjZGNs ayB0aWxsCj4gLQnCoCogd2UgZ2V0IGR5bmFtaWMgY2RjbGsgc3VwcG9ydAo+IC0JwqAqICovCj4g LQlkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGsgPSBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXE7Cj4g Kwo+IMKgCXNrbF9pbml0X2NkY2xrKGRldl9wcml2KTsKPiDCoAo+IMKgCS8qIHdlIGRpZCBoYXZl IHRvIHNhbml0aXplICovCj4gQEAgLTk3MTksNiArOTcxOSw3MyBAQCBzdGF0aWMgdm9pZCBicm9h ZHdlbGxfbW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9z dGF0ZSkKPiDCoAlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiDCoH0KPiDC oAo+ICtzdGF0aWMgaW50IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9z dGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+ICsJY29uc3QgaW50IG1h eF9waXhjbGsgPSBpbGtfbWF4X3BpeGVsX3JhdGUoc3RhdGUpOwo+ICsJaW50IGNkY2xrOwo+ICsK PiArCS8qCj4gKwnCoCogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8K PiArCcKgKiBvbmNlIDY0YnBwIHBpeGVsIGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KPiArCcKgKi8K PiArCj4gKwlpZiAoaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gPT0gODY0MCkgewo+ICsJCS8q IHZjbyA4NjQwICovCj4gKwkJaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4gKwkJCWNkY2xrID0g NjE3MTQwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0MzIwMDApCj4gKwkJCWNkY2xrID0g NTQwMDAwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMDg1NzApCj4gKwkJCWNkY2xrID0g NDMyMDAwOwo+ICsJCWVsc2UKPiArCQkJY2RjbGsgPSAzMDg1NzA7Cj4gKwl9IGVsc2Ugewo+ICsJ CS8qIFZDTyA4MTAwICovCj4gKwkJaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4gKwkJCWNkY2xr ID0gNjc1MDAwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0NTAwMDApCj4gKwkJCWNkY2xr ID0gNTQwMDAwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMzc1MDApCj4gKwkJCWNkY2xr ID0gNDUwMDAwOwo+ICsJCWVsc2UKPiArCQkJY2RjbGsgPSAzMzc1MDA7Cj4gKwl9Cj4gKwo+ICsJ LyoKPiArCcKgKiBGSVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+ICsJwqAqIGNv bXB1dGVfY29uZmlnKCkgc28gd2UgY2FuIGZhaWwgZ3JhY2VndWxseS4KPiArCcKgKi8KPiArCWlm IChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ICsJCURSTV9FUlJPUigicmVx dWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4ICglZCBrSHopXG4iLAo+ICsJCQnCoMKg Y2RjbGssIGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSk7Cj4gKwkJY2RjbGsgPSBkZXZfcHJpdi0+ bWF4X2NkY2xrX2ZyZXE7Cj4gKwl9Cj4gKwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrID0gaW50ZWxf c3RhdGUtPmRldl9jZGNsayA9IGNkY2xrOwo+ICsJaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX2Ny dGNzKQo+ICsJCWludGVsX3N0YXRlLT5kZXZfY2RjbGsgPSAoKGludGVsX3N0YXRlLT5jZGNsa19w bGxfdmNvID09IDg2NDApID8KPiArCQkJCQnCoMKgwqAzMDg1NzAgOiAzMzc1MDApOwo+ICsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2tsX21vZGVzZXRfY29tbWl0 X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gK3sKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfc3RhdGUtPmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1bnNpZ25lZCBpbnQgcmVx X2NkY2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSktPmRldl9jZGNsazsKPiAr Cj4gKwkvKgo+ICsJwqAqIEZJWE1FIGRpc2FibGUvZW5hYmxlIFBMTCBzaG91bGQgd3JhcCBzZXRf Y2RjbGsoKQo+ICsJwqAqLwo+ICsJc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgcmVxX2NkY2xrKTsK PiArCj4gKwlkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKG9s ZF9zdGF0ZSktPmNkY2xrX3BsbF92Y287Cj4gK30KPiArCj4gwqBzdGF0aWMgaW50IGhhc3dlbGxf Y3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IMKgCQkJCcKgwqDC oMKgwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+IMKgewo+IEBAIC0x MzI4Myw5ICsxMzM1MCwxNSBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiDCoAnCoCogYWRqdXN0ZWRfbW9kZSBiaXRzIGlu IHRoZSBjcnRjIGRpcmVjdGx5Lgo+IMKgCcKgKi8KPiDCoAlpZiAoZGV2X3ByaXYtPmRpc3BsYXku bW9kZXNldF9jYWxjX2NkY2xrKSB7Cj4gKwkJaWYgKCFpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3Zj bykKPiArCQkJaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gPSBkZXZfcHJpdi0+c2tsX3Zjb19m cmVxOwo+ICsKPiDCoAkJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xr KHN0YXRlKTsKPiArCQlpZiAocmV0IDwgMCkKPiArCQkJcmV0dXJuIHJldDsKPiDCoAo+IC0JCWlm ICghcmV0ICYmIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEp Cj4gKwkJaWYgKGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEg fHwKPiArCQnCoMKgwqDCoGludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvICE9IGRldl9wcml2LT5z a2xfdmNvX2ZyZXEpCj4gwqAJCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7 Cj4gwqAKPiDCoAkJaWYgKHJldCA8IDApCj4gQEAgLTEzNjI2LDcgKzEzNjk5LDggQEAgc3RhdGlj IGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gwqAJCWRy bV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZShzdGF0ZS0+ZGV2LCBz dGF0ZSk7Cj4gwqAKPiDCoAkJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2Nk Y2xrICYmCj4gLQkJwqDCoMKgwqBpbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrICE9IGRldl9wcml2LT5j ZGNsa19mcmVxKQo+ICsJCcKgwqDCoMKgKGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3By aXYtPmNkY2xrX2ZyZXEgfHwKPiArCQnCoMKgwqDCoMKgaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92 Y28gIT0gZGV2X3ByaXYtPnNrbF92Y29fZnJlcSkpCj4gwqAJCQlkZXZfcHJpdi0+ZGlzcGxheS5t b2Rlc2V0X2NvbW1pdF9jZGNsayhzdGF0ZSk7Cj4gwqAKPiDCoAkJaW50ZWxfbW9kZXNldF92ZXJp ZnlfZGlzYWJsZWQoZGV2KTsKPiBAQCAtMTUwNDEsNiArMTUxMTUsMTEgQEAgdm9pZCBpbnRlbF9p bml0X2Rpc3BsYXlfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKg CQkJYnJveHRvbl9tb2Rlc2V0X2NvbW1pdF9jZGNsazsKPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXku bW9kZXNldF9jYWxjX2NkY2xrID0KPiDCoAkJCWJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrOwo+ ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJp dikpIHsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9Cj4gKwkJ CXNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsazsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NhbGNfY2RjbGsgPQo+ICsJCQlza2xfbW9kZXNldF9jYWxjX2NkY2xrOwo+IMKgCX0KPiDCoAo+ IMKgCXN3aXRjaCAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbikgewo+IEBAIC0xNTc0OCw3ICsx NTgyNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsK PiDCoAkJCWRldl9wcml2LT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBjcnRjLT5waXBlOwo+IMKgCj4g LQkJCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ ICsJCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJp dikpCj4gwqAJCQkJcGl4Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPiDC oAkJCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+IMKgCQkJCXBpeGNsayA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5j cnRjX2Nsb2NrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxs X21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IGluZGV4IGMy ODNiYTRiYWJlOC4uZTk5ZTMwNmU4NzQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cGxsX21nci5jCj4gQEAgLTExOTQsNiArMTE5NCw3IEBAIHNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gwqAJ c3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Cj4gwqAJdWludDMyX3QgY3RybDEsIGNmZ2Ny MSwgY2ZnY3IyOwo+IMKgCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7Cj4gKwl1 aW50MzJfdCB2Y28gPSA4MTAwOwo+IMKgCj4gwqAJLyoKPiDCoAnCoCogU2VlIGNvbW1lbnQgaW4g aW50ZWxfZHBsbF9od19zdGF0ZSB0byB1bmRlcnN0YW5kIHdoeSB3ZSBhbHdheXMgdXNlIDAKPiBA QCAtMTIzNiwxNyArMTIzNywxNyBAQCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNy dGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IMKgCQljYXNlIDE2MjAw MDoKPiDCoAkJCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19S QVRFXzE2MjAsIDApOwo+IMKgCQkJYnJlYWs7Cj4gLQkJLyogVEJEOiBGb3IgRFAgbGluayByYXRl cyAyLjE2IEdIeiBhbmQgNC4zMiBHSHosIFZDTyBpcyA4NjQwIHdoaWNoCj4gLQkJcmVzdWx0cyBp biBDRENMSyBjaGFuZ2UuIE5lZWQgdG8gaGFuZGxlIHRoZSBjaGFuZ2Ugb2YgQ0RDTEsgYnkKPiAt CQlkaXNhYmxpbmcgcGlwZXMgYW5kIHJlLWVuYWJsaW5nIHRoZW0gKi8KPiDCoAkJY2FzZSAxMDgw MDA6Cj4gwqAJCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktf UkFURV8xMDgwLCAwKTsKPiArCQkJdmNvID0gODY0MDsKPiDCoAkJCWJyZWFrOwo+IMKgCQljYXNl IDIxNjAwMDoKPiDCoAkJCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFf TElOS19SQVRFXzIxNjAsIDApOwo+ICsJCQl2Y28gPSA4NjQwOwo+IMKgCQkJYnJlYWs7Cj4gwqAJ CX0KPiDCoAo+ICsJCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRl KS0+Y2RjbGtfcGxsX3ZjbyA9IHZjbzsKCklmIFZDTyB3YXMgcHJldmlvdXNseSBzZXQgdG8gODY0 MCAoZm9yIERQTEwwKSBhbmQgbGF0ZXIgd2UnZCBzZXQgaGVyZQp0aGUgcmF0ZSBmb3IgYW5vdGhl ciBEUExMIHdpdGggVkNPIDgxMDAgdGhpcyB3b3VsZCBpbmNvcnJlY3RseSBjaGFuZ2UKdGhlIENE Q0xLIFZDTyB0byA4MTAwLiBWQ08gaXNuJ3QgYWN0dWFsbHkgY2hhbmdlZCBhdCB0aGlzIHBvaW50 IGluIHRoZQpjb2RlIHRob3VnaCBhbmQgeW91IGxhdGVyIGZpeCB0aGlzLCBzbyBpdCdzIG9rLgoK PiDCoAkJY2ZnY3IxID0gY2ZnY3IyID0gMDsKPiDCoAl9IGVsc2Ugewo+IMKgCQlyZXR1cm4gTlVM TDsKPiBAQCAtMTYzOSw3ICsxNjQwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gwqAJCWludCBjZGNsa19mcmVxOwo+IMKgCj4gwqAJ CWNkY2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChk ZXYpOwo+IC0JCWRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gKwkJZGV2 X3ByaXYtPnNrbF92Y29fZnJlcSA9IHNrbF9jZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+IMKg CQlpZiAoc2tsX3Nhbml0aXplX2NkY2xrKGRldl9wcml2KSkKPiDCoAkJCURSTV9ERUJVR19LTVMo IlNhbml0aXplZCBjZGNsayBwcm9ncmFtbWVkIGJ5IHByZS1vc1xuIik7Cj4gwqAJCWlmICghKEk5 MTVfUkVBRChMQ1BMTDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gaW5kZXggMGRjMmJjOWM2NWNmLi5jN2NiOTgyOTU0N2UgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0zMDQsNiArMzA0LDkgQEAgc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSB7Cj4gwqAJdW5zaWduZWQgaW50IGFjdGl2ZV9jcnRjczsKPiDCoAl1bnNpZ25l ZCBpbnQgbWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107Cj4gwqAKPiArCS8qIFNLTC9LQkwgT25s eSAqLwo+ICsJdW5zaWduZWQgaW50IGNkY2xrX3BsbF92Y287Cj4gKwo+IMKgCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9jb25maWcgc2hhcmVkX2RwbGxbSTkxNV9OVU1fUExMU107Cj4gwqAKPiDC oAkvKgo+IEBAIC0xMjc3LDYgKzEyODAsNyBAQCB2b2lkIGdlbjlfZW5hYmxlX2RjNShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IMKgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IMKgaW50IHNrbF9zYW5pdGl6ZV9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IMKgdm9pZCBza2xfdW5pbml0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3Vuc2lnbmVkIGlu dCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSk7Cj4gwqB2b2lkIHNrbF9lbmFi bGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gwqB2b2lkIHNrbF9k aXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IMKgdm9pZCBp bnRlbF9kcF9nZXRfbV9uKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK