From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thulasimani, Sivakumar" Subject: Re: [PATCH V5] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Tue, 16 Feb 2016 08:14:14 +0530 Message-ID: <56C28CFE.3070502@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> <20160215131614.GT23290@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 40A9A6E217 for ; Tue, 16 Feb 2016 02:44:18 +0000 (UTC) In-Reply-To: <20160215131614.GT23290@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?= , clinton.a.taylor@intel.com Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAyLzE1LzIwMTYgNjo0NiBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIEZyaSwg RmViIDEyLCAyMDE2IGF0IDA2OjA2OjEwUE0gLTA4MDAsIGNsaW50b24uYS50YXlsb3JAaW50ZWwu 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+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBDbGludCBU YXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwuY29tPgo+PiBDYzogVmlsbGUgPT9pc28tODg1 OS0xP1E/U3lyaj1FNGw9RTQ/PSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+IC0t LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgIDIgKy0KPj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAgICAyICstCj4+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDExNCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAg ICAgIHwgICAgNiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8 ICAgIDQgKysKPj4gICA1IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAxNyBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IGluZGV4IDgyMTY2NjUuLmY2 NWRkMWEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMTgyMiw3ICsxODIy LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+PiAgIAlpbnQgbnVtX2ZlbmNlX3JlZ3M7 IC8qIDggb24gcHJlLTk2NSwgMTYgb3RoZXJ3aXNlICovCj4+ICAgCj4+ICAgCXVuc2lnbmVkIGlu dCBmc2JfZnJlcSwgbWVtX2ZyZXEsIGlzX2RkcjM7Cj4+IC0JdW5zaWduZWQgaW50IHNrbF9ib290 X2NkY2xrOwo+PiArCXVuc2lnbmVkIGludCBza2xfdmNvX2ZyZXE7Cj4+ICAgCXVuc2lnbmVkIGlu dCBjZGNsa19mcmVxLCBtYXhfY2RjbGtfZnJlcSwgYXRvbWljX2NkY2xrX2ZyZXE7Cj4+ICAgCXVu c2lnbmVkIGludCBtYXhfZG90Y2xrX2ZyZXE7Cj4+ICAgCXVuc2lnbmVkIGludCBocGxsX2ZyZXE7 Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+IGluZGV4IDZkNWIwOWYuLjI4NWFkYWIgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+IEBAIC0yOTU4LDcgKzI5NTgsNyBAQCB2 b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAkJaW50 IGNkY2xrX2ZyZXE7Cj4+ICAgCj4+ICAgCQljZGNsa19mcmVxID0gZGV2X3ByaXYtPmRpc3BsYXku Z2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoZGV2KTsKPj4gLQkJZGV2X3ByaXYtPnNrbF9ib290X2Nk Y2xrID0gY2RjbGtfZnJlcTsKPj4gKwkJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IHNrbF9jZGNs a19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+PiAgIAkJaWYgKHNrbF9zYW5pdGl6ZV9jZGNsayhkZXZf cHJpdikpCj4+ICAgCQkJRFJNX0RFQlVHX0tNUygiU2FuaXRpemVkIGNkY2xrIHByb2dyYW1tZWQg YnkgcHJlLW9zXG4iKTsKPj4gICAJCWlmICghKEk5MTVfUkVBRChMQ1BMTDFfQ1RMKSAmIExDUExM X1BMTF9FTkFCTEUpKQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4 IDllMjI3M2IuLmMyODNhYmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4gQEAgLTU2NjMsNyArNTY2Myw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2NkY2xr X2RlY2ltYWwodW5zaWduZWQgaW50IGZyZXEpCj4+ICAgCXJldHVybiAoZnJlcSAtIDEwMDApIC8g NTAwOwo+PiAgIH0KPj4gICAKPj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92 Y28odW5zaWduZWQgaW50IGZyZXEpCj4+ICt1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28o dW5zaWduZWQgaW50IGZyZXEpCj4+ICAgewo+PiAgIAl1bnNpZ25lZCBpbnQgaTsKPj4gICAKPj4g QEAgLTU4MjEsMTcgKzU4MjEsMjEgQEAgdm9pZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gICAKPj4gICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gICB7Cj4+IC0JdW5zaWduZWQgaW50 IHJlcXVpcmVkX3ZjbzsKPj4gKwl1bnNpZ25lZCBpbnQgY2RjbGs7Cj4+ICAgCj4+ICAgCS8qIERQ TEwwIG5vdCBlbmFibGVkIChoYXBwZW5zIG9uIGVhcmx5IEJJT1MgdmVyc2lvbnMpICovCj4+ICAg CWlmICghKEk5MTVfUkVBRChMQ1BMTDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKSB7Cj4+ICAg CQkvKiBlbmFibGUgRFBMTDAgKi8KPj4gLQkJcmVxdWlyZWRfdmNvID0gc2tsX2NkY2xrX2dldF92 Y28oZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrKTsKPj4gLQkJc2tsX2RwbGwwX2VuYWJsZShkZXZf cHJpdiwgcmVxdWlyZWRfdmNvKTsKPj4gKwkJaWYgKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgIT0g ODY0MCkKPj4gKwkJCWRldl9wcml2LT5za2xfdmNvX2ZyZXEgPSA4MTAwOwo+PiArCQlza2xfZHBs bDBfZW5hYmxlKGRldl9wcml2LCBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxKTsKPj4gKwkJY2RjbGsg PSAoKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgPT0gODEwMCkgPyAzMzc1MDAgOiAzMDg1NzApOwo+ PiArCX0gZWxzZSB7Cj4+ICsJCWNkY2xrID0gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7Cj4+ICAgCX0K Pj4gICAKPj4gLQkvKiBzZXQgQ0RDTEsgdG8gdGhlIGZyZXF1ZW5jeSB0aGUgQklPUyBjaG9zZSAq Lwo+PiAtCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIGRldl9wcml2LT5za2xfYm9vdF9jZGNsayk7 Cj4+ICsJLyogc2V0IENEQ0xLIHRvIHRoZSBsb3dlc3QgZnJlcXVlbmN5LCBNb2Rlc2V0IGZvbGxv d3MgKi8KPj4gKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCBjZGNsayk7Cj4+ICAgCj4+ICAgCS8q IGVuYWJsZSBEQlVGIHBvd2VyICovCj4+ICAgCUk5MTVfV1JJVEUoREJVRl9DVEwsIEk5MTVfUkVB RChEQlVGX0NUTCkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+PiBAQCAtNTg0Nyw3ICs1ODUxLDcg QEAgaW50IHNrbF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgewo+PiAgIAl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQTEwxX0NUTCk7 Cj4+ICAgCXVpbnQzMl90IGNkY3RsID0gSTkxNV9SRUFEKENEQ0xLX0NUTCk7Cj4+IC0JaW50IGZy ZXEgPSBkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGs7Cj4+ICsJaW50IGZyZXEgPSBkZXZfcHJpdi0+ Y2RjbGtfZnJlcTsKPj4gICAKPj4gICAJLyoKPj4gICAJICogY2hlY2sgaWYgdGhlIHByZS1vcyBp bnRpYWxpemVkIHRoZSBkaXNwbGF5Cj4+IEBAIC01ODcxLDExICs1ODc1LDcgQEAgaW50IHNrbF9z YW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgCQkv KiBBbGwgd2VsbDsgbm90aGluZyB0byBzYW5pdGl6ZSAqLwo+PiAgIAkJcmV0dXJuIGZhbHNlOwo+ PiAgIHNhbml0aXplOgo+PiAtCS8qCj4+IC0JICogQXMgb2Ygbm93IGluaXRpYWxpemUgd2l0aCBt YXggY2RjbGsgdGlsbAo+PiAtCSAqIHdlIGdldCBkeW5hbWljIGNkY2xrIHN1cHBvcnQKPj4gLQkg KiAqLwo+PiAtCWRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtf ZnJlcTsKPj4gKwo+PiAgIAlza2xfaW5pdF9jZGNsayhkZXZfcHJpdik7Cj4+ICAgCj4+ICAgCS8q IHdlIGRpZCBoYXZlIHRvIHNhbml0aXplICovCj4+IEBAIC05ODQ1LDYgKzk4NDUsNzAgQEAgc3Rh dGljIHZvaWQgYnJvYWR3ZWxsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpvbGRfc3RhdGUpCj4+ICAgCWJyb2Fkd2VsbF9zZXRfY2RjbGsoZGV2LCByZXFfY2Rj bGspOwo+PiAgIH0KPj4gICAKPj4gK3N0YXRpYyBpbnQgc2tsX21vZGVzZXRfY2FsY19jZGNsayhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPj4gKwljb25zdCBpbnQg bWF4X3BpeGNsayA9IGlsa19tYXhfcGl4ZWxfcmF0ZShzdGF0ZSk7Cj4+ICsJaW50IGNkY2xrOwo+ PiArCj4+ICsJLyoKPj4gKwkgKiBGSVhNRSBzaG91bGQgYWxzbyBhY2NvdW50IGZvciBwbGFuZSBy YXRpbwo+PiArCSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+PiAr CSAqLwo+PiArCj4+ICsJaWYgKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrX3Bs bF92Y28gPT0gODY0MCkgewpub3QgbmVjZXNzYXJpbHkgYSBjb21tZW50IGZvciB0aGlzIHBhdGNo IChzaW5jZSBidWdzIGFyZSB3YWl0aW5nIG9uIHRoaXMgCjopICkKaWYgd2UgY2FuIHRha2UgYWR2 YW50YWdlIG9mIFZDTyBwcm9ncmFtbWluZyBmb3Igbm9uIGVkcCBzY2VuYXJpb3MKd2UgY2FuIHBy b2dyYW0gbG93ZXIgQ0QgQ2xvY2tzIGFuZCBzYXZlIG1vcmUgcG93ZXIuIGkuZSBhc3N1bWUgeW91 CmhhdmUgTUlQSSB3aXRoIHBpeGVsIGNsb2NrIGxlc3MgdGhhbiAzMDBNSHogYW5kIGZ1bGwgSEQg SERNSS4gYm90aApjYW4gYmUgZHJpdmVuIGJ5IDMwOE1IeiBidXQgc2luY2Ugd2UgaGF2ZSB0aWVk IG91ciBjZCBjbG9jawpwcm9ncmFtbWluZyB0byBWQ08gd2UgbWlnaHQgZW5kIHVwIHdpdGggMzM3 LjVNSHouCgp0byByZXBocmFzZSBpdCwgQ0QgY2xvY2sgaXMgY29udHJvbGxlZCBieSB0d28gdmFy aWFibGVzIHZjbyAmCmNkIGNsb2NrIHByb2dyYW1tZWQsIHdlIGNvbnRyb2wgb25seSBvbmUgdG9k YXkgaW4gdGhlCmNkIGNsb2NrIGNhbGMgYW5kIGNvbW1pdCBwYXRoIHdoaWNoIGlzIG5vdApvcHRp bWFsLgoKcmVnYXJkcywKU2l2YWt1bWFyCj4+ICsJCS8qIHZjbyA4NjQwICovCj4+ICsJCWlmICht YXhfcGl4Y2xrID4gNTQwMDAwKQo+PiArCQkJY2RjbGsgPSA2MTcxNDA7Cj4+ICsJCWVsc2UgaWYg KG1heF9waXhjbGsgPiA0MzIwMDApCj4+ICsJCQljZGNsayA9IDU0MDAwMDsKPj4gKwkJZWxzZSBp ZiAobWF4X3BpeGNsayA+IDMwODU3MCkKPj4gKwkJCWNkY2xrID0gNDMyMDAwOwo+PiArCQllbHNl Cj4+ICsJCQljZGNsayA9IDMwODU3MDsKPj4gKwl9IGVsc2Ugewo+PiArCQkvKiBWQ08gODEwMCAq Lwo+PiArCQlpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKPj4gKwkJCWNkY2xrID0gNjc1MDAwOwo+ PiArCQllbHNlIGlmIChtYXhfcGl4Y2xrID4gNDUwMDAwKQo+PiArCQkJY2RjbGsgPSA1NDAwMDA7 Cj4+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMzc1MDApCj4+ICsJCQljZGNsayA9IDQ1MDAw MDsKPj4gKwkJZWxzZQo+PiArCQkJY2RjbGsgPSAzMzc1MDA7Cj4+ICsJfQo+PiArCj4+ICsJLyoK Pj4gKwkgKiBGSVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+PiArCSAqIGNvbXB1 dGVfY29uZmlnKCkgc28gd2UgY2FuIGZhaWwgZ3JhY2VndWxseS4KPj4gKwkgKi8KPj4gKwlpZiAo Y2RjbGsgPiBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpIHsKPj4gKwkJRFJNX0VSUk9SKCJyZXF1 ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4+ICsJCQkgIGNk Y2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+PiArCQljZGNsayA9IGRldl9wcml2LT5t YXhfY2RjbGtfZnJlcTsKPj4gKwl9Cj4+ICsKPj4gKwl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3Rh dGUpLT5jZGNsayA9IGNkY2xrOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0 YXRpYyB2b2lkIHNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKQo+PiArewo+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfc3Rh dGUtPmRldjsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+PiArCXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSB0b19pbnRlbF9hdG9taWNf c3RhdGUob2xkX3N0YXRlKS0+Y2RjbGs7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIEZJWE1FIGRpc2Fi bGUvZW5hYmxlIFBMTCBzaG91bGQgd3JhcCBzZXRfY2RjbGsoKQo+PiArCSAqLwo+PiArCXNrbF9z ZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7Cj4+ICsKPj4gKwlpZiAodG9faW50ZWxfYXRv bWljX3N0YXRlKG9sZF9zdGF0ZSktPmNkY2xrX3BsbF92Y28pIHsKPj4gKwkJZGV2X3ByaXYtPnNr bF92Y29fZnJlcSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsa19wbGxf dmNvOwo+IFRoZSBpZiBzdGF0ZW1lbnQgc2VlbXMgcG9pbnRsZXNzLiBXZSBzaG91bGQgbmV2ZXIg Z2V0IGhlcmUgd2l0aG91dCBhCj4gdmFsaWQgdmNvIGluIHRoZSBzdGF0ZS4gT3IgaWYgd2UgZG8s IHRoZXJlIGlzIGEgYnVnIHNvbWV3aGVyZSBlbHNlLgo+Cj4+ICsJfQo+PiArfQo+PiArCj4+ICAg c3RhdGljIGludCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPj4gICAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4+ICAgewo+PiBAQCAtMTMyMTksMTEgKzEzMjgzLDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9k ZXNldF9hbGxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiAgIAo+PiAg IHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQo+PiAgIHsKPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsK Pj4gICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9h dG9taWNfc3RhdGUoc3RhdGUpOwo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBzdGF0ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPj4gICAJc3RydWN0IGRybV9jcnRjICpjcnRj Owo+PiAgIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+ICAgCWludCByZXQg PSAwLCBpOwo+PiArCXVuc2lnbmVkIGludCB0YXJnZXRfdmNvID0gMDsKPj4gKwlib29sIGNkY2xr X2NoYW5nZSwgdmNvX2NoYW5nZTsKPj4gICAKPj4gICAJaWYgKCFjaGVja19kaWdpdGFsX3BvcnRf Y29uZmxpY3RzKHN0YXRlKSkgewo+PiAgIAkJRFJNX0RFQlVHX0tNUygicmVqZWN0aW5nIGNvbmZs aWN0aW5nIGRpZ2l0YWwgcG9ydCBjb25maWd1cmF0aW9uXG4iKTsKPj4gQEAgLTEzMjQ4LDkgKzEz MzE1LDIyIEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+PiAgIAkgKiBhZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMg ZGlyZWN0bHkuCj4+ICAgCSAqLwo+PiAgIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9j YWxjX2NkY2xrKSB7Cj4+ICsJCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2 KSkgewo+PiArCQkJdGFyZ2V0X3ZjbyA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNk Y2xrX3BsbF92Y287Cj4+ICsJCQlpZiAoIXRhcmdldF92Y28pCj4+ICsJCQkJdG9faW50ZWxfYXRv bWljX3N0YXRlKHN0YXRlKS0+Y2RjbGtfcGxsX3ZjbyA9Cj4+ICsJCQkJCQkgICAgICBkZXZfcHJp di0+c2tsX3Zjb19mcmVxOwo+PiArCQl9Cj4+ICsKPj4gICAJCXJldCA9IGRldl9wcml2LT5kaXNw bGF5Lm1vZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7Cj4+ICsJCWlmIChyZXQgPCAwKQo+PiArCQkJ cmV0dXJuIHJldDsKPj4gKwo+PiArCQljZGNsa19jaGFuZ2UgPSBpbnRlbF9zdGF0ZS0+ZGV2X2Nk Y2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxOwo+PiArCQl2Y29fY2hhbmdlID0gKChJU19TS1lM QUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgJiYKPj4gKwkJCSAgICAgKHRhcmdldF92Y28p ICYmIChkZXZfcHJpdi0+c2tsX3Zjb19mcmVxICE9IHRhcmdldF92Y28pKTsKPiBJIGRvbid0IHRo aW5rIHlvdSBuZWVkIGFsbCB0aG9zZSBTS0x8fEtCTCBjaGVja3MuIEFuZCB0YXJnZXRfdmNvIHNl ZW1zCj4gbGlrZSBhIHJhdGhlciBwb2ludGxlc3MgdmFyaWFibGUuIE9oIGFuZCBjZGNsa19jaGFu Z2UgYW5kIHZjb19jaGFuZ2UKPiBjb3VsZCBoYXZlIHRpZ2h0ZXIgc2NvcGUuIEVnLiBzb21ldGhp bmcgYXMgc2ltcGxlIGFzIHRoaXMgb3VnaHQKPiB0byB3b3JrIEkgdGhpbms6Cj4KPiBpZiAoZGV2 X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrKSB7Cj4gCWJvb2wgY2RjbGtfY2hhbmdl LCB2Y29fY2hhbmdlOwo+Cj4gCWlmIChpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9PSAwKQo+ IAkJaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gPSBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxOwo+ Cj4gCXJldCA9IGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7Cj4g CWlmIChyZXQpCj4gCQlyZXR1cm4gcmV0Owo+Cj4gCWNkY2xrX2NoYW5nZSA9IGludGVsX3N0YXRl LT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7Cj4gCXZjb19jaGFuZ2UgPSBpbnRl bF9zdGF0ZS0+c2tsX3Zjb19mcmVxICE9IGRldl9wcml2LT5za2xfdmNvX2ZyZXE7Cj4gCS4uLgo+ Cj4gT3RoZXJ3aXNlIGl0IGxvb2tzIHByZXR0eSBnb29kIHRvIG1lLgo+Cj4+ICAgCj4+IC0JCWlm ICghcmV0ICYmIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEp Cj4+ICsJCWlmIChjZGNsa19jaGFuZ2UgfHwgdmNvX2NoYW5nZSkKPj4gICAJCQlyZXQgPSBpbnRl bF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7Cj4+ICAgCj4+ICAgCQlpZiAocmV0IDwgMCkKPj4g QEAgLTE1MDAyLDYgKzE1MDgyLDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxheShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAkJCWJyb3h0b25fbW9kZXNldF9jb21taXRfY2Rj bGs7Cj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+PiAgIAkJ CWJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrOwo+PiArCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShk ZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNl dF9jb21taXRfY2RjbGsgPQo+PiArCQkJc2tsX21vZGVzZXRfY29tbWl0X2NkY2xrOwo+PiArCQlk ZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+PiArCQkJc2tsX21vZGVzZXRf Y2FsY19jZGNsazsKPj4gICAJfQo+PiAgIAo+PiAgIAlzd2l0Y2ggKElOVEVMX0lORk8oZGV2KS0+ Z2VuKSB7Cj4+IEBAIC0xNTcyNSw3ICsxNTgxMCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVz ZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAkJaWYgKGNy dGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7Cj4+ICAgCQkJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyB8 PSAxIDw8IGNydGMtPnBpcGU7Cj4+ICAgCj4+IC0JCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 KSkgewo+PiArCQkJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfU0tZTEFLRShkZXZf cHJpdikgfHwKPj4gKwkJCSAgICBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPj4gICAJCQkJcGl4 Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPj4gICAKPj4gICAJCQkJLyog cGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24gQkRXICov Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBpbmRleCBhMDczZjA0Li5hZmEyMWI2IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gQEAgLTEyNDUsNiArMTI0NSw3IEBAIHN0YXRp YyB2b2lkCj4+ICAgc2tsX2VkcF9zZXRfcGxsX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpCj4+ICAgewo+PiAgIAl1MzIgY3RybDE7Cj4+ICsJdTMyIHZjbyA9IDgx MDA7Cj4+ICAgCj4+ICAgCW1lbXNldCgmcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUsIDAsCj4+ ICAgCSAgICAgICBzaXplb2YocGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUpKTsKPj4gQEAgLTEy NzcsMTMgKzEyNzgsMTYgQEAgc2tsX2VkcF9zZXRfcGxsX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4+ICAgCWNhc2UgMTA4MDAwOgo+PiAgIAkJY3RybDEgfD0g RFBMTF9DVFJMMV9MSU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVfMTA4MCwKPj4gICAJCQkJ CSAgICAgIFNLTF9EUExMMCk7Cj4+ICsJCXZjbyA9IDg2NDA7Cj4+ICAgCQlicmVhazsKPj4gICAJ Y2FzZSAyMTYwMDA6Cj4+ICAgCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NU UkwxX0xJTktfUkFURV8yMTYwLAo+PiAgIAkJCQkJICAgICAgU0tMX0RQTEwwKTsKPj4gKwkJdmNv ID0gODY0MDsKPj4gICAJCWJyZWFrOwo+PiAtCj4+ICAgCX0KPj4gKwo+PiArCXRvX2ludGVsX2F0 b21pY19zdGF0ZShwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZSktPmNkY2xrX3BsbF92Y28gPSB2Y287 Cj4+ICAgCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmN0cmwxID0gY3RybDE7Cj4+ICAgfQo+ PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBpbmRleCA4NzgxNzJhLi40NzkzNmQ0 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtMjYwLDYgKzI2MCw5IEBA IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgewo+PiAgIAo+PiAgIAlzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGxfY29uZmlnIHNoYXJlZF9kcGxsW0k5MTVfTlVNX1BMTFNdOwo+PiAgIAlzdHJ1Y3Qg aW50ZWxfd21fY29uZmlnIHdtX2NvbmZpZzsKPj4gKwo+PiArCS8qIFNLTC9LQkwgT25seSAqLwo+ PiArCXVuc2lnbmVkIGludCBjZGNsa19wbGxfdmNvOwo+PiAgIH07Cj4+ICAgCj4+ICAgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlIHsKPj4gQEAgLTExOTEsNiArMTE5NCw3IEBAIHZvaWQgYnh0X2Rp c2FibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICAgdm9pZCBz a2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAgIGlu dCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK Pj4gICB2b2lkIHNrbF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPj4gK3Vuc2lnbmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJl cSk7Cj4+ICAgdm9pZCBza2xfZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+PiAgIHZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cj4+ICAgdm9pZCBpbnRlbF9kcF9nZXRfbV9uKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+PiAtLSAKPj4gMS43LjkuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==