From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clint Taylor Subject: Re: [PATCH V4] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Fri, 12 Feb 2016 10:51:12 -0800 Message-ID: <56BE29A0.2000405@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> <20160212111819.GH23290@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 ABB4E6E069 for ; Fri, 12 Feb 2016 10:54:40 -0800 (PST) In-Reply-To: <20160212111819.GH23290@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 T24gMDIvMTIvMjAxNiAwMzoxOCBBTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIFRodSwg RmViIDExLCAyMDE2IGF0IDAzOjIyOjA4UE0gLTA4MDAsIGNsaW50b24uYS50YXlsb3JAaW50ZWwu Y29tIHdyb3RlOgo+PiBGcm9tOiBDbGludCBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwu Y29tPgo+Pgo+PiBUcmFjayBWQ08gZnJlcXVlbmN5IG9mIFNLTCBpbnN0ZWFkIG9mIHRoZSBib290 IENEQ0xLIGFuZCBhbGxvdyBtb2Rlc2V0Cj4+IHRvIHNldCBjZGNsayBiYXNlZCBvbiB0aGUgbWF4 IHJlcXVpcmVkIHBpeGVsIGNsb2NrIGJhc2VkIG9uIFZDTwo+PiBzZWxlY3RlZC4KPj4KPj4gVGhl IHZjbyBzaG91bGQgYmUgdHJhY2tlZCBhdCB0aGUgYXRvbWljIGxldmVsIGFuZCBhbGwgQ1JUQ3Mg dXBkYXRlZCBpZgo+PiB0aGUgcmVxdWlyZWQgdmNvIGlzIGNoYW5nZWQuIEF0IHRoaXMgdGltZSB0 aGUgZURQIHBsbCBpcyBjb25maWd1cmVkCj4+IGluc2lkZSB0aGUgZW5jb2RlciB3aGljaCBoYXMg bm8gdmlzaWJpbGl0eSBpbnRvIHRoZSBhdG9taWMgc3RhdGUuIFdoZW4KPj4gZURQIHYxLjQgcGFu ZWwgdGhhdCByZXF1aXJlIHRoZSA4NjQwIHZjbyBhcmUgYXZhaWxhYmxlIHRoaXMgbWF5IG5lZWQK Pj4gdG8gYmUgaW52ZXN0aWdhdGVkLgo+Pgo+PiBWMTogaW5pdGlhbCB2ZXJzaW9uCj4+IFYyOiBh ZGQgdmNvIHRyYWNraW5nIGluIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKCksIHJlbmFtZQo+PiBz a2xfYm9vdF9jZGNsay4KPj4gVjM6IHJlYmFzZSwgVjIgZmVlZGJhY2sgbm90IHBvc3NpYmxlIGFz IGVuY29kZXJzIGFyZSBub3QgYXdhcmUgb2YKPj4gYXRvbWljLgo+PiBWNDogdHJhY2sgdGFyZ2V0 IHZjbyBpcyBhdG9taWMgc3RhdGUuIG1vZGVzZXQgYWxsIENSVENzIGlmIHZjbyBjaGFuZ2VzCj4+ Cj4+IFNpZ25lZC1vZmYtYnk6IENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5j b20+Cj4+IENjOiBWaWxsZSA9P2lzby04ODU5LTE/UT9TeXJqPUU0bD1FND89IDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgIHwgICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jICAgICB8ICAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgfCAgIDk3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAgIDEwICsrLS0KPj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgICA0ICsrCj4+ICAgNSBmaWxlcyBjaGFuZ2Vk LCA5NyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4+IGluZGV4IDgyMTY2NjUuLmY2NWRkMWEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+PiBAQCAtMTgyMiw3ICsxODIyLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg ewo+PiAgIAlpbnQgbnVtX2ZlbmNlX3JlZ3M7IC8qIDggb24gcHJlLTk2NSwgMTYgb3RoZXJ3aXNl ICovCj4+Cj4+ICAgCXVuc2lnbmVkIGludCBmc2JfZnJlcSwgbWVtX2ZyZXEsIGlzX2RkcjM7Cj4+ IC0JdW5zaWduZWQgaW50IHNrbF9ib290X2NkY2xrOwo+PiArCXVuc2lnbmVkIGludCBza2xfdmNv X2ZyZXE7Cj4+ICAgCXVuc2lnbmVkIGludCBjZGNsa19mcmVxLCBtYXhfY2RjbGtfZnJlcSwgYXRv bWljX2NkY2xrX2ZyZXE7Cj4+ICAgCXVuc2lnbmVkIGludCBtYXhfZG90Y2xrX2ZyZXE7Cj4+ICAg CXVuc2lnbmVkIGludCBocGxsX2ZyZXE7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+IGlu ZGV4IDZkNWIwOWYuLjI4NWFkYWIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+ IEBAIC0yOTU4LDcgKzI5NTgsNyBAQCB2b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+PiAgIAkJaW50IGNkY2xrX2ZyZXE7Cj4+Cj4+ICAgCQljZGNsa19mcmVx ID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoZGV2KTsKPj4gLQkJ ZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrID0gY2RjbGtfZnJlcTsKPj4gKwkJZGV2X3ByaXYtPnNr bF92Y29fZnJlcSA9IHNrbF9jZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+Cj4gVGhpcyBzaG91 bGQgcmVhbGx5IHJlYWQgb3V0IHRoZSB2Y28gZnJvbSB0aGUgaGFyZHdhcmUuIEJ1dCBJIHRoaW5r IHdlCj4gY2FuIGxlYXZlIHRoYXQgZm9yIGxhdGVyLiBUaGUgcHJvYmxlbSByZWFsbHkgaXMgdGhl IDU0ME1IeiBjYXNlIHNpbmNlIGl0Cj4gY2FuIGJlIHVzaW5nIGVpdGhlciB2Y28gZnJlcXVlbmN5 IChJSVJDKS4KPgo+PiAgIAkJaWYgKHNrbF9zYW5pdGl6ZV9jZGNsayhkZXZfcHJpdikpCj4+ICAg CQkJRFJNX0RFQlVHX0tNUygiU2FuaXRpemVkIGNkY2xrIHByb2dyYW1tZWQgYnkgcHJlLW9zXG4i KTsKPj4gICAJCWlmICghKEk5MTVfUkVBRChMQ1BMTDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUp KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IDllMjI3M2IuLmVm NGFjMzQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTU2 NjMsNyArNTY2Myw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2RlY2ltYWwodW5z aWduZWQgaW50IGZyZXEpCj4+ICAgCXJldHVybiAoZnJlcSAtIDEwMDApIC8gNTAwOwo+PiAgIH0K Pj4KPj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28odW5zaWduZWQgaW50 IGZyZXEpCj4+ICt1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28odW5zaWduZWQgaW50IGZy ZXEpCj4+ICAgewo+PiAgIAl1bnNpZ25lZCBpbnQgaTsKPj4KPj4gQEAgLTU4MjEsMTcgKzU4MjEs MTcgQEAgdm9pZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPj4KPj4gICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPj4gICB7Cj4+IC0JdW5zaWduZWQgaW50IHJlcXVpcmVkX3ZjbzsKPj4gLQo+ PiAgIAkvKiBEUExMMCBub3QgZW5hYmxlZCAoaGFwcGVucyBvbiBlYXJseSBCSU9TIHZlcnNpb25z KSAqLwo+PiAgIAlpZiAoIShJOTE1X1JFQUQoTENQTEwxX0NUTCkgJiBMQ1BMTF9QTExfRU5BQkxF KSkgewo+PiAgIAkJLyogZW5hYmxlIERQTEwwICovCj4+IC0JCXJlcXVpcmVkX3ZjbyA9IHNrbF9j ZGNsa19nZXRfdmNvKGRldl9wcml2LT5za2xfYm9vdF9jZGNsayk7Cj4+IC0JCXNrbF9kcGxsMF9l bmFibGUoZGV2X3ByaXYsIHJlcXVpcmVkX3Zjbyk7Cj4+ICsJCWlmIChkZXZfcHJpdi0+c2tsX3Zj b19mcmVxICE9IDg2NDApIHsKPj4gKwkJCWRldl9wcml2LT5za2xfdmNvX2ZyZXEgPSA4MTAwOwo+ PiArCQl9Cj4+ICsJCXNrbF9kcGxsMF9lbmFibGUoZGV2X3ByaXYsIGRldl9wcml2LT5za2xfdmNv X2ZyZXEpOwo+PiAgIAl9Cj4+Cj4+ICAgCS8qIHNldCBDRENMSyB0byB0aGUgZnJlcXVlbmN5IHRo ZSBCSU9TIGNob3NlICovCj4+IC0Jc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgZGV2X3ByaXYtPnNr bF9ib290X2NkY2xrKTsKPj4gKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAoZGV2X3ByaXYtPnNr bF92Y29fZnJlcSA9PSA4MTAwKSA/IDMzNzUwMCA6IDMwODU3MCApOwo+Cj4gV2UgcmVhbGx5IHNo b3VsZG4ndCBjaGFuZ2UgdGhlIGNkY2xrIGlmIHRoZXJlIGFyZSBhY3RpdmUgb3V0cHV0cy4gVGhp cwo+IHdob2xlIGFyZWEgZGVmaW5pdGVseSBuZWVkcyBtb3JlIHdvcmssIGZvciBCWFQgdG9vIEkg YWxyZWFkeSBoYXZlCj4gc29tZSBCWFQgcGF0Y2hlcyBsaW5lZCB1cCBpbiBzb21lIGJyYW5jaCB0 aGF0IGZyb2IgYXJvdW5kIHRoZXNlIHBhcnRzCj4gYSBiaXQsIHNvIG1heWJlIEkgc2hvdWxkIGV4 dGVuZCB0aGF0IHN0dWZmIHRvIFNLTCBhcyB3ZWxsLgo+Cj4gSW4gdGhlIG1lYW50aW1lIHdlIGRv bid0IHdhbnQgdG8gY2F1c2UgYSByZWdyZXNzaW9uIGF0IGxlYXN0LCBzbwo+IG1heWJlIHdlIGNh biBqdXN0IGRvIHNvbWV0aGluZyBsaWtlOgo+Cj4gaWYgKCFMQ1BMTF9FTkFCTEUpIHsKPiAJLi4u Cj4gCWNkY2xrID0gdmNvID09IDgxMDAgPyAuLi47Cj4gfSBlbHNlIHsKPiAJY2RjbGsgPSBkZXZf cHJpdi0+Y2RjbGtfZnJlcTsKPiB9Cj4gc2V0X2NkY2xrKGNkY2xrKTsKPgo+Cj4+Cj4+ICAgCS8q IGVuYWJsZSBEQlVGIHBvd2VyICovCj4+ICAgCUk5MTVfV1JJVEUoREJVRl9DVEwsIEk5MTVfUkVB RChEQlVGX0NUTCkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+PiBAQCAtNTg0Nyw3ICs1ODQ3LDcg QEAgaW50IHNrbF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgewo+PiAgIAl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQTEwxX0NUTCk7 Cj4+ICAgCXVpbnQzMl90IGNkY3RsID0gSTkxNV9SRUFEKENEQ0xLX0NUTCk7Cj4+IC0JaW50IGZy ZXEgPSBkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGs7Cj4+ICsJaW50IGZyZXEgPSBkZXZfcHJpdi0+ Y2RjbGtfZnJlcTsKPj4KPj4gICAJLyoKPj4gICAJICogY2hlY2sgaWYgdGhlIHByZS1vcyBpbnRp YWxpemVkIHRoZSBkaXNwbGF5Cj4+IEBAIC01ODcxLDExICs1ODcxLDcgQEAgaW50IHNrbF9zYW5p dGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgCQkvKiBB bGwgd2VsbDsgbm90aGluZyB0byBzYW5pdGl6ZSAqLwo+PiAgIAkJcmV0dXJuIGZhbHNlOwo+PiAg IHNhbml0aXplOgo+PiAtCS8qCj4+IC0JICogQXMgb2Ygbm93IGluaXRpYWxpemUgd2l0aCBtYXgg Y2RjbGsgdGlsbAo+PiAtCSAqIHdlIGdldCBkeW5hbWljIGNkY2xrIHN1cHBvcnQKPj4gLQkgKiAq Lwo+PiAtCWRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJl cTsKPj4gKwkKPj4gICAJc2tsX2luaXRfY2RjbGsoZGV2X3ByaXYpOwo+Pgo+PiAgIAkvKiB3ZSBk aWQgaGF2ZSB0byBzYW5pdGl6ZSAqLwo+PiBAQCAtOTg0NSw2ICs5ODQxLDY4IEBAIHN0YXRpYyB2 b2lkIGJyb2Fkd2VsbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKQo+PiAgIAlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsK Pj4gICB9Cj4+Cj4+ICtzdGF0aWMgaW50IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4+ICsJaW50IG1heF9waXhjbGsgPSBp bGtfbWF4X3BpeGVsX3JhdGUoc3RhdGUpOwo+PiArCWludCBjZGNsazsKPj4gKwkKPj4gKwkvKgo+ PiArCSogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPj4gKwkqIG9u Y2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+PiArCSovCj4KPiBBIGJpdCBv ZiBmb3JtYXR0aW5nIGlzc3VlIHdpdGggdGhlIGNvbW1lbnQuIFRoZSBzdGFycyBzaG91bGQgYmUg bGluaW5nIHVwIDopCj4KPj4gKwo+PiArCWlmICh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp LT52Y29fdGFyZ2V0ID09IDg2NDApIHsKPj4gKwkJLyogdmNvIDg2NDAgKi8KPj4gKwkJaWYgKG1h eF9waXhjbGsgPiA1NDAwMDApCj4+ICsJCQljZGNsayA9IDYxNzE0MDsKPj4gKwkJZWxzZSBpZiAo bWF4X3BpeGNsayA+IDQzMjAwMCkKPj4gKwkJCWNkY2xrID0gNTQwMDAwOwo+PiArCQllbHNlIGlm IChtYXhfcGl4Y2xrID4gMzA4NTcwKQo+PiArCQkJY2RjbGsgPSA0MzIwMDA7Cj4+ICsJCWVsc2UK Pj4gKwkJCWNkY2xrID0gMzA4NTcwOwo+PiArCX0KPj4gKwllbHNlIHsKPj4gKwkJLyogVkNPIDgx MDAgKi8KPj4gKwkJaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4+ICsJCQljZGNsayA9IDY3NTAw MDsKPj4gKwkJZWxzZSBpZiAobWF4X3BpeGNsayA+IDQ1MDAwMCkKPj4gKwkJCWNkY2xrID0gNTQw MDAwOwo+PiArCQllbHNlIGlmIChtYXhfcGl4Y2xrID4gMzM3NTAwKQo+PiArCQkJY2RjbGsgPSA0 NTAwMDA7Cj4+ICsJCWVsc2UKPj4gKwkJCWNkY2xrID0gMzM3NTAwOwo+PiArCX0KPj4gKwo+PiAr CS8qCj4+ICsJICogRklYTUUgbW92ZSB0aGUgY2RjbGsgY2FjbHVsYXRpb24gdG8KPj4gKwkgKiBj b21wdXRlX2NvbmZpZygpIHNvIHdlIGNhbiBmYWlsIGdyYWNlZ3VsbHkuCj4+ICsJICovCj4+ICsJ aWYgKGNkY2xrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4+ICsJCURSTV9FUlJPUigi cmVxdWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4ICglZCBrSHopXG4iLAo+PiArCQkJ ICBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKTsKPj4gKwkJY2RjbGsgPSBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXE7Cj4+ICsJfQo+PiArCj4+ICsJdG9faW50ZWxfYXRvbWljX3N0YXRl KHN0YXRlKS0+Y2RjbGsgPSBjZGNsazsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ ICtzdGF0aWMgdm9pZCBza2xfbW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKm9sZF9zdGF0ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xk X3N0YXRlLT5kZXY7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPj4gKwl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKG9sZF9zdGF0ZSktPmNkY2xrOwo+PiArCj4+ICsJc2tsX3NldF9jZGNsayhkZXZf cHJpdiwgcmVxX2NkY2xrKTsKPj4gKwo+PiArCWlmICh0b19pbnRlbF9hdG9taWNfc3RhdGUob2xk X3N0YXRlKS0+dmNvX3RhcmdldCkgewo+PiArCQlkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID0gdG9f aW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSktPnZjb190YXJnZXQ7Cj4+ICsJfQo+Cj4gc2ts X3NldF9jZGNsaygpIHJlYWxseSBuZWVkcyB0byBiZSB0YXVnaHQgdG8gZG8gdGhlICdkaXNhYmxl K2VuYWJsZSBwbGwnCj4gZGFuY2Ugc28gdGhhdCBpdCBjYW4gYWN0dWFsbHkgY2hhbmdlIHRoZSB2 Y28gZnJlcXVlbmN5LiBCdXQgSSB0aGluayB3ZQo+IGNhbiBsZWF2ZSB0aGF0IGZvciBhIGZvbGxv d3VwIHNvIHRoYXQgd2UgY2FuIG1vdmUgdGhpcyBmb3J3YXJkLiBBIEZJWE1FCj4gY29tbWVudCBo ZXJlIHdvdWxkIGJlIGdvb2QgdGhvdWdoIHNvIHdlIGRvbid0IGZvcmdldC4KCk9rCgo+Cj4+ICt9 Cj4+ICsKPj4gICBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+PiAgIAkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4gICB7Cj4+IEBAIC0xMzIxOSwxMSArMTMyNzcsMTMgQEAgc3RhdGljIGlu dCBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4+Cj4+ICAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4+ICAgewo+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0 ZS0+ZGV2Owo+PiAgIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRv X2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHN0YXRlLT5kZXYtPmRldl9wcml2YXRlOwo+PiAgIAlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGM7Cj4+ICAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPj4gICAJ aW50IHJldCA9IDAsIGk7Cj4+ICsJdW5zaWduZWQgaW50IHRhcmdldF92Y287Cj4+Cj4+ICAgCWlm ICghY2hlY2tfZGlnaXRhbF9wb3J0X2NvbmZsaWN0cyhzdGF0ZSkpIHsKPj4gICAJCURSTV9ERUJV R19LTVMoInJlamVjdGluZyBjb25mbGljdGluZyBkaWdpdGFsIHBvcnQgY29uZmlndXJhdGlvblxu Iik7Cj4+IEBAIC0xMzI0OSw4ICsxMzMwOSwxNCBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRf Y2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gICAJICovCj4+ICAgCWlm IChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGspIHsKPj4gICAJCXJldCA9IGRl dl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7Cj4+ICsJCXRhcmdldF92 Y28gPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT52Y29fdGFyZ2V0Owo+Pgo+PiAtCQlp ZiAoIXJldCAmJiBpbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVx KQo+PiArCQlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IChJU19LQUJZTEFLRShkZXYpKSkgewo+PiAr CQkJaWYgKCgodGFyZ2V0X3ZjbykgJiYgKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgIT0gdGFyZ2V0 X3ZjbykpIHx8Cj4KPiBIbW0uIElmIHRhcmdldF92Y28gaXMgMCwgdGhlbiBza2xfbW9kZXNldF9j YWxjX2NkY2xrKCkgaGFzIGFscmVhZHkKPiBkb25lIHNvbWV0aGluZyB3cm9uZy4gU28gSSB0aGlu ayBpZiB0aGUgdGFyZ2V0X3ZjbyB3YXNuJ3Qgc2V0IGJ5IHRoZQo+IGVuY29kZXIocykgeW91J2xs IG5lZWQgdG8ganVzdCBzZXQgJy0+dmNvX3RhcmdldCA9IGRldl9wcml2LT52Y28nIGJlZm9yZQo+ IGNhbGxpbmcgLm1vZGVzZXRfY2FsY19jZGNsaygpLgoKbW9kZXNldF9jYWxjX2NkY2xrIGRlZmF1 bHRzIHRvIHRoZSA4MTAwIFZDTy4gVGhpcyBpcyBmaW5lIGZvciBhbGwgZURQIApsaW5rIHJhdGVz IGV4Y2VwdCB0aGUgbmV3IFYxLjQgcmF0ZXMuIElmIHRhcmdldF92Y28gaXMgMCBjb3B5aW5nIGlu IApkZXZfcHJpdiA9IHZjbyBpcyB0aGUgY29ycmVjdCB0aGluZyB0byBkby4gVGhhbmtzIQo+Cj4g QlRXIHRoZSB2Y29fdGFyZ2V0IHZzLiB0YXJnZXRfdmNvIGlzIGJvdGhlcmluZyBtZSBhIGJpdC4g SW4gZmFjdCBJIHRoaW5rCj4gaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBpdCdzIGEgdGFyZ2V0IHZh bHVlIHNpbXBseSBkdWUgdG8gdGhlIGZhY3QgdGhhdAo+IGl0J3MgcGFydCBvZiB0aGUgYXRvbWlj IHN0YXRlLiBTbyB3ZSBjYW4gcHJvYmFibHkganVzdCBjYWxsIGl0IHNvbWV0aGluZwo+IGxpa2Ug Y2RjbGtfcGxsX3ZjbyAoa2VlcGluZyB0aGUgbmFtZSBzb21ld2hhdCBnZW5lcmljIGluIGNhc2Ug d2UgbmVlZAo+IHRoZSBzYW1lIHRyZWF0bWVudCBmb3IgYSBmdXR1cmUgcGxhdGZvcm0sIGFuZCB3 ZSBhbGwga25vdyB0aGUgaGFyZHdhcmUKPiBmb2xrcyBsaWtlIHRvIHJlbmFtZSB0aGluZ3MgZm9y IGZ1biBhbmQgcHJvZml0KS4KCmFncmVlZC4KCj4KPj4gKwkJCSAgICghcmV0ICYmIGludGVsX3N0 YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpKSB7Cj4+ICsJCQkJcmV0ID0g aW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RhdGUpOwo+PiArCQkJfQo+PiArCQl9IGVsc2UgaWYg KCFyZXQgJiYgaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkK Pj4gICAJCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7Cj4+Cj4+ICAgCQlp ZiAocmV0IDwgMCkKPj4gQEAgLTE1MDAyLDYgKzE1MDY4LDExIEBAIHN0YXRpYyB2b2lkIGludGVs X2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAkJCWJyb3h0b25fbW9k ZXNldF9jb21taXRfY2RjbGs7Cj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNf Y2RjbGsgPQo+PiAgIAkJCWJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrOwo+PiArCX0gZWxzZSBp ZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPj4gKwkJZGV2X3ByaXYt PmRpc3BsYXkubW9kZXNldF9jb21taXRfY2RjbGsgPQo+PiArCQkJc2tsX21vZGVzZXRfY29tbWl0 X2NkY2xrOwo+PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+PiAr CQkJc2tsX21vZGVzZXRfY2FsY19jZGNsazsKPj4gICAJfQo+Pgo+PiAgIAlzd2l0Y2ggKElOVEVM X0lORk8oZGV2KS0+Z2VuKSB7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBpbmRleCBhMDcz ZjA0Li5mYmMzN2ZlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gQEAgLTEyNDIs OSArMTI0MiwxMCBAQCBpbnRlbF9kcF9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+ IC1za2xfZWRwX3NldF9wbGxfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKPj4gK3NrbF9lZHBfc2V0X3BsbF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4KPiBkZXZf cHJpdiBjb3VsZCBiZSBkdWcgb3V0IHZpYSB0aGUgcGlwZV9jb25maWcgdG9vLCBidXQgdGhpcyB3 YXkgaXMgZmluZQo+IHRvbyBJTU8uCgpkZXZfcHJpdiBpcyBub3QgdXNlZCBhbnltb3JlIGFuZCBJ IGNhbiByZW1vdmUgdGhpcyBwYXJhbWV0ZXIuCj4KPj4gICB7Cj4+ICAgCXUzMiBjdHJsMTsKPj4g Kwl1MzIgdmNvID0gODEwMDsKPj4KPj4gICAJbWVtc2V0KCZwaXBlX2NvbmZpZy0+ZHBsbF9od19z dGF0ZSwgMCwKPj4gICAJICAgICAgIHNpemVvZihwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSkp Owo+PiBAQCAtMTI3NywxMyArMTI3OCwxNiBAQCBza2xfZWRwX3NldF9wbGxfY29uZmlnKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPj4gICAJY2FzZSAxMDgwMDA6Cj4+ICAg CQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8xMDgw LAo+PiAgIAkJCQkJICAgICAgU0tMX0RQTEwwKTsKPj4gKwkJdmNvID0gODY0MDsKPj4gICAJCWJy ZWFrOwo+PiAgIAljYXNlIDIxNjAwMDoKPj4gICAJCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19S QVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzIxNjAsCj4+ICAgCQkJCQkgICAgICBTS0xfRFBMTDAp Owo+PiArCQl2Y28gPSA4NjQwOwo+PiAgIAkJYnJlYWs7Cj4+IC0KPj4gICAJfQo+PiArCj4+ICsJ dG9faW50ZWxfYXRvbWljX3N0YXRlKHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlKS0+dmNvX3Rhcmdl dCA9IHZjbzsKPj4gICAJcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuY3RybDEgPSBjdHJsMTsK Pj4gICB9Cj4+Cj4+IEBAIC0xNjY0LDcgKzE2NjgsNyBAQCBmb3VuZDoKPj4gICAJfQo+Pgo+PiAg IAlpZiAoKElTX1NLWUxBS0UoZGV2KSAgfHwgSVNfS0FCWUxBS0UoZGV2KSkgJiYgaXNfZWRwKGlu dGVsX2RwKSkKPj4gLQkJc2tsX2VkcF9zZXRfcGxsX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4+ICsJ CXNrbF9lZHBfc2V0X3BsbF9jb25maWcoZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsKPj4gICAJZWxz ZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiAgIAkJLyogaGFuZGxlZCBpbiBkZGkgKi87Cj4+ICAg CWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPj4gaW5kZXggODc4MTcyYS4uMDA1ZTAzNiAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gQEAgLTI2MCw2ICsyNjAsOSBAQCBzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlIHsKPj4KPj4gICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBz aGFyZWRfZHBsbFtJOTE1X05VTV9QTExTXTsKPj4gICAJc3RydWN0IGludGVsX3dtX2NvbmZpZyB3 bV9jb25maWc7Cj4+ICsKPj4gKwkvKiBTS0wvS0JMIE9ubHkgKi8KPj4gKwl1bnNpZ25lZCBpbnQg dmNvX3RhcmdldDsKPj4gICB9Owo+Pgo+PiAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7Cj4+ IEBAIC0xMTkxLDYgKzExOTQsNyBAQCB2b2lkIGJ4dF9kaXNhYmxlX2RjOShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAgIHZvaWQgc2tsX2luaXRfY2RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gICBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICAgdm9pZCBza2xfdW5pbml0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICt1bnNpZ25lZCBpbnQg c2tsX2NkY2xrX2dldF92Y28odW5zaWduZWQgaW50IGZyZXEpOwo+PiAgIHZvaWQgc2tsX2VuYWJs ZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gICB2b2lkIHNrbF9k aXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAgIHZvaWQg aW50ZWxfZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gLS0KPj4gMS43Ljku NQo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK