From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH 1/2] drm/i915/BXT: Get pipe conf from the port registers Date: Tue, 29 Mar 2016 23:10:03 +0530 Message-ID: <56FABDF3.8000903@intel.com> References: <1459272788-6581-1-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 67DB46E03E for ; Tue, 29 Mar 2016 17:49:10 +0000 (UTC) In-Reply-To: <1459272788-6581-1-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org UGxlYXNlIGlnbm9yZSB0aGlzLCBhcyB0aGlzIGlzIHJlZHVuZGFudC4gT3JpZ2luYWwgcGF0Y2gg aXMgYXQgCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8y MDE2LU1hcmNoLzA5MDk5OS5odG1sCgpPbiBUdWVzZGF5IDI5IE1hcmNoIDIwMTYgMTE6MDMgUE0s IFJhbWFsaW5nYW0gQyB3cm90ZToKPiBBdCBCWFQgRFNJLCBQSVBFIHJlZ2lzdGVycyBhcmUgaW5h Y3RpdmUuIFNvIHdlIGNhbid0IGdldCB0aGUKPiBQSVBFJ3MgbW9kZSBwYXJhbWV0ZXJzIGZyb20g dGhlbS4gVGhlIHBvc3NpYmxlIG9wdGlvbiBpcwo+IHJldHJpdmluZyB0aGVtIGZyb20gdGhlIFBP UlQgcmVnaXN0ZXJzLgo+Cj4gVGhlIHJlcXVpcmVkIGNoYW5nZXMgYXJlIGFkZGVkIGZvciBCWFQg aW4gaW50ZWxfZHNpX2dldF9jb25maWcKPiAoZW5jb2Rlci0+Z2V0X2NvbmZpZykuCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gLS0tCj4g UHJldmlvdXNseSByZXZpZXdlZCBhdCBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcv cGF0Y2gvNzUzMDEvCj4KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8 ICAgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICA0NCAr KysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgIHwg IDEwNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICAzIGZpbGVzIGNoYW5n ZWQsIDE0OSBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCBj ODM5Y2U5Li5kYTNjZGVmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTgyMTAs NiArODIxMCw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAgI2RlZmluZSAgQlhU X1BJUEVfU0VMRUNUX1NISUZUCQkJCTcKPiAgICNkZWZpbmUgIEJYVF9QSVBFX1NFTEVDVF9NQVNL CQkJCSg3IDw8IDcpCj4gICAjZGVmaW5lICBCWFRfUElQRV9TRUxFQ1QocGlwZSkJCQkJKChwaXBl KSA8PCA3KQo+ICsjZGVmaW5lICBCWFRfUE9SVF9UT19QSVBFKGN0cmwpCQkoKGN0cmwgJiBCWFRf UElQRV9TRUxFQ1RfTUFTSykgPj4gNykKPiAgIAo+ICAgI2RlZmluZSBfTUlQSUFfREFUQV9BRERS RVNTCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiMTA4KQo+ICAgI2RlZmluZSBfTUlQ SUNfREFUQV9BRERSRVNTCQkoZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiOTA4KQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAyOWFhNjRiLi5jMDYyN2Q2IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC05OTQxLDExICs5OTQx LDQwIEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAo+ICAgCX0KPiAgIH0KPiAgIAo+ICtzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq Ynh0X2dldF9kc2lfZW5jb2Rlcl9mb3JfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAr CQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gK3sKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlcjsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaTsKPiAr CWVudW0gcG9ydCBwb3J0Owo+ICsJdTMyIHRtcDsKPiArCj4gKwlmb3JfZWFjaF9pbnRlbF9lbmNv ZGVyKGRldiwgaW50ZWxfZW5jb2Rlcikgewo+ICsJCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09 IElOVEVMX09VVFBVVF9EU0kpIHsKPiArCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgm aW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gKwkJCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVs X2RzaS0+cG9ydHMpIHsKPiArCQkJCWlmICghKEk5MTVfUkVBRChCWFRfTUlQSV9QT1JUX0NUUkwo cG9ydCkpICYKPiArCQkJCQkJCQlEUElfRU5BQkxFKSkKPiArCQkJCQlicmVhazsKPiArCj4gKwkJ CQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiArCQkJCWlmICgodG1wICYgQlhU X1BJUEVfU0VMRUNUX01BU0spID09Cj4gKwkJCQkJCUJYVF9QSVBFX1NFTEVDVChjcnRjLT5waXBl KSkKPiArCQkJCQlyZXR1cm4gaW50ZWxfZW5jb2RlcjsKPiArCQkJfQo+ICsJCX0KPiArCX0KPiAr CXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGJvb2wgaGFzd2VsbF9nZXRfcGlwZV9j b25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gICAJCQkJICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyLCAqYXR0YWNoZWRfZW5jb2RlciA9IE5VTEw7Cj4gICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4gICAJdW5zaWduZWQgbG9uZyBwb3dlcl9kb21haW5f bWFzazsKPiAgIAlib29sIGFjdGl2ZTsKPiBAQCAtOTk2NSw2ICs5OTk0LDIxIEBAIHN0YXRpYyBi b29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAg CQlXQVJOX09OKGFjdGl2ZSAmJiBwaXBlX2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVyKTsKPiAgIAkJ aWYgKHBpcGVfY29uZmlnLT5oYXNfZHNpX2VuY29kZXIpCj4gICAJCQlhY3RpdmUgPSB0cnVlOwo+ ICsKPiArCQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCAmY3J0Yy0+YmFzZSwgaW50ZWxf ZW5jb2RlcikKPiArCQkJYXR0YWNoZWRfZW5jb2RlciA9IGludGVsX2VuY29kZXI7Cj4gKwo+ICsJ CS8qCj4gKwkJICogYXR0YWNoZWRfZW5jb2RlciB3aWxsIGJlIE5VTEwsIGlmIHRoZXJlIGlzIG5v IG1vZGVzZXQgZnJvbQo+ICsJCSAqIHRoZSBrZXJuZWwgYm9vdHVwLgo+ICsJCSAqLwo+ICsJCWlm ICghYXR0YWNoZWRfZW5jb2RlciAmJiBwaXBlX2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVyKQo+ICsJ CQlhdHRhY2hlZF9lbmNvZGVyID0KPiArCQkJCWJ4dF9nZXRfZHNpX2VuY29kZXJfZm9yX2NydGMo Y3J0YywgcGlwZV9jb25maWcpOwo+ICsKPiArCQlpZiAoYXR0YWNoZWRfZW5jb2RlciAmJiBhdHRh Y2hlZF9lbmNvZGVyLT5nZXRfY29uZmlnKQo+ICsJCQlhdHRhY2hlZF9lbmNvZGVyLT5nZXRfY29u ZmlnKGF0dGFjaGVkX2VuY29kZXIsCj4gKwkJCQkJCQkJcGlwZV9jb25maWcpOwo+ICAgCX0KPiAg IAo+ICAgCWlmICghYWN0aXZlKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gaW5kZXggMGRl NzRlMS4uNjlhODAxZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gQEAgLTc0MCwx NCArNzQwLDExOCBAQCBvdXRfcHV0X3Bvd2VyOgo+ICAgCXJldHVybiBhY3RpdmU7Cj4gICB9Cj4g ICAKPiArLyogcmV0dXJuIHBpeGVscyBlcXV2YWxlbnQgdG8gdHhieXRlY2xraHMgKi8KPiArc3Rh dGljIHUxNiBwaXhlbHNfZnJvbV90eGJ5dGVjbGtocyh1MTYgY2xrX2hzLCBpbnQgYnBwLCBpbnQg bGFuZV9jb3VudCwKPiArCQkgICAgICAgdTE2IGJ1cnN0X21vZGVfcmF0aW8pCj4gK3sKPiArCXJl dHVybiBESVZfUk9VTkRfVVAoKGNsa19ocyAqIGxhbmVfY291bnQgKiA4ICogMTAwKSwKPiArCQkJ CQkJKGJwcCAqIGJ1cnN0X21vZGVfcmF0aW8pKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgYnh0 X2RzaV9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ICsJCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0KPiArCQkJCWVuY190 b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJdW5zaWduZWQgaW50IGJwcCA9IG1pcGlf ZHNpX3BpeGVsX2Zvcm1hdF90b19icHAoaW50ZWxfZHNpLT5waXhlbF9mb3JtYXQpOwo+ICsJdW5z aWduZWQgaW50IGxhbmVfY291bnQgPSBpbnRlbF9kc2ktPmxhbmVfY291bnQ7Cj4gKwllbnVtIHBv cnQgcG9ydDsKPiArCWVudW0gcGlwZSBkc2lfcGlwZTsKPiArCXUxNiBoYWN0aXZlLCBoZnAsIGhz eW5jLCBoYnAsIHZmcCwgdnN5bmMsIHZicDsKPiArCXVpbnQzMl90IHRtcDsKPiArCj4gKwlmb3Jf ZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gKwkJaWYgKCEoSTkxNV9S RUFEKEJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSkgJiBEUElfRU5BQkxFKSkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCS8qIEluIHRlcm1zIG9mIHBpeGVscyAqLwo+ICsJCWFkanVzdGVkX21vZGUt PmNydGNfaGRpc3BsYXkgPQo+ICsJCQkJCUk5MTVfUkVBRChCWFRfTUlQSV9UUkFOU19IQUNUSVZF KHBvcnQpKTsKPiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5ID0KPiArCQkJCQlJOTE1 X1JFQUQoQlhUX01JUElfVFJBTlNfVkFDVElWRShwb3J0KSk7Cj4gKwkJYWRqdXN0ZWRfbW9kZS0+ Y3J0Y192dG90YWwgPQo+ICsJCQkJCUk5MTVfUkVBRChCWFRfTUlQSV9UUkFOU19WVE9UQUwocG9y dCkpOwo+ICsKPiArCQloYWN0aXZlID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKPiAr CQloZnAgPSBJOTE1X1JFQUQoTUlQSV9IRlBfQ09VTlQocG9ydCkpOwo+ICsKPiArCQkvKgo+ICsJ CSAqIG1lYW5pbmdmdWwgZm9yIHZpZGVvIG1vZGUgbm9uLWJ1cnN0IHN5bmMgcHVsc2UgbW9kZSBv bmx5LAo+ICsJCSAqIGNhbiBiZSB6ZXJvIGZvciBub24tYnVyc3Qgc3luYyBldmVudHMgYW5kIGJ1 cnN0IG1vZGVzCj4gKwkJICovCj4gKwkJaHN5bmMgPSBJOTE1X1JFQUQoTUlQSV9IU1lOQ19QQURE SU5HX0NPVU5UKHBvcnQpKTsKPiArCQloYnAgPSBJOTE1X1JFQUQoTUlQSV9IQlBfQ09VTlQocG9y dCkpOwo+ICsKPiArCQkvKiBob3Jpem9udGFsIHZhbHVlcyBhcmUgaW4gdGVybXMgb2YgaGlnaCBz cGVlZCBieXRlIGNsb2NrICovCj4gKwkJaGZwID0gcGl4ZWxzX2Zyb21fdHhieXRlY2xraHMoaGZw LCBicHAsIGxhbmVfY291bnQsCj4gKwkJCQkJCWludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbyk7 Cj4gKwkJaHN5bmMgPSBwaXhlbHNfZnJvbV90eGJ5dGVjbGtocyhoc3luYywgYnBwLCBsYW5lX2Nv dW50LAo+ICsJCQkJCQlpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pOwo+ICsJCWhicCA9IHBp eGVsc19mcm9tX3R4Ynl0ZWNsa2hzKGhicCwgYnBwLCBsYW5lX2NvdW50LAo+ICsJCQkJCQlpbnRl bF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pOwo+ICsKPiArCQlpZiAoaW50ZWxfZHNpLT5kdWFsX2xp bmspIHsKPiArCQkJaGZwICo9IDI7Cj4gKwkJCWhzeW5jICo9IDI7Cj4gKwkJCWhicCAqPSAyOwo+ ICsJCX0KPiArCj4gKwkJLyogdmVydGljYWwgdmFsdWVzIGFyZSBpbiB0ZXJtcyBvZiBsaW5lcyAq Lwo+ICsJCXZmcCA9IEk5MTVfUkVBRChNSVBJX1ZGUF9DT1VOVChwb3J0KSk7Cj4gKwkJdnN5bmMg PSBJOTE1X1JFQUQoTUlQSV9WU1lOQ19QQURESU5HX0NPVU5UKHBvcnQpKTsKPiArCQl2YnAgPSBJ OTE1X1JFQUQoTUlQSV9WQlBfQ09VTlQocG9ydCkpOwo+ICsKPiArCQlhZGp1c3RlZF9tb2RlLT5j cnRjX2h0b3RhbCA9IGhhY3RpdmUgKyBoZnAgKyBoc3luYyArIGhicDsKPiArCQlhZGp1c3RlZF9t b2RlLT5jcnRjX2hzeW5jX3N0YXJ0ID0KPiArCQkJCQloZnAgKyBhZGp1c3RlZF9tb2RlLT5jcnRj X2hkaXNwbGF5Owo+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfaHN5bmNfZW5kID0KPiArCQkJCQlo c3luYyArIGFkanVzdGVkX21vZGUtPmNydGNfaHN5bmNfc3RhcnQ7Cj4gKwkJYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19oYmxhbmtfc3RhcnQgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5Owo+ICsJ CWFkanVzdGVkX21vZGUtPmNydGNfaGJsYW5rX2VuZCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRv dGFsOwo+ICsKPiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX3N0YXJ0ID0KPiArCQkJCQl2 ZnAgKyBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5Owo+ICsJCWFkanVzdGVkX21vZGUtPmNy dGNfdnN5bmNfZW5kID0KPiArCQkJCQl2c3luYyArIGFkanVzdGVkX21vZGUtPmNydGNfdnN5bmNf c3RhcnQ7Cj4gKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192Ymxhbmtfc3RhcnQgPSBhZGp1c3RlZF9t b2RlLT5jcnRjX3ZkaXNwbGF5Owo+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfdmJsYW5rX2VuZCA9 IGFkanVzdGVkX21vZGUtPmNydGNfdnRvdGFsOwo+ICsKPiArCQlwaXBlX2NvbmZpZy0+cGlwZV9i cHAgPQo+ICsJCQltaXBpX2RzaV9waXhlbF9mb3JtYXRfdG9fYnBwKGludGVsX2RzaS0+cGl4ZWxf Zm9ybWF0KTsKPiArCj4gKwkJZHNpX3BpcGUgPSBCWFRfUE9SVF9UT19QSVBFKEk5MTVfUkVBRChN SVBJX0NUUkwocG9ydCkpKTsKPiArCQlpZiAoZHNpX3BpcGUgPiBQSVBFX0MpIHsKPiArCQkJRFJN X0VSUk9SKCJJbnZhbGlkIFBJUEUgY29uZmlndXJlZFxuIik7Cj4gKwkJCWJyZWFrOwo+ICsJCX0K PiArCj4gKwkJdG1wID0gSTkxNV9SRUFEKFBJUEVTUkMoZHNpX3BpcGUpKTsKPiArCQlwaXBlX2Nv bmZpZy0+cGlwZV9zcmNfaCA9ICh0bXAgJiAweGZmZmYpICsgMTsKPiArCQlwaXBlX2NvbmZpZy0+ cGlwZV9zcmNfdyA9ICgodG1wID4+IDE2KSAmIDB4ZmZmZikgKyAxOwo+ICsKPiArCQlwaXBlX2Nv bmZpZy0+YmFzZS5tb2RlLnZkaXNwbGF5ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX2g7Cj4gKwkJ cGlwZV9jb25maWctPmJhc2UubW9kZS5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193 Owo+ICsJCWJyZWFrOwo+ICsJfQo+ICt9Cj4gKwo+ICsKPiAgIHN0YXRpYyB2b2lkIGludGVsX2Rz aV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCSBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gICB7Cj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gICAJdTMyIHBjbGs7Cj4gICAJRFJNX0RF QlVHX0tNUygiXG4iKTsKPiAgIAo+ICAgCXBpcGVfY29uZmlnLT5oYXNfZHNpX2VuY29kZXIgPSB0 cnVlOwo+ICAgCj4gKwlpZiAoSVNfQlJPWFRPTihkZXYpKQo+ICsJCWJ4dF9kc2lfZ2V0X3BpcGVf Y29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiArCj4gICAJLyoKPiAgIAkgKiBEUExMX01E IGlzIG5vdCB1c2VkIGluIGNhc2Ugb2YgRFNJLCByZWFkaW5nIHdpbGwgZ2V0IHNvbWUgZGVmYXVs dCB2YWx1ZQo+ICAgCSAqIHNldCBkcGxsX21kID0gMAoKLS0gClRoYW5rcywKLS1SYW0KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=