From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 02/12] drm/i915/bxt: Enable BXT DSI PLL Date: Mon, 25 May 2015 19:10:53 +0300 Message-ID: <87k2vwiqnm.fsf@intel.com> References: <1432310765-2218-1-git-send-email-uma.shankar@intel.com> <1432310765-2218-3-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 27B266E1AC for ; Mon, 25 May 2015 09:12:37 -0700 (PDT) In-Reply-To: <1432310765-2218-3-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Uma Shankar , intel-gfx@lists.freedesktop.org Cc: shobhit.kumar@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMiBNYXkgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t Pgo+Cj4gVGhpcyBwYXRjaCBhZGRzIG5ldyBmdW5jdGlvbnMgZm9yIEJYVCBjbG9jayBhbmQgUExM IHByb2dyYW1taW5nLgo+IFRoZXkgYXJlOgo+IDEuIGNvbmZpZ3VyZV9kc2lfcGxsIGZvciBCWFQu Cj4gICAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoZSBiYXNpYyBtYXRoIGFuZCBnZW5lcmF0ZXMgdGhl IGRpdmlkZXIgcmF0aW8KPiAgICBiYXNlZCBvbiByZXF1ZXN0ZWQgcGl4Y2xvY2ssIGFuZCBwcm9n cmFtIGNsb2NrIHJlZ2lzdGVycy4KPiAyLiBlbmFibGVfZHNpX3BsbCBmdW5jdGlvbi4KPiAgICBU aGlzIGZ1bmN0aW9uIHByb2dyYW1zIHRoZSBjYWxjdWxhdGVkIGNsb2NrIHZhbHVlcyBvbiB0aGUg UExMLgo+IDMuIGludGVsX2VuYWJsZV9kc2lfcGxsCj4gICAgV3JhcHBlciBmdW5jdGlvbiB0byB1 c2Ugc2FtZSBjb2RlIGZvciBtdWx0aXBsZSBwbGF0Zm9ybXMuIEl0IGNoZWNrcyB0aGUKPiAgICBw bGF0Zm9ybSBhbmQgY2FsbHMgYXBwcm9wcmlhdGUgY29yZSBwbGwgZW5hYmxlIGZ1bmN0aW9uLgo+ Cj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAgMzUgKysr KysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgIHwgICAg MiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaCAgICAgfCAgICAyICstCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYyB8ICAgODUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggNDZl ZjI2OS4uYjYzYmRjZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC03MzUyLDYg KzczNTIsNDEgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gIAo+ICAvKiBNSVBJIERT SSByZWdpc3RlcnMgKi8KPiAgCj4gKy8qIEJYVCBEU0kgUExMIENvbnRyb2wgKi8KClRoZSBtYWNy byBuYW1lIHNheXMgdGhpcyBhbHJlYWR5LCBubyBuZWVkIGZvciB0aGUgY29tbWVudC4KCj4gKyNk ZWZpbmUgQlhUX0RTSV9QTExfQ1RMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYx MDAwCj4gKyNkZWZpbmUgQlhUX0RTSV9QTExfTUFTS19QVkRfUkFUSU8gICAgICAgICAgICAgICAg ICAgKDMgPDwgMTYpCgpUaGUgY29udmVudGlvbiBpcyB0byBoYXZlIF9TSElGVCBhbmQgX01BU0sg YXQgdGhlIGVuZCBvZiB0aGUgbmFtZS4KCj4gKyNkZWZpbmUgQlhUX0RTSV9QTExfUFZEX1JBVElP XzEgICAgICAgICAgICAgICAgICAgICAgKDE8PDE2KQoKU3BhY2VzIGFyb3VuZCA8PC4gUGxlYXNl IGFsc28gYWRkIG1hY3JvIGZvciBfU0hJRlQuCgo+ICsjZGVmaW5lIEJYVF9EU0lDXzE2WF9CWTIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQo+ICsjZGVmaW5lIEJYVF9EU0lD XzE2WF9CWTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQo+ICsjZGVmaW5l IEJYVF9EU0lDXzE2WF9CWTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzIDw8IDEwKQoK VGhlIGNvbnZlbnRpb24gaXMgdG8gc2hpZnQgdGhlIHNhbWUgYW1vdW50IGZvciBlYWNoIGFsdGVy bmF0aXZlIGluIGEgYml0CmZpZWxkLiBFLmcuICgxIDw8IDEwKSwgKDIgPDwgMTApLCAoMyA8PCAx MCkuCgo+ICsjZGVmaW5lIEJYVF9EU0lBXzE2WF9CWTIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgxIDw8IDgpCj4gKyNkZWZpbmUgQlhUX0RTSUFfMTZYX0JZMyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDEgPDwgOSkKPiArI2RlZmluZSBCWFRfRFNJQV8xNlhfQlk0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoMyA8PCA4KQoKU2FtZS4KCj4gKyNkZWZpbmUgQlhUX0RTSV9N QVNLX0ZSRVFfU0VMICAgICAgICAgICAgICAgICAgICAgICAgKDB4RiA8PCA4KQoKX01BU0sgYXQg dGhlIGVuZCBvZiB0aGUgbmFtZSwgYW5kIHRoZSBjb252ZW50aW9uIGlzIHRvIGRlZmluZSBfU0hJ RlQKZmlyc3QsIF9NQVNLIG5leHQsIGFuZCB0aGUgcG9zc2libGUgYWx0ZXJuYXRpdmVzIGFmdGVy IHRoYXQsIGkuZS4KCiNkZWZpbmUgIEZPT19TSElGVAkJMTYKI2RlZmluZSAgRk9PX01BU0sJCSgz IDw8IDE2KQojZGVmaW5lICBGT09fQQkJCSgxIDw8IDE2KQoKPiArI2RlZmluZSBCWFRfRFNJX1BM TF9SQVRJT19NQVggICAgICAgICAgICAgICAgICAgICAgICAweDdECj4gKyNkZWZpbmUgQlhUX0RT SV9QTExfUkFUSU9fTUlOICAgICAgICAgICAgICAgICAgICAgICAgMHgyMgo+ICsjZGVmaW5lIEJY VF9EU0lfTUFTS19QTExfUkFUSU8gICAgICAgICAgICAgICAgICAgICAgIDB4N0YKClNhbWUgYXMg YWJvdmUuIFRoZSBtYXNrIGlzIDggYml0cywgaS5lLiAweGZmLgoKVGhlIGNvbnZlbnRpb24gaXMg dG8gaGF2ZSBiaXQgbmFtZXMgc2hpZnRlZCBieSB0d28gc3BhY2VzLiBGb3IgZXhhbXBsZSwKCiNk ZWZpbmUgUkVHSVNURVJfTkFNRQkJCQkJMHg1MDAwMAojZGVmaW5lICAgU09NRV9CSVQJCQkJCSgx IDw8IDUpCgpBbmQgcGxlYXNlIG5vIGVtcHR5IGxpbmVzIGJldHdlZW4gYml0IG5hbWVzLCBncm91 cCB0aGVtIHRvZ2V0aGVyLgoKPiArI2RlZmluZSBCWFRfUkVGX0NMT0NLX0tIWiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxOTUwMAo+ICsKPiArI2RlZmluZSBCWFRfRFNJX1BMTF9FTkFCTEUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0NjA4MAo+ICsjZGVmaW5lIEJYVF9EU0lfUExM X0RPX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKPiArI2RlZmluZSBC WFRfRFNJX1BMTF9MT0NLRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCj4g Kwo+ICsvKiBCWFQgcG93ZXIgd2VsbCBjb250cm9sMiwgZm9yIGRyaXZlciAqLwoKVGhlIG1hY3Jv IG5hbWUgc2F5cyB0aGlzIGFscmVhZHksIG5vIG5lZWQgZm9yIHRoZSBjb21tZW50LgoKPiArI2Rl ZmluZSBCWFRfUFdSX1dFTExfQ1RMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0NTQw NAo+ICsjZGVmaW5lIEJYVF9QV1JfV0VMTF8yX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAg ICAoMSA8PCAzMSkKPiArI2RlZmluZSBCWFRfUFdSX1dFTExfMl9FTkFCTEVEICAgICAgICAgICAg ICAgICAgICAgICAgKDEgPDwgMzApCj4gKyNkZWZpbmUgQlhUX1BXUl9XRUxMXzFfRU5BQkxFICAg ICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI5KQo+ICsjZGVmaW5lIEJYVF9QV1JfV0VMTF8x X0VOQUJMRUQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKPiArI2RlZmluZSBCWFRf UFdSX1dFTExfRU5BQkxFRCAgKEJYVF9QV1JfV0VMTF8xX0VOQUJMRUQgfCBcCj4gKwkJCQlCWFRf UFdSX1dFTExfMl9FTkFCTEVEKQo+ICsjZGVmaW5lIEdFTjlfRlVTRV9TVEFUVVMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHg0MjAwMAo+ICsjZGVmaW5lIEdFTjlfRlVTRV9QRzJfRU5B QkxFRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCj4gKyNkZWZpbmUgR0VOOV9G VVNFX1BHMV9FTkFCTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNikKPiArI2Rl ZmluZSBHRU45X0ZVU0VfUEcwX0VOQUJMRUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8 IDI3KQo+ICsKCkJYVF9QV1JfV0VMTF9DVEwyIGFuZCBHRU45X0ZVU0VfU1RBVFVTIGFyZSBub3Qg dXNlZCBpbiB0aGlzIHNlcmllcyBhdAphbGwsIHBsZWFzZSByZW1vdmUgdGhlbSBmcm9tIHRoaXMg cGF0Y2ggKGFuZCBwZXJoYXBzIHNlbmQgdGhlbSBpbiBhCnNlcGFyYXRlIHBhdGNoKS4KCj4gICNk ZWZpbmUgX01JUElfUE9SVChwb3J0LCBhLCBjKQlfUE9SVDMocG9ydCwgYSwgMCwgYykJLyogcG9y dHMgQSBhbmQgQyBvbmx5ICovCj4gIAo+ICAjZGVmaW5lIF9NSVBJQV9QT1JUX0NUUkwJCQkoVkxW X0RJU1BMQVlfQkFTRSArIDB4NjExOTApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRl eCAyNDE5OTI5ZS4uMTkyNzU0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gQEAg LTkwMyw4ICs5MDMsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX3BsbF9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlEUk1fREVCVUdfS01TKCJcbiIpOwo+ICAK PiAgCWludGVsX2RzaV9wcmVwYXJlKGVuY29kZXIpOwo+ICsJaW50ZWxfZW5hYmxlX2RzaV9wbGwo ZW5jb2Rlcik7Cj4gIAo+IC0Jdmx2X2VuYWJsZV9kc2lfcGxsKGVuY29kZXIpOwo+ICB9Cj4gIAo+ ICBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aS5oCj4gaW5kZXggMjc4NGFjNC4uMjBjZmNmMDcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2kuaAo+IEBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHNp ICplbmNfdG9faW50ZWxfZHNpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCXJldHVy biBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RzaSwgYmFzZS5iYXNlKTsKPiAg fQo+ICAKPiAtZXh0ZXJuIHZvaWQgdmx2X2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKTsKPiArZXh0ZXJuIHZvaWQgaW50ZWxfZW5hYmxlX2RzaV9wbGwoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICBleHRlcm4gdm9pZCB2bHZfZGlzYWJsZV9kc2lf cGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiAgZXh0ZXJuIHUzMiB2bHZfZ2V0 X2RzaV9wY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgcGlwZV9icHApOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCj4gaW5kZXggOTY4OGQ5OS4uYTU4 ZjBhMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMKPiBAQCAtMjM3LDcg KzIzNyw3IEBAIHN0YXRpYyB2b2lkIHZsdl9jb25maWd1cmVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKPiAgCXZsdl9jY2tfd3JpdGUoZGV2X3ByaXYsIENDS19SRUdfRFNJ X1BMTF9DT05UUk9MLCBkc2lfbW5wLmRzaV9wbGxfY3RybCk7Cj4gIH0KPiAgCj4gLXZvaWQgdmx2 X2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMg dm9pZCB2bHZfZW5hYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2Uu ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXUzMiB0bXA7Cj4gQEAgLTM2OCwzICszNjgsODYgQEAgdTMy IHZsdl9nZXRfZHNpX3BjbGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCBwaXBl X2JwcCkKPiAgCj4gIAlyZXR1cm4gcGNsazsKPiAgfQo+ICsKPiArc3RhdGljIGJvb2wgYnh0X2Nv bmZpZ3VyZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxf ZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXU4IGRzaV9yYXRpbzsKPiArCXUzMiBkc2lfY2xrOwo+ ICsJdTMyIHZhbCA9IDA7CgpVbm5lY2Vzc2FyeSBpbml0aWFsaXphdGlvbi4KCj4gKwo+ICsJZHNp X2NsayA9IGRzaV9jbGtfZnJvbV9wY2xrKGludGVsX2RzaS0+cGNsaywgaW50ZWxfZHNpLT5waXhl bF9mb3JtYXQsCj4gKwkJCWludGVsX2RzaS0+bGFuZV9jb3VudCk7Cj4gKwo+ICsJLyoKPiArCSAq IEZyb20gY2xvY2sgZGlhZ3JhbSwgdG8gZ2V0IFBMTCByYXRpbyBkaXZpZGVyLCBkaXZpZGUgZG91 YmxlIG9mIERTSQo+ICsJICogbGluayByYXRlIChpLmUuLCAyKjh4PTE2eCBmcmVxdWVuY3kgdmFs dWUpIGJ5IHJlZiBjbG9jay4gTWFrZSBzdXJlIHRvCj4gKwkgKiByb3VuZCAndXAnIHRoZSByZXN1 bHQKPiArCSAqLwo+ICsJZHNpX3JhdGlvID0gRElWX1JPVU5EX1VQKGRzaV9jbGsgKiAyLCBCWFRf UkVGX0NMT0NLX0tIWik7Cj4gKwlpZiAoZHNpX3JhdGlvIDwgQlhUX0RTSV9QTExfUkFUSU9fTUlO IHx8Cj4gKwkJCWRzaV9yYXRpbyA+IEJYVF9EU0lfUExMX1JBVElPX01BWCkgewo+ICsJCURSTV9F UlJPUigiQ2FudCBnZXQgYSBzdWl0YWJsZSByYXRpbyBmcm9tIERTSSBQTEwgcmF0aW9zXG4iKTsK PiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIFByb2dyYW0gRFNJIHJh dGlvIGFuZCBTZWxlY3QgTUlQSUMgYW5kIE1JUElBIFBMTCBvdXRwdXQgYXMgOHgKPiArCSAqIFNw ZWMgc2F5cyBib3RoIGhhdmUgdG8gYmUgcHJvZ3JhbW1lZCwgZXZlbiBpZiBvbmUgaXMgbm90IGdl dHRpbmcKPiArCSAqIHVzZWQuIENvbmZpZ3VyZSBNSVBJX0NMT0NLX0NUTCBkaXZpZGVycyBpbiBt b2Rlc2V0Cj4gKwkgKi8KPiArCXZhbCA9IEk5MTVfUkVBRChCWFRfRFNJX1BMTF9DVEwpOwo+ICsJ dmFsICY9IH5CWFRfRFNJX1BMTF9NQVNLX1BWRF9SQVRJTzsKPiArCXZhbCAmPSB+QlhUX0RTSV9N QVNLX0ZSRVFfU0VMOwo+ICsJdmFsICY9IH5CWFRfRFNJX01BU0tfUExMX1JBVElPOwo+ICsJdmFs IHw9IChkc2lfcmF0aW8gfCBCWFRfRFNJQV8xNlhfQlkyIHwgQlhUX0RTSUNfMTZYX0JZMik7Cj4g Kwo+ICsJLyogUHJvZyBQVkQgcmF0aW8gPTEgaWYgcmF0aW8gPD0gNTAgKi8KCkkgY2FuIHJlYWQg dGhhdCBmcm9tIHRoZSBjb2RlLiBUaGUgY29tbWVudHMgYXJlIGZvciB0ZWxsaW5nIHRoZSByZWFk ZXIKKndoeSogdGhpcyBpcyBiZWluZyBkb25lLiBXaGF0J3MgdGhlIG1hZ2ljIDUwPwoKPiArCWlm IChkc2lfcmF0aW8gPD0gNTApIHsKPiArCQl2YWwgJj0gfkJYVF9EU0lfUExMX01BU0tfUFZEX1JB VElPOwo+ICsJCXZhbCB8PSBCWFRfRFNJX1BMTF9QVkRfUkFUSU9fMTsKPiArCX0KPiArCj4gKwlJ OTE1X1dSSVRFKEJYVF9EU0lfUExMX0NUTCwgdmFsKTsKCkhtbSwgUE9TVElOR19SRUFEPwoKPiAr CXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2RzaV9wbGwo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXUz MiB2YWwgPSAwOwoKVW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb24sIHRoZSBmaXJzdCB0aGluZyB5 b3UgZG8gd2l0aCB2YWwgaXMgYXNzaWduIHRvCml0LgoKPiArCj4gKwlEUk1fREVCVUdfS01TKCJc biIpOwo+ICsKClBlcmhhcHMgeW91IHNob3VsZCBjaGVjayBpZiBEU0kgUExMIGlzIGVuYWJsZWQg aGVyZSwgYW5kIGRpc2FibGUgd2l0aCBhCndhcm5pbmcgaWYgaXQgaXM/Cgo+ICsJLyogQ29uZmln dXJlIFBMTCB2YWxlcyAqLwo+ICsJaWYgKCFieHRfY29uZmlndXJlX2RzaV9wbGwoZW5jb2Rlcikp IHsKPiArCQlEUk1fRVJST1IoIkNvbmZpZ3VyZSBEU0kgUExMIGZhaWxlZCwgYWJvcnQgUExMIGVu YWJsZVxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCS8qIEVuYWJsZSBEU0kgUExMICov Cj4gKwl2YWwgPSBJOTE1X1JFQUQoQlhUX0RTSV9QTExfRU5BQkxFKTsKPiArCXZhbCB8PSBCWFRf RFNJX1BMTF9ET19FTkFCTEU7Cj4gKwlJOTE1X1dSSVRFKEJYVF9EU0lfUExMX0VOQUJMRSwgdmFs KTsKPiArCj4gKwkvKiBUaW1lb3V0IGFuZCBmYWlsIGlmIFBMTCBub3QgbG9ja2VkICovCj4gKwlp ZiAod2FpdF9mb3IoSTkxNV9SRUFEKEJYVF9EU0lfUExMX0VOQUJMRSkgJiBCWFRfRFNJX1BMTF9M T0NLRUQsIDEpKSB7Cj4gKwkJRFJNX0VSUk9SKCJEU0kgUExMICBub3QgbG9ja2VkXG4iKTsKPiAr CQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiRFNJIFBMTCBsb2NrZWRcbiIp Owo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ YmFzZS5kZXY7Cj4gKwo+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPiArCQl2bHZfZW5hYmxl X2RzaV9wbGwoZW5jb2Rlcik7Cj4gKwllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4gKwkJYnh0 X2VuYWJsZV9kc2lfcGxsKGVuY29kZXIpOwo+ICsJZWxzZQo+ICsJCURSTV9FUlJPUigiSW52YWxp ZCBEU0kgZGV2aWNlIHRvIHByZV9wbGxfZW5hYmxlXG4iKTsKClBsZWFzZSBkcm9wIGFsbCBzdWNo IGVsc2UgYnJhbmNoZXMuIEl0J3MgYWxyZWFkeSBldmlkZW50IHRoYXQgaGF2aW5nIGEKZmV3IG9m IHRoZW0gYXJvdW5kIGxlYWRzIHRvIG1vcmUgYW5kIG1vcmUgYWRkZWQsIGFuZCB0aGVyZSBpcyBu byBlbmQgdG8KaXQuCgo+ICt9Cj4gLS0gCj4gMS43LjkuNQo+Cj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwg T3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK