From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH V4] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Fri, 12 Feb 2016 13:18:19 +0200 Message-ID: <20160212111819.GH23290@intel.com> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> <1455232928-2806-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 284636E2ED for ; Fri, 12 Feb 2016 03:18:23 -0800 (PST) Content-Disposition: inline In-Reply-To: <1455232928-2806-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 T24gVGh1LCBGZWIgMTEsIDIwMTYgYXQgMDM6MjI6MDhQTSAtMDgwMCwgY2xpbnRvbi5hLnRheWxv ckBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9y QGludGVsLmNvbT4KPiAKPiBUcmFjayBWQ08gZnJlcXVlbmN5IG9mIFNLTCBpbnN0ZWFkIG9mIHRo ZSBib290IENEQ0xLIGFuZCBhbGxvdyBtb2Rlc2V0Cj4gdG8gc2V0IGNkY2xrIGJhc2VkIG9uIHRo ZSBtYXggcmVxdWlyZWQgcGl4ZWwgY2xvY2sgYmFzZWQgb24gVkNPCj4gc2VsZWN0ZWQuCj4gCj4g VGhlIHZjbyBzaG91bGQgYmUgdHJhY2tlZCBhdCB0aGUgYXRvbWljIGxldmVsIGFuZCBhbGwgQ1JU Q3MgdXBkYXRlZCBpZgo+IHRoZSByZXF1aXJlZCB2Y28gaXMgY2hhbmdlZC4gQXQgdGhpcyB0aW1l IHRoZSBlRFAgcGxsIGlzIGNvbmZpZ3VyZWQKPiBpbnNpZGUgdGhlIGVuY29kZXIgd2hpY2ggaGFz IG5vIHZpc2liaWxpdHkgaW50byB0aGUgYXRvbWljIHN0YXRlLiBXaGVuCj4gZURQIHYxLjQgcGFu ZWwgdGhhdCByZXF1aXJlIHRoZSA4NjQwIHZjbyBhcmUgYXZhaWxhYmxlIHRoaXMgbWF5IG5lZWQK PiB0byBiZSBpbnZlc3RpZ2F0ZWQuCj4gCj4gVjE6IGluaXRpYWwgdmVyc2lvbgo+IFYyOiBhZGQg dmNvIHRyYWNraW5nIGluIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKCksIHJlbmFtZQo+IHNrbF9i b290X2NkY2xrLgo+IFYzOiByZWJhc2UsIFYyIGZlZWRiYWNrIG5vdCBwb3NzaWJsZSBhcyBlbmNv ZGVycyBhcmUgbm90IGF3YXJlIG9mCj4gYXRvbWljLgo+IFY0OiB0cmFjayB0YXJnZXQgdmNvIGlz IGF0b21pYyBzdGF0ZS4gbW9kZXNldCBhbGwgQ1JUQ3MgaWYgdmNvIGNoYW5nZXMKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBDbGludCBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwuY29tPgo+IENj OiBWaWxsZSA9P2lzby04ODU5LTE/UT9TeXJqPUU0bD1FND89IDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg IHwgICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAgICAy ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgOTcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICAgICAgfCAgIDEwICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgICAgNCArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDE4 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDgyMTY2NjUu LmY2NWRkMWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTgyMiw3ICsxODIy LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJaW50IG51bV9mZW5jZV9yZWdzOyAv KiA4IG9uIHByZS05NjUsIDE2IG90aGVyd2lzZSAqLwo+ICAKPiAgCXVuc2lnbmVkIGludCBmc2Jf ZnJlcSwgbWVtX2ZyZXEsIGlzX2RkcjM7Cj4gLQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7 Cj4gKwl1bnNpZ25lZCBpbnQgc2tsX3Zjb19mcmVxOwo+ICAJdW5zaWduZWQgaW50IGNkY2xrX2Zy ZXEsIG1heF9jZGNsa19mcmVxLCBhdG9taWNfY2RjbGtfZnJlcTsKPiAgCXVuc2lnbmVkIGludCBt YXhfZG90Y2xrX2ZyZXE7Cj4gIAl1bnNpZ25lZCBpbnQgaHBsbF9mcmVxOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jCj4gaW5kZXggNmQ1YjA5Zi4uMjg1YWRhYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jCj4gQEAgLTI5NTgsNyArMjk1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJaW50IGNkY2xrX2ZyZXE7Cj4gIAo+ICAJ CWNkY2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChk ZXYpOwo+IC0JCWRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gKwkJZGV2 X3ByaXYtPnNrbF92Y29fZnJlcSA9IHNrbF9jZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwoKVGhp cyBzaG91bGQgcmVhbGx5IHJlYWQgb3V0IHRoZSB2Y28gZnJvbSB0aGUgaGFyZHdhcmUuIEJ1dCBJ IHRoaW5rIHdlCmNhbiBsZWF2ZSB0aGF0IGZvciBsYXRlci4gVGhlIHByb2JsZW0gcmVhbGx5IGlz IHRoZSA1NDBNSHogY2FzZSBzaW5jZSBpdApjYW4gYmUgdXNpbmcgZWl0aGVyIHZjbyBmcmVxdWVu Y3kgKElJUkMpLgoKPiAgCQlpZiAoc2tsX3Nhbml0aXplX2NkY2xrKGRldl9wcml2KSkKPiAgCQkJ RFJNX0RFQlVHX0tNUygiU2FuaXRpemVkIGNkY2xrIHByb2dyYW1tZWQgYnkgcHJlLW9zXG4iKTsK PiAgCQlpZiAoIShJOTE1X1JFQUQoTENQTEwxX0NUTCkgJiBMQ1BMTF9QTExfRU5BQkxFKSkKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggOWUyMjczYi4uZWY0YWMzNCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTY2Myw3ICs1NjYz LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBza2xfY2RjbGtfZGVjaW1hbCh1bnNpZ25lZCBpbnQg ZnJlcSkKPiAgCXJldHVybiAoZnJlcSAtIDEwMDApIC8gNTAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dW5zaWduZWQgaW50IHNrbF9jZGNsa19nZXRfdmNvKHVuc2lnbmVkIGludCBmcmVxKQo+ICt1bnNp Z25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28odW5zaWduZWQgaW50IGZyZXEpCj4gIHsKPiAgCXVu c2lnbmVkIGludCBpOwo+ICAKPiBAQCAtNTgyMSwxNyArNTgyMSwxNyBAQCB2b2lkIHNrbF91bmlu aXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAgdm9pZCBz a2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAt CXVuc2lnbmVkIGludCByZXF1aXJlZF92Y287Cj4gLQo+ICAJLyogRFBMTDAgbm90IGVuYWJsZWQg KGhhcHBlbnMgb24gZWFybHkgQklPUyB2ZXJzaW9ucykgKi8KPiAgCWlmICghKEk5MTVfUkVBRChM Q1BMTDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKSB7Cj4gIAkJLyogZW5hYmxlIERQTEwwICov Cj4gLQkJcmVxdWlyZWRfdmNvID0gc2tsX2NkY2xrX2dldF92Y28oZGV2X3ByaXYtPnNrbF9ib290 X2NkY2xrKTsKPiAtCQlza2xfZHBsbDBfZW5hYmxlKGRldl9wcml2LCByZXF1aXJlZF92Y28pOwo+ ICsJCWlmIChkZXZfcHJpdi0+c2tsX3Zjb19mcmVxICE9IDg2NDApIHsKPiArCQkJZGV2X3ByaXYt PnNrbF92Y29fZnJlcSA9IDgxMDA7Cj4gKwkJfQo+ICsJCXNrbF9kcGxsMF9lbmFibGUoZGV2X3By aXYsIGRldl9wcml2LT5za2xfdmNvX2ZyZXEpOwo+ICAJfQo+ICAKPiAgCS8qIHNldCBDRENMSyB0 byB0aGUgZnJlcXVlbmN5IHRoZSBCSU9TIGNob3NlICovCj4gLQlza2xfc2V0X2NkY2xrKGRldl9w cml2LCBkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGspOwo+ICsJc2tsX3NldF9jZGNsayhkZXZfcHJp diwgKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgPT0gODEwMCkgPyAzMzc1MDAgOiAzMDg1NzAgKTsK CldlIHJlYWxseSBzaG91bGRuJ3QgY2hhbmdlIHRoZSBjZGNsayBpZiB0aGVyZSBhcmUgYWN0aXZl IG91dHB1dHMuIFRoaXMKd2hvbGUgYXJlYSBkZWZpbml0ZWx5IG5lZWRzIG1vcmUgd29yaywgZm9y IEJYVCB0b28gSSBhbHJlYWR5IGhhdmUKc29tZSBCWFQgcGF0Y2hlcyBsaW5lZCB1cCBpbiBzb21l IGJyYW5jaCB0aGF0IGZyb2IgYXJvdW5kIHRoZXNlIHBhcnRzCmEgYml0LCBzbyBtYXliZSBJIHNo b3VsZCBleHRlbmQgdGhhdCBzdHVmZiB0byBTS0wgYXMgd2VsbC4KCkluIHRoZSBtZWFudGltZSB3 ZSBkb24ndCB3YW50IHRvIGNhdXNlIGEgcmVncmVzc2lvbiBhdCBsZWFzdCwgc28gCm1heWJlIHdl IGNhbiBqdXN0IGRvIHNvbWV0aGluZyBsaWtlOgoKaWYgKCFMQ1BMTF9FTkFCTEUpIHsKCS4uLgoJ Y2RjbGsgPSB2Y28gPT0gODEwMCA/IC4uLjsKfSBlbHNlIHsKCWNkY2xrID0gZGV2X3ByaXYtPmNk Y2xrX2ZyZXE7Cn0Kc2V0X2NkY2xrKGNkY2xrKTsKCgo+ICAKPiAgCS8qIGVuYWJsZSBEQlVGIHBv d2VyICovCj4gIAlJOTE1X1dSSVRFKERCVUZfQ1RMLCBJOTE1X1JFQUQoREJVRl9DVEwpIHwgREJV Rl9QT1dFUl9SRVFVRVNUKTsKPiBAQCAtNTg0Nyw3ICs1ODQ3LDcgQEAgaW50IHNrbF9zYW5pdGl6 ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXVpbnQz Ml90IGxjcGxsMSA9IEk5MTVfUkVBRChMQ1BMTDFfQ1RMKTsKPiAgCXVpbnQzMl90IGNkY3RsID0g STkxNV9SRUFEKENEQ0xLX0NUTCk7Cj4gLQlpbnQgZnJlcSA9IGRldl9wcml2LT5za2xfYm9vdF9j ZGNsazsKPiArCWludCBmcmVxID0gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7Cj4gIAo+ICAJLyoKPiAg CSAqIGNoZWNrIGlmIHRoZSBwcmUtb3MgaW50aWFsaXplZCB0aGUgZGlzcGxheQo+IEBAIC01ODcx LDExICs1ODcxLDcgQEAgaW50IHNrbF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gIAkJLyogQWxsIHdlbGw7IG5vdGhpbmcgdG8gc2FuaXRpemUgKi8K PiAgCQlyZXR1cm4gZmFsc2U7Cj4gIHNhbml0aXplOgo+IC0JLyoKPiAtCSAqIEFzIG9mIG5vdyBp bml0aWFsaXplIHdpdGggbWF4IGNkY2xrIHRpbGwKPiAtCSAqIHdlIGdldCBkeW5hbWljIGNkY2xr IHN1cHBvcnQKPiAtCSAqICovCj4gLQlkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGsgPSBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXE7Cj4gKwkKPiAgCXNrbF9pbml0X2NkY2xrKGRldl9wcml2KTsKPiAg Cj4gIAkvKiB3ZSBkaWQgaGF2ZSB0byBzYW5pdGl6ZSAqLwo+IEBAIC05ODQ1LDYgKzk4NDEsNjgg QEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gIAlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVx X2NkY2xrKTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBza2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiArCWludCBtYXhfcGl4Y2xr ID0gaWxrX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPiArCWludCBjZGNsazsKPiArCQo+ICsJLyoK PiArCSogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPiArCSogb25j ZSA2NGJwcCBwaXhlbCBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCj4gKwkqLwoKQSBiaXQgb2YgZm9y bWF0dGluZyBpc3N1ZSB3aXRoIHRoZSBjb21tZW50LiBUaGUgc3RhcnMgc2hvdWxkIGJlIGxpbmlu ZyB1cCA6KQoKPiArCj4gKwlpZiAodG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+dmNvX3Rh cmdldCA9PSA4NjQwKSB7Cj4gKwkJLyogdmNvIDg2NDAgKi8KPiArCQlpZiAobWF4X3BpeGNsayA+ IDU0MDAwMCkKPiArCQkJY2RjbGsgPSA2MTcxNDA7Cj4gKwkJZWxzZSBpZiAobWF4X3BpeGNsayA+ IDQzMjAwMCkKPiArCQkJY2RjbGsgPSA1NDAwMDA7Cj4gKwkJZWxzZSBpZiAobWF4X3BpeGNsayA+ IDMwODU3MCkKPiArCQkJY2RjbGsgPSA0MzIwMDA7Cj4gKwkJZWxzZQo+ICsJCQljZGNsayA9IDMw ODU3MDsKPiArCX0KPiArCWVsc2Ugewo+ICsJCS8qIFZDTyA4MTAwICovCj4gKwkJaWYgKG1heF9w aXhjbGsgPiA1NDAwMDApCj4gKwkJCWNkY2xrID0gNjc1MDAwOwo+ICsJCWVsc2UgaWYgKG1heF9w aXhjbGsgPiA0NTAwMDApCj4gKwkJCWNkY2xrID0gNTQwMDAwOwo+ICsJCWVsc2UgaWYgKG1heF9w aXhjbGsgPiAzMzc1MDApCj4gKwkJCWNkY2xrID0gNDUwMDAwOwo+ICsJCWVsc2UKPiArCQkJY2Rj bGsgPSAzMzc1MDA7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIEZJWE1FIG1vdmUgdGhlIGNkY2xr IGNhY2x1bGF0aW9uIHRvCj4gKwkgKiBjb21wdXRlX2NvbmZpZygpIHNvIHdlIGNhbiBmYWlsIGdy YWNlZ3VsbHkuCj4gKwkgKi8KPiArCWlmIChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJl cSkgewo+ICsJCURSTV9FUlJPUigicmVxdWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4 ICglZCBrSHopXG4iLAo+ICsJCQkgIGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+ ICsJCWNkY2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxOwo+ICsJfQo+ICsKPiArCXRvX2lu dGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0gY2RjbGs7Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdW5zaWduZWQgaW50IHJlcV9jZGNsayA9IHRvX2lu dGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsazsKPiArCj4gKwlza2xfc2V0X2NkY2xr KGRldl9wcml2LCByZXFfY2RjbGspOwo+ICsKPiArCWlmICh0b19pbnRlbF9hdG9taWNfc3RhdGUo b2xkX3N0YXRlKS0+dmNvX3RhcmdldCkgewo+ICsJCWRldl9wcml2LT5za2xfdmNvX2ZyZXEgPSB0 b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKS0+dmNvX3RhcmdldDsKPiArCX0KCnNrbF9z ZXRfY2RjbGsoKSByZWFsbHkgbmVlZHMgdG8gYmUgdGF1Z2h0IHRvIGRvIHRoZSAnZGlzYWJsZStl bmFibGUgcGxsJwpkYW5jZSBzbyB0aGF0IGl0IGNhbiBhY3R1YWxseSBjaGFuZ2UgdGhlIHZjbyBm cmVxdWVuY3kuIEJ1dCBJIHRoaW5rIHdlCmNhbiBsZWF2ZSB0aGF0IGZvciBhIGZvbGxvd3VwIHNv IHRoYXQgd2UgY2FuIG1vdmUgdGhpcyBmb3J3YXJkLiBBIEZJWE1FCmNvbW1lbnQgaGVyZSB3b3Vs ZCBiZSBnb29kIHRob3VnaCBzbyB3ZSBkb24ndCBmb3JnZXQuCgo+ICt9Cj4gKwo+ICBzdGF0aWMg aW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ ICAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiBA QCAtMTMyMTksMTEgKzEzMjc3LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlw ZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAKPiAgc3RhdGljIGludCBpbnRl bF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAr CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ICAJc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RhdGUtPmRldi0+ZGV2X3By aXZhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmNydGNfc3RhdGU7Cj4gIAlpbnQgcmV0ID0gMCwgaTsKPiArCXVuc2lnbmVkIGludCB0YXJn ZXRfdmNvOwo+ICAKPiAgCWlmICghY2hlY2tfZGlnaXRhbF9wb3J0X2NvbmZsaWN0cyhzdGF0ZSkp IHsKPiAgCQlEUk1fREVCVUdfS01TKCJyZWplY3RpbmcgY29uZmxpY3RpbmcgZGlnaXRhbCBwb3J0 IGNvbmZpZ3VyYXRpb25cbiIpOwo+IEBAIC0xMzI0OSw4ICsxMzMwOSwxNCBAQCBzdGF0aWMgaW50 IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAg CSAqLwo+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsaykgewo+ICAJ CXJldCA9IGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7Cj4gKwkJ dGFyZ2V0X3ZjbyA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPnZjb190YXJnZXQ7Cj4g IAo+IC0JCWlmICghcmV0ICYmIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNk Y2xrX2ZyZXEpCj4gKwkJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCAoSVNfS0FCWUxBS0UoZGV2KSkp IHsKPiArCQkJaWYgKCgodGFyZ2V0X3ZjbykgJiYgKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgIT0g dGFyZ2V0X3ZjbykpIHx8CgpIbW0uIElmIHRhcmdldF92Y28gaXMgMCwgdGhlbiBza2xfbW9kZXNl dF9jYWxjX2NkY2xrKCkgaGFzIGFscmVhZHkKZG9uZSBzb21ldGhpbmcgd3JvbmcuIFNvIEkgdGhp bmsgaWYgdGhlIHRhcmdldF92Y28gd2Fzbid0IHNldCBieSB0aGUKZW5jb2RlcihzKSB5b3UnbGwg bmVlZCB0byBqdXN0IHNldCAnLT52Y29fdGFyZ2V0ID0gZGV2X3ByaXYtPnZjbycgYmVmb3JlCmNh bGxpbmcgLm1vZGVzZXRfY2FsY19jZGNsaygpLgoKQlRXIHRoZSB2Y29fdGFyZ2V0IHZzLiB0YXJn ZXRfdmNvIGlzIGJvdGhlcmluZyBtZSBhIGJpdC4gSW4gZmFjdCBJIHRoaW5rCml0J3MgcHJldHR5 IGNsZWFyIHRoYXQgaXQncyBhIHRhcmdldCB2YWx1ZSBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRo YXQKaXQncyBwYXJ0IG9mIHRoZSBhdG9taWMgc3RhdGUuIFNvIHdlIGNhbiBwcm9iYWJseSBqdXN0 IGNhbGwgaXQgc29tZXRoaW5nCmxpa2UgY2RjbGtfcGxsX3ZjbyAoa2VlcGluZyB0aGUgbmFtZSBz b21ld2hhdCBnZW5lcmljIGluIGNhc2Ugd2UgbmVlZAp0aGUgc2FtZSB0cmVhdG1lbnQgZm9yIGEg ZnV0dXJlIHBsYXRmb3JtLCBhbmQgd2UgYWxsIGtub3cgdGhlIGhhcmR3YXJlCmZvbGtzIGxpa2Ug dG8gcmVuYW1lIHRoaW5ncyBmb3IgZnVuIGFuZCBwcm9maXQpLgoKPiArCQkJICAgKCFyZXQgJiYg aW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkpIHsKPiArCQkJ CXJldCA9IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKPiArCQkJfQo+ICsJCX0gZWxz ZSBpZiAoIXJldCAmJiBpbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19m cmVxKQo+ICAJCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7Cj4gIAo+ICAJ CWlmIChyZXQgPCAwKQo+IEBAIC0xNTAwMiw2ICsxNTA2OCwxMSBAQCBzdGF0aWMgdm9pZCBpbnRl bF9pbml0X2Rpc3BsYXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJYnJveHRvbl9tb2Rl c2V0X2NvbW1pdF9jZGNsazsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2Rj bGsgPQo+ICAJCQlicm94dG9uX21vZGVzZXRfY2FsY19jZGNsazsKPiArCX0gZWxzZSBpZiAoSVNf U0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPiArCQlkZXZfcHJpdi0+ZGlzcGxh eS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9Cj4gKwkJCXNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsazsK PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ICsJCQlza2xfbW9k ZXNldF9jYWxjX2NkY2xrOwo+ICAJfQo+ICAKPiAgCXN3aXRjaCAoSU5URUxfSU5GTyhkZXYpLT5n ZW4pIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBhMDczZjA0Li5mYmMzN2ZlIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTEyNDIsOSArMTI0MiwxMCBAQCBpbnRl bF9kcF9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXNrbF9lZHBfc2V0X3BsbF9jb25m aWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICtza2xfZWRwX3NldF9w bGxfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQoKZGV2X3ByaXYgY291bGQgYmUgZHVnIG91dCB2aWEg dGhlIHBpcGVfY29uZmlnIHRvbywgYnV0IHRoaXMgd2F5IGlzIGZpbmUKdG9vIElNTy4KCj4gIHsK PiAgCXUzMiBjdHJsMTsKPiArCXUzMiB2Y28gPSA4MTAwOwo+ICAKPiAgCW1lbXNldCgmcGlwZV9j b25maWctPmRwbGxfaHdfc3RhdGUsIDAsCj4gIAkgICAgICAgc2l6ZW9mKHBpcGVfY29uZmlnLT5k cGxsX2h3X3N0YXRlKSk7Cj4gQEAgLTEyNzcsMTMgKzEyNzgsMTYgQEAgc2tsX2VkcF9zZXRfcGxs X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIAljYXNlIDEw ODAwMDoKPiAgCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktf UkFURV8xMDgwLAo+ICAJCQkJCSAgICAgIFNLTF9EUExMMCk7Cj4gKwkJdmNvID0gODY0MDsKPiAg CQlicmVhazsKPiAgCWNhc2UgMjE2MDAwOgo+ICAJCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19S QVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzIxNjAsCj4gIAkJCQkJICAgICAgU0tMX0RQTEwwKTsK PiArCQl2Y28gPSA4NjQwOwo+ICAJCWJyZWFrOwo+IC0KPiAgCX0KPiArCj4gKwl0b19pbnRlbF9h dG9taWNfc3RhdGUocGlwZV9jb25maWctPmJhc2Uuc3RhdGUpLT52Y29fdGFyZ2V0ID0gdmNvOwo+ ICAJcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuY3RybDEgPSBjdHJsMTsKPiAgfQo+ICAKPiBA QCAtMTY2NCw3ICsxNjY4LDcgQEAgZm91bmQ6Cj4gIAl9Cj4gIAo+ICAJaWYgKChJU19TS1lMQUtF KGRldikgIHx8IElTX0tBQllMQUtFKGRldikpICYmIGlzX2VkcChpbnRlbF9kcCkpCj4gLQkJc2ts X2VkcF9zZXRfcGxsX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4gKwkJc2tsX2VkcF9zZXRfcGxsX2Nv bmZpZyhkZXZfcHJpdiwgcGlwZV9jb25maWcpOwo+ICAJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYp KQo+ICAJCS8qIGhhbmRsZWQgaW4gZGRpICovOwo+ICAJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYp IHx8IElTX0JST0FEV0VMTChkZXYpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXgg ODc4MTcyYS4uMDA1ZTAzNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTI2 MCw2ICsyNjAsOSBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKPiAgCj4gIAlzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHNoYXJlZF9kcGxsW0k5MTVfTlVNX1BMTFNdOwo+ICAJ c3RydWN0IGludGVsX3dtX2NvbmZpZyB3bV9jb25maWc7Cj4gKwo+ICsJLyogU0tML0tCTCBPbmx5 ICovCj4gKwl1bnNpZ25lZCBpbnQgdmNvX3RhcmdldDsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSB7Cj4gQEAgLTExOTEsNiArMTE5NCw3IEBAIHZvaWQgYnh0X2Rpc2FibGVf ZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgc2tsX2luaXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgaW50IHNrbF9zYW5p dGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIHNr bF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdW5z aWduZWQgaW50IHNrbF9jZGNsa19nZXRfdmNvKHVuc2lnbmVkIGludCBmcmVxKTsKPiAgdm9pZCBz a2xfZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lk IHNrbF9kaXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2 b2lkIGludGVsX2RwX2dldF9tX24oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gLS0gCj4gMS43 LjkuNQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==