From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clint Taylor Subject: Re: [PATCH V7] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Thu, 25 Feb 2016 15:52:57 -0800 Message-ID: <56CF93D9.3070303@intel.com> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> <1455644695-25174-1-git-send-email-clinton.a.taylor@intel.com> <20160225134916.GI15993@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id B802C6E10B for ; Thu, 25 Feb 2016 23:56:28 +0000 (UTC) In-Reply-To: <20160225134916.GI15993@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDIvMjUvMjAxNiAwNTo0OSBBTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIFR1ZSwg RmViIDE2LCAyMDE2IGF0IDA5OjQ0OjU1QU0gLTA4MDAsIGNsaW50b24uYS50YXlsb3JAaW50ZWwu Y29tIHdyb3RlOgo+PiBGcm9tOiBDbGludCBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwu Y29tPgo+Pgo+PiBTZXQgY2RjbGsgYmFzZWQgb24gdGhlIG1heCByZXF1aXJlZCBwaXhlbCBjbG9j ayBiYXNlZCBvbiBWQ08KPj4gc2VsZWN0ZWQuIFRyYWNrIGJvb3QgdmNvIGluc3RlYWQgb2YgYm9v dCBjZGNsay4KPj4KPj4gVGhlIHZjbyBpcyBub3cgdHJhY2tlZCBhdCB0aGUgYXRvbWljIGxldmVs IGFuZCBhbGwgQ1JUQ3MgdXBkYXRlZCBpZgo+PiB0aGUgcmVxdWlyZWQgdmNvIGlzIGNoYW5nZWQu IE5vdCB0ZXN0ZWQgd2l0aCBlRFAgdjEuNCBwYW5lbHMgdGhhdAo+PiByZXF1aXJlIDg2NDAgdmNv IGR1ZSB0byBhdmFpbGFiaWxpdHkuCj4+Cj4+IFYxOiBpbml0aWFsIHZlcnNpb24KPj4gVjI6IGFk ZCB2Y28gdHJhY2tpbmcgaW4gaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoKSwgcmVuYW1lCj4+IHNr bF9ib290X2NkY2xrLgo+PiBWMzogcmViYXNlLCBWMiBmZWVkYmFjayBub3QgcG9zc2libGUgYXMg ZW5jb2RlcnMgYXJlIG5vdCBhd2FyZSBvZgo+PiBhdG9taWMuCj4+IFY0OiB0cmFjayB0YXJnZXQg dmNvIGlzIGF0b21pYyBzdGF0ZS4gbW9kZXNldCBhbGwgQ1JUQ3MgaWYgdmNvIGNoYW5nZXMKPj4g VjU6IHJlbmFtZSBhdG9taWMgdmFyaWFibGUsIGNsZWFuZXIgaWYvZWxzZSBsb2dpYywgdXNlIGV4 aXN0aW5nIHZjbyBpZgo+PiAgICAgIGVuY29kZXIgZG9lcyBub3QgcmV0dXJuIGEgbmV3IHZjbyB2 YWx1ZS4gY2hlY2tfcGF0Y2gucGwgY2xlYW51cAo+PiBWNjogc2ltcGxpZnkgbG9naWMgaW4gaW50 ZWxfbW9kZXNldF9jaGVja3MuCj4+IFY3OiByZW9yZGVyIGFuIElGIGZvciByZWFkYWJpbGl0eSBh bmQgd2hpdGVzcGFjZSBmaXguCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IENsaW50IFRheWxvciA8Y2xp bnRvbi5hLnRheWxvckBpbnRlbC5jb20+Cj4+IENjOiBWaWxsZSA9P2lzby04ODU5LTE/UT9TeXJq PUU0bD1FND89IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPgo+IEkgZmluYWxseSBn b3QgYXJvdW5kIHRvIGFjdHVhbGx5IHRyeWluZyB0aGlzIG91dCBteXNlbGYsIGFuZCBJCj4gbm90 aWNlZCBhIGZldyByZW1haW5pbmcgcHJvYmxlbXM6Cj4KPiAtIHNrbF9tb2Rlc2V0X2NhbGNfY2Rj bGsoKSBzaG91bGQgY2FsY3VsYXRlIGRldl9jZGNsayBhcyB3ZWxsCj4gICAgZGV2X2NkY2xrIHdp bGwgYmUgdGhlIHNhbWUgYXMgY2RjbGssIGV4Y2VwdCB3aGVuIGFsbCBwaXBlcyBhcmUKPiAgICBp bmFjdGl2ZSwgYXQgd2hpY2ggcG9pbnQgZGV2X2NkY2xrIHNob3VsZCBiZSB0aGUgbWluaW11bSBj ZGNsawoKVGhhdCBleHBsYWlucyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gZGV2X2NkY2xrIGFu ZCBjZGNsay4KCj4gLSBza2xfbW9kZXNldF9jb21taXRfY2RjbGsoKSBzaG91bGQgY29tbWl0IGRl dl9jZGNsaywgbm90IGNkY2xrCgpjb3JyZWN0LCBiYXNlZCBvbiB0aGUgYWJvdmUgc3RhdGVtZW50 LiBOZXcgdmVyc2lvbiBvbiBpdHMgd2F5LgoKPiAtIG1vZGVzZXRfdXBkYXRlX2NydGNfcG93ZXJf ZG9tYWlucygpIHNob3VsZCBjaGVjayBvZiB0aGUgY3VycmVudAo+ICAgIHZjbyBpcyBkaWZmZXJl bnQgZnJvbSB0aGUgcmVxdWVzdGVkIHZjbyBpbiBhZGRpdGlvbiB0byBjaGVja2luZwo+ICAgIHRo ZSBkZXZfY2RjbGsgdnMuIGN1cnJlbnQgY2RjbGssIGp1c3QgbGlrZSBpbnRlbF9tb2Rlc2V0X2No ZWNrcygpCj4gICAgZG9lcwptb2Rlc2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFpbnMoKSBubyBs b25nZXIgZXhpc3RzLiBIb3dldmVyIGl0IGFwcGVhcnMgCnRoZSBmdW5jdGlvbmFsaXR5IGhhcyBi ZWVuIG1vdmVkIHRvIGludGVsX2F0b21pY19jb21taXQoKS4gSSB3aWxsIGFkZCAKdGhlIHZjbyBj aGVjayBpbnRvIGludGVsX2F0b21pY19jb21taXQoKQoKPgo+IFNvIHRoZSBjdXJyZW50IHRoaW5n IHdvcmtzLCBidXQgaXQgZmFpbHMgdG8gZHJvcCB0aGUgY2RjbGsgdG8gbWluaW11bQo+IHdoZW4g YWxsIHBpcGVzIGFyZSBpbmFjdGl2ZSwgYW5kIGl0IGFsc28gcmVwcm9ncmFtcyB0aGUgY2RjbGsg ZXZlcnkKPiB0aW1lLCBJIGFzc3VtZSBzaW5jZSBpdCBmb3Jnb3QgdG8gY29tcHV0ZSBkZXZfY2Rj bGsgYW5kIHNvIHRoYXQgb25lCj4gaXMgcHJvYmFibHkgbGVmdCBhdCAwIGFuZCBzbyBpdCBuZXZl ciBtYXRjaGVzIHRoZSBjdXJyZW50IGNkY2xrLgo+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYyAgICAgfCAgICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgIDEwMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgICAgNiArLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgIDQgKysKPj4gICA1IGZpbGVz IGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggODIxNjY2NS4uZjY1ZGQxYSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4+IEBAIC0xODIyLDcgKzE4MjIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSB7Cj4+ICAgCWludCBudW1fZmVuY2VfcmVnczsgLyogOCBvbiBwcmUtOTY1LCAxNiBv dGhlcndpc2UgKi8KPj4KPj4gICAJdW5zaWduZWQgaW50IGZzYl9mcmVxLCBtZW1fZnJlcSwgaXNf ZGRyMzsKPj4gLQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4+ICsJdW5zaWduZWQgaW50 IHNrbF92Y29fZnJlcTsKPj4gICAJdW5zaWduZWQgaW50IGNkY2xrX2ZyZXEsIG1heF9jZGNsa19m cmVxLCBhdG9taWNfY2RjbGtfZnJlcTsKPj4gICAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJl cTsKPj4gICAJdW5zaWduZWQgaW50IGhwbGxfZnJlcTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPj4gaW5kZXggNmQ1YjA5Zi4uMjg1YWRhYiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKPj4gQEAgLTI5NTgsNyArMjk1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQlpbnQgY2RjbGtfZnJlcTsKPj4KPj4gICAJCWNk Y2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYp Owo+PiAtCQlkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGsgPSBjZGNsa19mcmVxOwo+PiArCQlkZXZf cHJpdi0+c2tsX3Zjb19mcmVxID0gc2tsX2NkY2xrX2dldF92Y28oY2RjbGtfZnJlcSk7Cj4+ICAg CQlpZiAoc2tsX3Nhbml0aXplX2NkY2xrKGRldl9wcml2KSkKPj4gICAJCQlEUk1fREVCVUdfS01T KCJTYW5pdGl6ZWQgY2RjbGsgcHJvZ3JhbW1lZCBieSBwcmUtb3NcbiIpOwo+PiAgIAkJaWYgKCEo STkxNV9SRUFEKExDUExMMV9DVEwpICYgTENQTExfUExMX0VOQUJMRSkpCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggOWUyMjczYi4uZTExOGNlMCAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtNTY2Myw3ICs1NjYzLDcgQEAg c3RhdGljIHVuc2lnbmVkIGludCBza2xfY2RjbGtfZGVjaW1hbCh1bnNpZ25lZCBpbnQgZnJlcSkK Pj4gICAJcmV0dXJuIChmcmVxIC0gMTAwMCkgLyA1MDA7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHVu c2lnbmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKPj4gK3Vuc2ln bmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKPj4gICB7Cj4+ICAg CXVuc2lnbmVkIGludCBpOwo+Pgo+PiBAQCAtNTgyMSwxNyArNTgyMSwyMSBAQCB2b2lkIHNrbF91 bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pgo+PiAgIHZv aWQgc2tsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAg IHsKPj4gLQl1bnNpZ25lZCBpbnQgcmVxdWlyZWRfdmNvOwo+PiArCXVuc2lnbmVkIGludCBjZGNs azsKPj4KPj4gICAJLyogRFBMTDAgbm90IGVuYWJsZWQgKGhhcHBlbnMgb24gZWFybHkgQklPUyB2 ZXJzaW9ucykgKi8KPj4gICAJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9DVEwpICYgTENQTExfUExM X0VOQUJMRSkpIHsKPj4gICAJCS8qIGVuYWJsZSBEUExMMCAqLwo+PiAtCQlyZXF1aXJlZF92Y28g PSBza2xfY2RjbGtfZ2V0X3ZjbyhkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGspOwo+PiAtCQlza2xf ZHBsbDBfZW5hYmxlKGRldl9wcml2LCByZXF1aXJlZF92Y28pOwo+PiArCQlpZiAoZGV2X3ByaXYt PnNrbF92Y29fZnJlcSAhPSA4NjQwKQo+PiArCQkJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IDgx MDA7Cj4+ICsJCXNrbF9kcGxsMF9lbmFibGUoZGV2X3ByaXYsIGRldl9wcml2LT5za2xfdmNvX2Zy ZXEpOwo+PiArCQljZGNsayA9ICgoZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9PSA4MTAwKSA/IDMz NzUwMCA6IDMwODU3MCk7Cj4+ICsJfSBlbHNlIHsKPj4gKwkJY2RjbGsgPSBkZXZfcHJpdi0+Y2Rj bGtfZnJlcTsKPj4gICAJfQo+Pgo+PiAtCS8qIHNldCBDRENMSyB0byB0aGUgZnJlcXVlbmN5IHRo ZSBCSU9TIGNob3NlICovCj4+IC0Jc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgZGV2X3ByaXYtPnNr bF9ib290X2NkY2xrKTsKPj4gKwkvKiBzZXQgQ0RDTEsgdG8gdGhlIGxvd2VzdCBmcmVxdWVuY3ks IE1vZGVzZXQgZm9sbG93cyAqLwo+PiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIGNkY2xrKTsK Pj4KPj4gICAJLyogZW5hYmxlIERCVUYgcG93ZXIgKi8KPj4gICAJSTkxNV9XUklURShEQlVGX0NU TCwgSTkxNV9SRUFEKERCVUZfQ1RMKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7Cj4+IEBAIC01ODQ3 LDcgKzU4NTEsNyBAQCBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPj4gICB7Cj4+ICAgCXVpbnQzMl90IGxjcGxsMSA9IEk5MTVfUkVBRChM Q1BMTDFfQ1RMKTsKPj4gICAJdWludDMyX3QgY2RjdGwgPSBJOTE1X1JFQUQoQ0RDTEtfQ1RMKTsK Pj4gLQlpbnQgZnJlcSA9IGRldl9wcml2LT5za2xfYm9vdF9jZGNsazsKPj4gKwlpbnQgZnJlcSA9 IGRldl9wcml2LT5jZGNsa19mcmVxOwo+Pgo+PiAgIAkvKgo+PiAgIAkgKiBjaGVjayBpZiB0aGUg cHJlLW9zIGludGlhbGl6ZWQgdGhlIGRpc3BsYXkKPj4gQEAgLTU4NzEsMTEgKzU4NzUsNyBAQCBp bnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK Pj4gICAJCS8qIEFsbCB3ZWxsOyBub3RoaW5nIHRvIHNhbml0aXplICovCj4+ICAgCQlyZXR1cm4g ZmFsc2U7Cj4+ICAgc2FuaXRpemU6Cj4+IC0JLyoKPj4gLQkgKiBBcyBvZiBub3cgaW5pdGlhbGl6 ZSB3aXRoIG1heCBjZGNsayB0aWxsCj4+IC0JICogd2UgZ2V0IGR5bmFtaWMgY2RjbGsgc3VwcG9y dAo+PiAtCSAqICovCj4+IC0JZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrID0gZGV2X3ByaXYtPm1h eF9jZGNsa19mcmVxOwo+PiArCj4+ICAgCXNrbF9pbml0X2NkY2xrKGRldl9wcml2KTsKPj4KPj4g ICAJLyogd2UgZGlkIGhhdmUgdG8gc2FuaXRpemUgKi8KPj4gQEAgLTk4NDUsNiArOTg0NSw2OCBA QCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfbW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPj4gICAJYnJvYWR3ZWxsX3NldF9jZGNsayhkZXYsIHJl cV9jZGNsayk7Cj4+ICAgfQo+Pgo+PiArc3RhdGljIGludCBza2xfbW9kZXNldF9jYWxjX2NkY2xr KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+PiArCWNvbnN0IGlu dCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPj4gKwlpbnQgY2RjbGs7 Cj4+ICsKPj4gKwkvKgo+PiArCSAqIEZJWE1FIHNob3VsZCBhbHNvIGFjY291bnQgZm9yIHBsYW5l IHJhdGlvCj4+ICsJICogb25jZSA2NGJwcCBwaXhlbCBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCj4+ ICsJICovCj4+ICsKPj4gKwlpZiAodG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+Y2RjbGtf cGxsX3ZjbyA9PSA4NjQwKSB7Cj4+ICsJCS8qIHZjbyA4NjQwICovCj4+ICsJCWlmIChtYXhfcGl4 Y2xrID4gNTQwMDAwKQo+PiArCQkJY2RjbGsgPSA2MTcxNDA7Cj4+ICsJCWVsc2UgaWYgKG1heF9w aXhjbGsgPiA0MzIwMDApCj4+ICsJCQljZGNsayA9IDU0MDAwMDsKPj4gKwkJZWxzZSBpZiAobWF4 X3BpeGNsayA+IDMwODU3MCkKPj4gKwkJCWNkY2xrID0gNDMyMDAwOwo+PiArCQllbHNlCj4+ICsJ CQljZGNsayA9IDMwODU3MDsKPj4gKwl9IGVsc2Ugewo+PiArCQkvKiBWQ08gODEwMCAqLwo+PiAr CQlpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKPj4gKwkJCWNkY2xrID0gNjc1MDAwOwo+PiArCQll bHNlIGlmIChtYXhfcGl4Y2xrID4gNDUwMDAwKQo+PiArCQkJY2RjbGsgPSA1NDAwMDA7Cj4+ICsJ CWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMzc1MDApCj4+ICsJCQljZGNsayA9IDQ1MDAwMDsKPj4g KwkJZWxzZQo+PiArCQkJY2RjbGsgPSAzMzc1MDA7Cj4+ICsJfQo+PiArCj4+ICsJLyoKPj4gKwkg KiBGSVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+PiArCSAqIGNvbXB1dGVfY29u ZmlnKCkgc28gd2UgY2FuIGZhaWwgZ3JhY2VndWxseS4KPj4gKwkgKi8KPj4gKwlpZiAoY2RjbGsg PiBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpIHsKPj4gKwkJRFJNX0VSUk9SKCJyZXF1ZXN0ZWQg Y2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4+ICsJCQkgIGNkY2xrLCBk ZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+PiArCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2Rj bGtfZnJlcTsKPj4gKwl9Cj4+ICsKPj4gKwl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5j ZGNsayA9IGNkY2xrOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2 b2lkIHNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xk X3N0YXRlKQo+PiArewo+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfc3RhdGUtPmRl djsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+PiArCXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUo b2xkX3N0YXRlKS0+Y2RjbGs7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIEZJWE1FIGRpc2FibGUvZW5h YmxlIFBMTCBzaG91bGQgd3JhcCBzZXRfY2RjbGsoKQo+PiArCSAqLwo+PiArCXNrbF9zZXRfY2Rj bGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7Cj4+ICsKPj4gKwlkZXZfcHJpdi0+c2tsX3Zjb19mcmVx ID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSktPmNkY2xrX3BsbF92Y287Cj4+ICt9 Cj4+ICsKPj4gICBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+PiAgIAkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4gICB7Cj4+IEBAIC0xMzI0OCw5ICsxMzMxMCwxNSBAQCBzdGF0aWMgaW50 IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4g ICAJICogYWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5Lgo+PiAgIAkgKi8K Pj4gICAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsaykgewo+PiArCQlp ZiAoIWludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvKQo+PiArCQkJaW50ZWxfc3RhdGUtPmNkY2xr X3BsbF92Y28gPSBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxOwo+PiArCj4+ICAgCQlyZXQgPSBkZXZf cHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsoc3RhdGUpOwo+PiArCQlpZiAocmV0IDwg MCkKPj4gKwkJCXJldHVybiByZXQ7Cj4+Cj4+IC0JCWlmICghcmV0ICYmIGludGVsX3N0YXRlLT5k ZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpCj4+ICsJCWlmIChpbnRlbF9zdGF0ZS0+ ZGV2X2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxIHx8Cj4+ICsJCSAgICBpbnRlbF9zdGF0 ZS0+Y2RjbGtfcGxsX3ZjbyAhPSBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxKQo+PiAgIAkJCXJldCA9 IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKPj4KPj4gICAJCWlmIChyZXQgPCAwKQo+ PiBAQCAtMTUwMDIsNiArMTUwNzAsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQkJYnJveHRvbl9tb2Rlc2V0X2NvbW1pdF9j ZGNsazsKPj4gICAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4+ICAg CQkJYnJveHRvbl9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtF KGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rl c2V0X2NvbW1pdF9jZGNsayA9Cj4+ICsJCQlza2xfbW9kZXNldF9jb21taXRfY2RjbGs7Cj4+ICsJ CWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4+ICsJCQlza2xfbW9kZXNl dF9jYWxjX2NkY2xrOwo+PiAgIAl9Cj4+Cj4+ICAgCXN3aXRjaCAoSU5URUxfSU5GTyhkZXYpLT5n ZW4pIHsKPj4gQEAgLTE1NzI1LDcgKzE1Nzk4LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNl dF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQlpZiAoY3J0 Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKPj4gICAJCQlkZXZfcHJpdi0+YWN0aXZlX2NydGNzIHw9 IDEgPDwgY3J0Yy0+cGlwZTsKPj4KPj4gLQkJCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7 Cj4+ICsJCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19TS1lMQUtFKGRldl9wcml2 KSB8fAo+PiArCQkJICAgIElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+PiAgIAkJCQlwaXhjbGsg PSBpbGtfcGlwZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwo+Pgo+PiAgIAkJCQkvKiBwaXhlbCBy YXRlIG11c3RuJ3QgZXhjZWVkIDk1JSBvZiBjZGNsayB3aXRoIElQUyBvbiBCRFcgKi8KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4+IGluZGV4IGEwNzNmMDQuLmFmYTIxYjYgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBAQCAtMTI0NSw2ICsxMjQ1LDcgQEAgc3RhdGljIHZvaWQK Pj4gICBza2xfZWRwX3NldF9wbGxfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKPj4gICB7Cj4+ICAgCXUzMiBjdHJsMTsKPj4gKwl1MzIgdmNvID0gODEwMDsKPj4K Pj4gICAJbWVtc2V0KCZwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSwgMCwKPj4gICAJICAgICAg IHNpemVvZihwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSkpOwo+PiBAQCAtMTI3NywxMyArMTI3 OCwxNiBAQCBza2xfZWRwX3NldF9wbGxfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKPj4gICAJY2FzZSAxMDgwMDA6Cj4+ICAgCQljdHJsMSB8PSBEUExMX0NUUkwx X0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8xMDgwLAo+PiAgIAkJCQkJICAgICAgU0tM X0RQTEwwKTsKPj4gKwkJdmNvID0gODY0MDsKPj4gICAJCWJyZWFrOwo+PiAgIAljYXNlIDIxNjAw MDoKPj4gICAJCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19S QVRFXzIxNjAsCj4+ICAgCQkJCQkgICAgICBTS0xfRFBMTDApOwo+PiArCQl2Y28gPSA4NjQwOwo+ PiAgIAkJYnJlYWs7Cj4+IC0KPj4gICAJfQo+PiArCj4+ICsJdG9faW50ZWxfYXRvbWljX3N0YXRl KHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlKS0+Y2RjbGtfcGxsX3ZjbyA9IHZjbzsKPj4gICAJcGlw ZV9jb25maWctPmRwbGxfaHdfc3RhdGUuY3RybDEgPSBjdHJsMTsKPj4gICB9Cj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IDg3ODE3MmEuLjQ3OTM2ZDQgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IEBAIC0yNjAsNiArMjYwLDkgQEAgc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSB7Cj4+Cj4+ICAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcg c2hhcmVkX2RwbGxbSTkxNV9OVU1fUExMU107Cj4+ICAgCXN0cnVjdCBpbnRlbF93bV9jb25maWcg d21fY29uZmlnOwo+PiArCj4+ICsJLyogU0tML0tCTCBPbmx5ICovCj4+ICsJdW5zaWduZWQgaW50 IGNkY2xrX3BsbF92Y287Cj4+ICAgfTsKPj4KPj4gICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg ewo+PiBAQCAtMTE5MSw2ICsxMTk0LDcgQEAgdm9pZCBieHRfZGlzYWJsZV9kYzkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICAgaW50IHNrbF9zYW5pdGl6ZV9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAgIHZvaWQgc2tsX3VuaW5p dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiArdW5zaWduZWQg aW50IHNrbF9jZGNsa19nZXRfdmNvKHVuc2lnbmVkIGludCBmcmVxKTsKPj4gICB2b2lkIHNrbF9l bmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICAgdm9pZCBz a2xfZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gICB2 b2lkIGludGVsX2RwX2dldF9tX24oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+IC0tCj4+IDEu Ny45LjUKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==