From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH V5] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Mon, 15 Feb 2016 15:16:14 +0200 Message-ID: <20160215131614.GT23290@intel.com> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> <1455329170-25474-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 740E26E136 for ; Mon, 15 Feb 2016 13:16:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1455329170-25474-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 T24gRnJpLCBGZWIgMTIsIDIwMTYgYXQgMDY6MDY6MTBQTSAtMDgwMCwgY2xpbnRvbi5hLnRheWxv ckBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9y QGludGVsLmNvbT4KPiAKPiBTZXQgY2RjbGsgYmFzZWQgb24gdGhlIG1heCByZXF1aXJlZCBwaXhl bCBjbG9jayBiYXNlZCBvbiBWQ08KPiBzZWxlY3RlZC4gVHJhY2sgYm9vdCB2Y28gaW5zdGVhZCBv ZiBib290IGNkY2xrLgo+IAo+IFRoZSB2Y28gaXMgbm93IHRyYWNrZWQgYXQgdGhlIGF0b21pYyBs ZXZlbCBhbmQgYWxsIENSVENzIHVwZGF0ZWQgaWYKPiB0aGUgcmVxdWlyZWQgdmNvIGlzIGNoYW5n ZWQuIE5vdCB0ZXN0ZWQgd2l0aCBlRFAgdjEuNCBwYW5lbHMgdGhhdAo+IHJlcXVpcmUgODY0MCB2 Y28gZHVlIHRvIGF2YWlsYWJpbGl0eS4KPiAKPiBWMTogaW5pdGlhbCB2ZXJzaW9uCj4gVjI6IGFk ZCB2Y28gdHJhY2tpbmcgaW4gaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoKSwgcmVuYW1lCj4gc2ts X2Jvb3RfY2RjbGsuCj4gVjM6IHJlYmFzZSwgVjIgZmVlZGJhY2sgbm90IHBvc3NpYmxlIGFzIGVu Y29kZXJzIGFyZSBub3QgYXdhcmUgb2YKPiBhdG9taWMuCj4gVjQ6IHRyYWNrIHRhcmdldCB2Y28g aXMgYXRvbWljIHN0YXRlLiBtb2Rlc2V0IGFsbCBDUlRDcyBpZiB2Y28gY2hhbmdlcwo+IFY1OiBy ZW5hbWUgYXRvbWljIHZhcmlhYmxlLCBjbGVhbmVyIGlmL2Vsc2UgbG9naWMsIHVzZSBleGlzdGlu ZyB2Y28gaWYKPiAgICAgZW5jb2RlciBkb2VzIG5vdCByZXR1cm4gYSBuZXcgdmNvIHZhbHVlLiBj aGVja19wYXRjaC5wbCBjbGVhbnVwCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2xpbnQgVGF5bG9yIDxj bGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KPiBDYzogVmlsbGUgPT9pc28tODg1OS0xP1E/U3ly aj1FNGw9RTQ/PSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgIDIgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgIHwgICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgfCAgMTE0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgICAgNiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgICA0ICsrCj4gIDUgZmlsZXMg Y2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IGluZGV4IDgyMTY2NjUuLmY2NWRkMWEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBAQCAtMTgyMiw3ICsxODIyLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgewo+ICAJaW50IG51bV9mZW5jZV9yZWdzOyAvKiA4IG9uIHByZS05NjUsIDE2IG90aGVyd2lz ZSAqLwo+ICAKPiAgCXVuc2lnbmVkIGludCBmc2JfZnJlcSwgbWVtX2ZyZXEsIGlzX2RkcjM7Cj4g LQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4gKwl1bnNpZ25lZCBpbnQgc2tsX3Zjb19m cmVxOwo+ICAJdW5zaWduZWQgaW50IGNkY2xrX2ZyZXEsIG1heF9jZGNsa19mcmVxLCBhdG9taWNf Y2RjbGtfZnJlcTsKPiAgCXVuc2lnbmVkIGludCBtYXhfZG90Y2xrX2ZyZXE7Cj4gIAl1bnNpZ25l ZCBpbnQgaHBsbF9mcmVxOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggNmQ1YjA5 Zi4uMjg1YWRhYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTI5NTgsNyAr Mjk1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAkJaW50IGNkY2xrX2ZyZXE7Cj4gIAo+ICAJCWNkY2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlz cGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYpOwo+IC0JCWRldl9wcml2LT5za2xfYm9v dF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gKwkJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IHNrbF9j ZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+ICAJCWlmIChza2xfc2FuaXRpemVfY2RjbGsoZGV2 X3ByaXYpKQo+ICAJCQlEUk1fREVCVUdfS01TKCJTYW5pdGl6ZWQgY2RjbGsgcHJvZ3JhbW1lZCBi eSBwcmUtb3NcbiIpOwo+ICAJCWlmICghKEk5MTVfUkVBRChMQ1BMTDFfQ1RMKSAmIExDUExMX1BM TF9FTkFCTEUpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA5ZTIy NzNiLi5jMjgzYWJkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBA IC01NjYzLDcgKzU2NjMsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNrbF9jZGNsa19kZWNpbWFs KHVuc2lnbmVkIGludCBmcmVxKQo+ICAJcmV0dXJuIChmcmVxIC0gMTAwMCkgLyA1MDA7Cj4gIH0K PiAgCj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28odW5zaWduZWQgaW50 IGZyZXEpCj4gK3Vuc2lnbmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJl cSkKPiAgewo+ICAJdW5zaWduZWQgaW50IGk7Cj4gIAo+IEBAIC01ODIxLDE3ICs1ODIxLDIxIEBA IHZvaWQgc2tsX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gIAo+ICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgewo+IC0JdW5zaWduZWQgaW50IHJlcXVpcmVkX3ZjbzsKPiArCXVuc2lnbmVkIGlu dCBjZGNsazsKPiAgCj4gIAkvKiBEUExMMCBub3QgZW5hYmxlZCAoaGFwcGVucyBvbiBlYXJseSBC SU9TIHZlcnNpb25zKSAqLwo+ICAJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9DVEwpICYgTENQTExf UExMX0VOQUJMRSkpIHsKPiAgCQkvKiBlbmFibGUgRFBMTDAgKi8KPiAtCQlyZXF1aXJlZF92Y28g PSBza2xfY2RjbGtfZ2V0X3ZjbyhkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGspOwo+IC0JCXNrbF9k cGxsMF9lbmFibGUoZGV2X3ByaXYsIHJlcXVpcmVkX3Zjbyk7Cj4gKwkJaWYgKGRldl9wcml2LT5z a2xfdmNvX2ZyZXEgIT0gODY0MCkKPiArCQkJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IDgxMDA7 Cj4gKwkJc2tsX2RwbGwwX2VuYWJsZShkZXZfcHJpdiwgZGV2X3ByaXYtPnNrbF92Y29fZnJlcSk7 Cj4gKwkJY2RjbGsgPSAoKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgPT0gODEwMCkgPyAzMzc1MDAg OiAzMDg1NzApOwo+ICsJfSBlbHNlIHsKPiArCQljZGNsayA9IGRldl9wcml2LT5jZGNsa19mcmVx Owo+ICAJfQo+ICAKPiAtCS8qIHNldCBDRENMSyB0byB0aGUgZnJlcXVlbmN5IHRoZSBCSU9TIGNo b3NlICovCj4gLQlza2xfc2V0X2NkY2xrKGRldl9wcml2LCBkZXZfcHJpdi0+c2tsX2Jvb3RfY2Rj bGspOwo+ICsJLyogc2V0IENEQ0xLIHRvIHRoZSBsb3dlc3QgZnJlcXVlbmN5LCBNb2Rlc2V0IGZv bGxvd3MgKi8KPiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIGNkY2xrKTsKPiAgCj4gIAkvKiBl bmFibGUgREJVRiBwb3dlciAqLwo+ICAJSTkxNV9XUklURShEQlVGX0NUTCwgSTkxNV9SRUFEKERC VUZfQ1RMKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7Cj4gQEAgLTU4NDcsNyArNTg1MSw3IEBAIGlu dCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICB7Cj4gIAl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQTEwxX0NUTCk7Cj4gIAl1aW50 MzJfdCBjZGN0bCA9IEk5MTVfUkVBRChDRENMS19DVEwpOwo+IC0JaW50IGZyZXEgPSBkZXZfcHJp di0+c2tsX2Jvb3RfY2RjbGs7Cj4gKwlpbnQgZnJlcSA9IGRldl9wcml2LT5jZGNsa19mcmVxOwo+ ICAKPiAgCS8qCj4gIAkgKiBjaGVjayBpZiB0aGUgcHJlLW9zIGludGlhbGl6ZWQgdGhlIGRpc3Bs YXkKPiBAQCAtNTg3MSwxMSArNTg3NSw3IEBAIGludCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCS8qIEFsbCB3ZWxsOyBub3RoaW5nIHRv IHNhbml0aXplICovCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICBzYW5pdGl6ZToKPiAtCS8qCj4gLQkg KiBBcyBvZiBub3cgaW5pdGlhbGl6ZSB3aXRoIG1heCBjZGNsayB0aWxsCj4gLQkgKiB3ZSBnZXQg ZHluYW1pYyBjZGNsayBzdXBwb3J0Cj4gLQkgKiAqLwo+IC0JZGV2X3ByaXYtPnNrbF9ib290X2Nk Y2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxOwo+ICsKPiAgCXNrbF9pbml0X2NkY2xrKGRl dl9wcml2KTsKPiAgCj4gIAkvKiB3ZSBkaWQgaGF2ZSB0byBzYW5pdGl6ZSAqLwo+IEBAIC05ODQ1 LDYgKzk4NDUsNzAgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX21vZGVzZXRfY29tbWl0X2NkY2xr KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gIAlicm9hZHdlbGxfc2V0X2Nk Y2xrKGRldiwgcmVxX2NkY2xrKTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBza2xfbW9kZXNldF9j YWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiArCWNv bnN0IGludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPiArCWludCBj ZGNsazsKPiArCj4gKwkvKgo+ICsJICogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxh bmUgcmF0aW8KPiArCSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+ ICsJICovCj4gKwo+ICsJaWYgKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrX3Bs bF92Y28gPT0gODY0MCkgewo+ICsJCS8qIHZjbyA4NjQwICovCj4gKwkJaWYgKG1heF9waXhjbGsg PiA1NDAwMDApCj4gKwkJCWNkY2xrID0gNjE3MTQwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsg PiA0MzIwMDApCj4gKwkJCWNkY2xrID0gNTQwMDAwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsg PiAzMDg1NzApCj4gKwkJCWNkY2xrID0gNDMyMDAwOwo+ICsJCWVsc2UKPiArCQkJY2RjbGsgPSAz MDg1NzA7Cj4gKwl9IGVsc2Ugewo+ICsJCS8qIFZDTyA4MTAwICovCj4gKwkJaWYgKG1heF9waXhj bGsgPiA1NDAwMDApCj4gKwkJCWNkY2xrID0gNjc1MDAwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhj bGsgPiA0NTAwMDApCj4gKwkJCWNkY2xrID0gNTQwMDAwOwo+ICsJCWVsc2UgaWYgKG1heF9waXhj bGsgPiAzMzc1MDApCj4gKwkJCWNkY2xrID0gNDUwMDAwOwo+ICsJCWVsc2UKPiArCQkJY2RjbGsg PSAzMzc1MDA7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIEZJWE1FIG1vdmUgdGhlIGNkY2xrIGNh Y2x1bGF0aW9uIHRvCj4gKwkgKiBjb21wdXRlX2NvbmZpZygpIHNvIHdlIGNhbiBmYWlsIGdyYWNl Z3VsbHkuCj4gKwkgKi8KPiArCWlmIChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkg ewo+ICsJCURSTV9FUlJPUigicmVxdWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4ICgl ZCBrSHopXG4iLAo+ICsJCQkgIGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+ICsJ CWNkY2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxOwo+ICsJfQo+ICsKPiArCXRvX2ludGVs X2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0gY2RjbGs7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIHNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gb2xkX3N0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdW5zaWduZWQgaW50IHJlcV9jZGNsayA9IHRvX2ludGVs X2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsazsKPiArCj4gKwkvKgo+ICsJICogRklYTUUg ZGlzYWJsZS9lbmFibGUgUExMIHNob3VsZCB3cmFwIHNldF9jZGNsaygpCj4gKwkgKi8KPiArCXNr bF9zZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7Cj4gKwo+ICsJaWYgKHRvX2ludGVsX2F0 b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsa19wbGxfdmNvKSB7Cj4gKwkJZGV2X3ByaXYtPnNr bF92Y29fZnJlcSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsa19wbGxf dmNvOwoKVGhlIGlmIHN0YXRlbWVudCBzZWVtcyBwb2ludGxlc3MuIFdlIHNob3VsZCBuZXZlciBn ZXQgaGVyZSB3aXRob3V0IGEKdmFsaWQgdmNvIGluIHRoZSBzdGF0ZS4gT3IgaWYgd2UgZG8sIHRo ZXJlIGlzIGEgYnVnIHNvbWV3aGVyZSBlbHNlLgoKPiArCX0KPiArfQo+ICsKPiAgc3RhdGljIGlu dCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAg CQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gQEAg LTEzMjE5LDExICsxMzI4MywxNCBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfYWxsX3BpcGVz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCj4gIHN0YXRpYyBpbnQgaW50ZWxf bW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiAgCXN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0YXRlLT5kZXYtPmRldl9wcml2 YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlOwo+ICAJaW50IHJldCA9IDAsIGk7Cj4gKwl1bnNpZ25lZCBpbnQgdGFyZ2V0 X3ZjbyA9IDA7Cj4gKwlib29sIGNkY2xrX2NoYW5nZSwgdmNvX2NoYW5nZTsKPiAgCj4gIAlpZiAo IWNoZWNrX2RpZ2l0YWxfcG9ydF9jb25mbGljdHMoc3RhdGUpKSB7Cj4gIAkJRFJNX0RFQlVHX0tN UygicmVqZWN0aW5nIGNvbmZsaWN0aW5nIGRpZ2l0YWwgcG9ydCBjb25maWd1cmF0aW9uXG4iKTsK PiBAQCAtMTMyNDgsOSArMTMzMTUsMjIgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNr cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkgKiBhZGp1c3RlZF9tb2RlIGJp dHMgaW4gdGhlIGNydGMgZGlyZWN0bHkuCj4gIAkgKi8KPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxh eS5tb2Rlc2V0X2NhbGNfY2RjbGspIHsKPiArCQlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tB QllMQUtFKGRldikpIHsKPiArCQkJdGFyZ2V0X3ZjbyA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShz dGF0ZSktPmNkY2xrX3BsbF92Y287Cj4gKwkJCWlmICghdGFyZ2V0X3ZjbykKPiArCQkJCXRvX2lu dGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrX3BsbF92Y28gPQo+ICsJCQkJCQkgICAgICBk ZXZfcHJpdi0+c2tsX3Zjb19mcmVxOwo+ICsJCX0KPiArCj4gIAkJcmV0ID0gZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrKHN0YXRlKTsKPiArCQlpZiAocmV0IDwgMCkKPiArCQkJ cmV0dXJuIHJldDsKPiArCj4gKwkJY2RjbGtfY2hhbmdlID0gaW50ZWxfc3RhdGUtPmRldl9jZGNs ayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiArCQl2Y29fY2hhbmdlID0gKChJU19TS1lMQUtF KGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgJiYKPiArCQkJICAgICAodGFyZ2V0X3ZjbykgJiYg KGRldl9wcml2LT5za2xfdmNvX2ZyZXEgIT0gdGFyZ2V0X3ZjbykpOwoKSSBkb24ndCB0aGluayB5 b3UgbmVlZCBhbGwgdGhvc2UgU0tMfHxLQkwgY2hlY2tzLiBBbmQgdGFyZ2V0X3ZjbyBzZWVtcwps aWtlIGEgcmF0aGVyIHBvaW50bGVzcyB2YXJpYWJsZS4gT2ggYW5kIGNkY2xrX2NoYW5nZSBhbmQg dmNvX2NoYW5nZQpjb3VsZCBoYXZlIHRpZ2h0ZXIgc2NvcGUuIEVnLiBzb21ldGhpbmcgYXMgc2lt cGxlIGFzIHRoaXMgb3VnaHQKdG8gd29yayBJIHRoaW5rOgoKaWYgKGRldl9wcml2LT5kaXNwbGF5 Lm1vZGVzZXRfY2FsY19jZGNsaykgewoJYm9vbCBjZGNsa19jaGFuZ2UsIHZjb19jaGFuZ2U7CgoJ aWYgKGludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvID09IDApCgkJaW50ZWxfc3RhdGUtPmNkY2xr X3BsbF92Y28gPSBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxOwoKCXJldCA9IGRldl9wcml2LT5kaXNw bGF5Lm1vZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7CglpZiAocmV0KQoJCXJldHVybiByZXQ7CgoJ Y2RjbGtfY2hhbmdlID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtf ZnJlcTsKCXZjb19jaGFuZ2UgPSBpbnRlbF9zdGF0ZS0+c2tsX3Zjb19mcmVxICE9IGRldl9wcml2 LT5za2xfdmNvX2ZyZXE7CgkuLi4KCk90aGVyd2lzZSBpdCBsb29rcyBwcmV0dHkgZ29vZCB0byBt ZS4KCj4gIAo+IC0JCWlmICghcmV0ICYmIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3By aXYtPmNkY2xrX2ZyZXEpCj4gKwkJaWYgKGNkY2xrX2NoYW5nZSB8fCB2Y29fY2hhbmdlKQo+ICAJ CQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7Cj4gIAo+ICAJCWlmIChyZXQg PCAwKQo+IEBAIC0xNTAwMiw2ICsxNTA4MiwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X2Rp c3BsYXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJYnJveHRvbl9tb2Rlc2V0X2NvbW1p dF9jZGNsazsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ICAJ CQlicm94dG9uX21vZGVzZXRfY2FsY19jZGNsazsKPiArCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShk ZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NvbW1pdF9jZGNsayA9Cj4gKwkJCXNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsazsKPiArCQlkZXZf cHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ICsJCQlza2xfbW9kZXNldF9jYWxj X2NkY2xrOwo+ICAJfQo+ICAKPiAgCXN3aXRjaCAoSU5URUxfSU5GTyhkZXYpLT5nZW4pIHsKPiBA QCAtMTU3MjUsNyArMTU4MTAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRf aHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlpZiAoY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmUpIHsKPiAgCQkJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyB8PSAxIDw8IGNydGMtPnBp cGU7Cj4gIAo+IC0JCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICsJCQlpZiAoSVNf QlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19TS1lMQUtFKGRldl9wcml2KSB8fAo+ICsJCQkgICAg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gIAkJCQlwaXhjbGsgPSBpbGtfcGlwZV9waXhlbF9y YXRlKGNydGNfc3RhdGUpOwo+ICAKPiAgCQkJCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQg OTUlIG9mIGNkY2xrIHdpdGggSVBTIG9uIEJEVyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ IGluZGV4IGEwNzNmMDQuLmFmYTIxYjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBA QCAtMTI0NSw2ICsxMjQ1LDcgQEAgc3RhdGljIHZvaWQKPiAgc2tsX2VkcF9zZXRfcGxsX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAgCXUzMiBjdHJs MTsKPiArCXUzMiB2Y28gPSA4MTAwOwo+ICAKPiAgCW1lbXNldCgmcGlwZV9jb25maWctPmRwbGxf aHdfc3RhdGUsIDAsCj4gIAkgICAgICAgc2l6ZW9mKHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRl KSk7Cj4gQEAgLTEyNzcsMTMgKzEyNzgsMTYgQEAgc2tsX2VkcF9zZXRfcGxsX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIAljYXNlIDEwODAwMDoKPiAgCQlj dHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8xMDgwLAo+ ICAJCQkJCSAgICAgIFNLTF9EUExMMCk7Cj4gKwkJdmNvID0gODY0MDsKPiAgCQlicmVhazsKPiAg CWNhc2UgMjE2MDAwOgo+ICAJCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RS TDFfTElOS19SQVRFXzIxNjAsCj4gIAkJCQkJICAgICAgU0tMX0RQTEwwKTsKPiArCQl2Y28gPSA4 NjQwOwo+ICAJCWJyZWFrOwo+IC0KPiAgCX0KPiArCj4gKwl0b19pbnRlbF9hdG9taWNfc3RhdGUo cGlwZV9jb25maWctPmJhc2Uuc3RhdGUpLT5jZGNsa19wbGxfdmNvID0gdmNvOwo+ICAJcGlwZV9j b25maWctPmRwbGxfaHdfc3RhdGUuY3RybDEgPSBjdHJsMTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+IGluZGV4IDg3ODE3MmEuLjQ3OTM2ZDQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+IEBAIC0yNjAsNiArMjYwLDkgQEAgc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSB7Cj4gIAo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBzaGFyZWRfZHBs bFtJOTE1X05VTV9QTExTXTsKPiAgCXN0cnVjdCBpbnRlbF93bV9jb25maWcgd21fY29uZmlnOwo+ ICsKPiArCS8qIFNLTC9LQkwgT25seSAqLwo+ICsJdW5zaWduZWQgaW50IGNkY2xrX3BsbF92Y287 Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+IEBAIC0xMTkxLDYgKzEx OTQsNyBAQCB2b2lkIGJ4dF9kaXNhYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+ICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gIGludCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiAgdm9pZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gK3Vuc2lnbmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNp Z25lZCBpbnQgZnJlcSk7Cj4gIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBza2xfZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRlbF9kcF9nZXRfbV9uKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAo+IC0tIAo+IDEuNy45LjUKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=