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: Wed, 30 Mar 2016 18:58:42 +0530 Message-ID: <56FBD48A.30103@intel.com> References: <1459272891-6830-1-git-send-email-ramalingam.c@intel.com> <877fgk2qlj.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id AF4FE6E7F9 for ; Wed, 30 Mar 2016 13:37:30 +0000 (UTC) In-Reply-To: <877fgk2qlj.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SmFuaSwKClRoYW5rcyBmb3IgdGhlIHJldmlldyBjb21tZW50cy4gQWRkcmVzc2luZyB0aGVtIGlu IHRoZSBuZXh0IHBhdGNoIHZlci4KCk9uIFdlZG5lc2RheSAzMCBNYXJjaCAyMDE2IDA0OjEzIFBN LCBKYW5pIE5pa3VsYSB3cm90ZToKPiBPbiBUdWUsIDI5IE1hciAyMDE2LCBSYW1hbGluZ2FtIEMg PHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+IHdyb3RlOgo+PiBBdCBCWFQgRFNJLCBQSVBFIHJlZ2lz dGVycyBhcmUgaW5hY3RpdmUuIFNvIHdlIGNhbid0IGdldCB0aGUKPj4gUElQRSdzIG1vZGUgcGFy YW1ldGVycyBmcm9tIHRoZW0uIFRoZSBwb3NzaWJsZSBvcHRpb24gaXMKPj4gcmV0cml2aW5nIHRo ZW0gZnJvbSB0aGUgUE9SVCByZWdpc3RlcnMuCj4+Cj4+IFRoZSByZXF1aXJlZCBjaGFuZ2VzIGFy ZSBhZGRlZCBmb3IgQlhUIGluIGludGVsX2RzaV9nZXRfY29uZmlnCj4+IChlbmNvZGVyLT5nZXRf Y29uZmlnKS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNA aW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50 ZWwuY29tPgo+PiAtLS0KPj4gUHJldmlvdXNseSByZXZpZXdlZCBhdCBodHRwczovL3BhdGNod29y ay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvNzUzMDEvCj4+Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgICAgIHwgICAgMSArCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgICA0NCArKysrKysrKysrKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaS5jICAgICB8ICAxMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4IGM4MzljZTkuLmRhM2NkZWYgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAtODIxMCw2ICs4MjEwLDcgQEAgZW51bSBza2xfZGlzcF9w b3dlcl93ZWxscyB7Cj4+ICAgI2RlZmluZSAgQlhUX1BJUEVfU0VMRUNUX1NISUZUCQkJCTcKPj4g ICAjZGVmaW5lICBCWFRfUElQRV9TRUxFQ1RfTUFTSwkJCQkoNyA8PCA3KQo+PiAgICNkZWZpbmUg IEJYVF9QSVBFX1NFTEVDVChwaXBlKQkJCQkoKHBpcGUpIDw8IDcpCj4+ICsjZGVmaW5lICBCWFRf UE9SVF9UT19QSVBFKGN0cmwpCQkoKGN0cmwgJiBCWFRfUElQRV9TRUxFQ1RfTUFTSykgPj4gNykK Pj4gICAKPj4gICAjZGVmaW5lIF9NSVBJQV9EQVRBX0FERFJFU1MJCShkZXZfcHJpdi0+bWlwaV9t bWlvX2Jhc2UgKyAweGIxMDgpCj4+ICAgI2RlZmluZSBfTUlQSUNfREFUQV9BRERSRVNTCQkoZGV2 X3ByaXYtPm1pcGlfbW1pb19iYXNlICsgMHhiOTA4KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4+IGluZGV4IDI5YWE2NGIuLmMwNjI3ZDYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTk5NDEsMTEgKzk5NDEsNDAgQEAgc3RhdGljIHZv aWQgaGFzd2VsbF9nZXRfZGRpX3BvcnRfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ ICAgCX0KPj4gICB9Cj4+ICAgCj4+ICtzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYnh0X2dldF9kc2lf ZW5jb2Rlcl9mb3JfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gKwkJCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+PiArewo+PiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyOwo+PiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaTsKPj4gKwllbnVt IHBvcnQgcG9ydDsKPj4gKwl1MzIgdG1wOwo+PiArCj4+ICsJZm9yX2VhY2hfaW50ZWxfZW5jb2Rl cihkZXYsIGludGVsX2VuY29kZXIpIHsKPj4gKwkJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0g SU5URUxfT1VUUFVUX0RTSSkgewo+PiArCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgm aW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4+ICsJCQlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRl bF9kc2ktPnBvcnRzKSB7Cj4+ICsJCQkJaWYgKCEoSTkxNV9SRUFEKEJYVF9NSVBJX1BPUlRfQ1RS TChwb3J0KSkgJgo+PiArCQkJCQkJCQlEUElfRU5BQkxFKSkKPj4gKwkJCQkJYnJlYWs7Cj4+ICsK Pj4gKwkJCQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPj4gKwkJCQlpZiAoKHRt cCAmIEJYVF9QSVBFX1NFTEVDVF9NQVNLKSA9PQo+PiArCQkJCQkJQlhUX1BJUEVfU0VMRUNUKGNy dGMtPnBpcGUpKQo+PiArCQkJCQlyZXR1cm4gaW50ZWxfZW5jb2RlcjsKPj4gKwkJCX0KPj4gKwkJ fQo+PiArCX0KPj4gKwlyZXR1cm4gTlVMTDsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBib29sIGhh c3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgIAkJCQkg ICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+PiAgIHsKPj4gICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+PiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArCXN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLCAqYXR0YWNoZWRfZW5jb2RlciA9IE5VTEw7Cj4+ICAg CWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+PiAgIAl1bnNp Z25lZCBsb25nIHBvd2VyX2RvbWFpbl9tYXNrOwo+PiAgIAlib29sIGFjdGl2ZTsKPj4gQEAgLTk5 NjUsNiArOTk5NCwyMSBAQCBzdGF0aWMgYm9vbCBoYXN3ZWxsX2dldF9waXBlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gICAJCVdBUk5fT04oYWN0aXZlICYmIHBpcGVfY29uZmln LT5oYXNfZHNpX2VuY29kZXIpOwo+PiAgIAkJaWYgKHBpcGVfY29uZmlnLT5oYXNfZHNpX2VuY29k ZXIpCj4+ICAgCQkJYWN0aXZlID0gdHJ1ZTsKPj4gKwo+PiArCQlmb3JfZWFjaF9lbmNvZGVyX29u X2NydGMoZGV2LCAmY3J0Yy0+YmFzZSwgaW50ZWxfZW5jb2RlcikKPj4gKwkJCWF0dGFjaGVkX2Vu Y29kZXIgPSBpbnRlbF9lbmNvZGVyOwo+PiArCj4+ICsJCS8qCj4+ICsJCSAqIGF0dGFjaGVkX2Vu Y29kZXIgd2lsbCBiZSBOVUxMLCBpZiB0aGVyZSBpcyBubyBtb2Rlc2V0IGZyb20KPj4gKwkJICog dGhlIGtlcm5lbCBib290dXAuCj4+ICsJCSAqLwo+PiArCQlpZiAoIWF0dGFjaGVkX2VuY29kZXIg JiYgcGlwZV9jb25maWctPmhhc19kc2lfZW5jb2RlcikKPj4gKwkJCWF0dGFjaGVkX2VuY29kZXIg PQo+PiArCQkJCWJ4dF9nZXRfZHNpX2VuY29kZXJfZm9yX2NydGMoY3J0YywgcGlwZV9jb25maWcp Owo+PiArCj4+ICsJCWlmIChhdHRhY2hlZF9lbmNvZGVyICYmIGF0dGFjaGVkX2VuY29kZXItPmdl dF9jb25maWcpCj4+ICsJCQlhdHRhY2hlZF9lbmNvZGVyLT5nZXRfY29uZmlnKGF0dGFjaGVkX2Vu Y29kZXIsCj4+ICsJCQkJCQkJCXBpcGVfY29uZmlnKTsKPiBObywgeW91IG11c3Qgbm90IGFkZCBh IG5ldyBjYWxsIHRvIHRoZSBlbmNvZGVyLT5nZXRfY29uZmlnKCkgaG9vay4KPgo+IGhhc3dlbGxf Z2V0X3BpcGVfY29uZmlnKCkgaXMgY2FsbGVkIHRocm91Z2ggdGhlCj4gZGV2X3ByaXYtPmRpc3Bs YXkuZ2V0X3BpcGVfY29uZmlnKCkgZnVuY3Rpb24gcG9pbnRlci4gVGhpcyBoYXBwZW5zIGluCj4g Y2hlY2tfY3J0Y19zdGF0ZSgpIGFuZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoKS4g SW4gYm90aCBwbGFjZXMsCj4gZW5jb2Rlci0+Z2V0X2NvbmZpZygpIGlzIGNhbGxlZCBhZnRlcndh cmRzLCBpZiBlbmNvZGVyLT5nZXRfaHdfc3RhdGUoKQo+IHJldHVybnMgdHJ1ZSBmb3IgdGhlIGVu Y29kZXIuCj4KPiBUaGUgaW5mcmFzdHJ1Y3R1cmUgaXMgdGhlcmUsIHlvdSBvbmx5IG5lZWQgdG8g dXBkYXRlIERTSSAtPmdldF9jb25maWcoKS4KVGhhbmtzIGZvciBjYXRjaGluZyBzdWNoIGEgcmVk dW5kYW50IGxpbmVzLiBkcm9wcGluZyB0aGVtLgo+Cj4+ICAgCX0KPj4gICAKPj4gICAJaWYgKCFh Y3RpdmUpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+IGluZGV4IDBkZTc0ZTEuLjY5YTgw MWUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+IEBAIC03NDAsMTQgKzc0MCwx MTggQEAgb3V0X3B1dF9wb3dlcjoKPj4gICAJcmV0dXJuIGFjdGl2ZTsKPj4gICB9Cj4+ICAgCj4+ ICsvKiByZXR1cm4gcGl4ZWxzIGVxdXZhbGVudCB0byB0eGJ5dGVjbGtocyAqLwo+PiArc3RhdGlj IHUxNiBwaXhlbHNfZnJvbV90eGJ5dGVjbGtocyh1MTYgY2xrX2hzLCBpbnQgYnBwLCBpbnQgbGFu ZV9jb3VudCwKPj4gKwkJICAgICAgIHUxNiBidXJzdF9tb2RlX3JhdGlvKQo+PiArewo+PiArCXJl dHVybiBESVZfUk9VTkRfVVAoKGNsa19ocyAqIGxhbmVfY291bnQgKiA4ICogMTAwKSwKPj4gKwkJ CQkJCShicHAgKiBidXJzdF9tb2RlX3JhdGlvKSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lk IGJ4dF9kc2lfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ PiArCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4+ICt7Cj4+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+PiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICsJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+PiArCQkJCQkmcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKPj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPQo+ PiArCQkJCWVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+PiArCXVuc2lnbmVkIGlu dCBicHAgPSBtaXBpX2RzaV9waXhlbF9mb3JtYXRfdG9fYnBwKGludGVsX2RzaS0+cGl4ZWxfZm9y bWF0KTsKPj4gKwl1bnNpZ25lZCBpbnQgbGFuZV9jb3VudCA9IGludGVsX2RzaS0+bGFuZV9jb3Vu dDsKPj4gKwllbnVtIHBvcnQgcG9ydDsKPj4gKwllbnVtIHBpcGUgZHNpX3BpcGU7Cj4+ICsJdTE2 IGhhY3RpdmUsIGhmcCwgaHN5bmMsIGhicCwgdmZwLCB2c3luYywgdmJwOwo+PiArCXVpbnQzMl90 IHRtcDsKPj4gKwo+PiArCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMp IHsKPj4gKwkJaWYgKCEoSTkxNV9SRUFEKEJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSkgJiBEUElf RU5BQkxFKSkKPj4gKwkJCWNvbnRpbnVlOwo+IFBsZWFzZSB1c2UgdGhlIGxvb3AganVzdCBmb3Ig ZmlndXJpbmcgb3V0IHRoZSBwb3J0IHRvIHVzZSBmb3IgcmVhZGluZwo+IHRoZSByZWdpc3RlcnMu IEFmdGVyIHRoYXQsIHlvdSBjYW4gZG8gdGhlIHJlc3QgYXQgYSBsb3dlciBpbmRlbnRhdGlvbgo+ IGxldmVsLCBhbmQgaXQncyBjbGVhcmVyIHRoZSByZXN0IG9ubHkgZ2V0cyBkb25lIG9uY2UsIGZv ciBvbmUgcG9ydC4KSSB0YWtlIHRoaXMgc3VnZ2VzdGlvbiBmb3IgcmVkdWNpbmcgdGhlIGluZGVu dGF0aW9uIGxldmVsLiBpbmNsdWRpbmcgaXQgCm5leHQgcGF0Y2ggdmVyLgo+Cj4+ICsKPj4gKwkJ LyogSW4gdGVybXMgb2YgcGl4ZWxzICovCj4+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfaGRpc3Bs YXkgPQo+PiArCQkJCQlJOTE1X1JFQUQoQlhUX01JUElfVFJBTlNfSEFDVElWRShwb3J0KSk7Cj4+ ICsJCWFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXkgPQo+PiArCQkJCQlJOTE1X1JFQUQoQlhU X01JUElfVFJBTlNfVkFDVElWRShwb3J0KSk7Cj4+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfdnRv dGFsID0KPj4gKwkJCQkJSTkxNV9SRUFEKEJYVF9NSVBJX1RSQU5TX1ZUT1RBTChwb3J0KSk7Cj4+ ICsKPj4gKwkJaGFjdGl2ZSA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXk7Cj4+ICsJCWhm cCA9IEk5MTVfUkVBRChNSVBJX0hGUF9DT1VOVChwb3J0KSk7Cj4+ICsKPj4gKwkJLyoKPj4gKwkJ ICogbWVhbmluZ2Z1bCBmb3IgdmlkZW8gbW9kZSBub24tYnVyc3Qgc3luYyBwdWxzZSBtb2RlIG9u bHksCj4+ICsJCSAqIGNhbiBiZSB6ZXJvIGZvciBub24tYnVyc3Qgc3luYyBldmVudHMgYW5kIGJ1 cnN0IG1vZGVzCj4+ICsJCSAqLwo+PiArCQloc3luYyA9IEk5MTVfUkVBRChNSVBJX0hTWU5DX1BB RERJTkdfQ09VTlQocG9ydCkpOwo+PiArCQloYnAgPSBJOTE1X1JFQUQoTUlQSV9IQlBfQ09VTlQo cG9ydCkpOwo+PiArCj4+ICsJCS8qIGhvcml6b250YWwgdmFsdWVzIGFyZSBpbiB0ZXJtcyBvZiBo aWdoIHNwZWVkIGJ5dGUgY2xvY2sgKi8KPj4gKwkJaGZwID0gcGl4ZWxzX2Zyb21fdHhieXRlY2xr aHMoaGZwLCBicHAsIGxhbmVfY291bnQsCj4+ICsJCQkJCQlpbnRlbF9kc2ktPmJ1cnN0X21vZGVf cmF0aW8pOwo+PiArCQloc3luYyA9IHBpeGVsc19mcm9tX3R4Ynl0ZWNsa2hzKGhzeW5jLCBicHAs IGxhbmVfY291bnQsCj4+ICsJCQkJCQlpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pOwo+PiAr CQloYnAgPSBwaXhlbHNfZnJvbV90eGJ5dGVjbGtocyhoYnAsIGJwcCwgbGFuZV9jb3VudCwKPj4g KwkJCQkJCWludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbyk7Cj4+ICsKPj4gKwkJaWYgKGludGVs X2RzaS0+ZHVhbF9saW5rKSB7Cj4+ICsJCQloZnAgKj0gMjsKPj4gKwkJCWhzeW5jICo9IDI7Cj4+ ICsJCQloYnAgKj0gMjsKPj4gKwkJfQo+PiArCj4+ICsJCS8qIHZlcnRpY2FsIHZhbHVlcyBhcmUg aW4gdGVybXMgb2YgbGluZXMgKi8KPj4gKwkJdmZwID0gSTkxNV9SRUFEKE1JUElfVkZQX0NPVU5U KHBvcnQpKTsKPj4gKwkJdnN5bmMgPSBJOTE1X1JFQUQoTUlQSV9WU1lOQ19QQURESU5HX0NPVU5U KHBvcnQpKTsKPj4gKwkJdmJwID0gSTkxNV9SRUFEKE1JUElfVkJQX0NPVU5UKHBvcnQpKTsKPj4g Kwo+PiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbCA9IGhhY3RpdmUgKyBoZnAgKyBoc3lu YyArIGhicDsKPj4gKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19zdGFydCA9Cj4+ICsJCQkJ CWhmcCArIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXk7Cj4+ICsJCWFkanVzdGVkX21vZGUt PmNydGNfaHN5bmNfZW5kID0KPj4gKwkJCQkJaHN5bmMgKyBhZGp1c3RlZF9tb2RlLT5jcnRjX2hz eW5jX3N0YXJ0Owo+PiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hibGFua19zdGFydCA9IGFkanVz dGVkX21vZGUtPmNydGNfaGRpc3BsYXk7Cj4+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfaGJsYW5r X2VuZCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+PiArCj4+ICsJCWFkanVzdGVkX21v ZGUtPmNydGNfdnN5bmNfc3RhcnQgPQo+PiArCQkJCQl2ZnAgKyBhZGp1c3RlZF9tb2RlLT5jcnRj X3ZkaXNwbGF5Owo+PiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX2VuZCA9Cj4+ICsJCQkJ CXZzeW5jICsgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192c3luY19zdGFydDsKPj4gKwkJYWRqdXN0ZWRf bW9kZS0+Y3J0Y192Ymxhbmtfc3RhcnQgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5Owo+ PiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZibGFua19lbmQgPSBhZGp1c3RlZF9tb2RlLT5jcnRj X3Z0b3RhbDsKPj4gKwo+PiArCQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPQo+PiArCQkJbWlwaV9k c2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChpbnRlbF9kc2ktPnBpeGVsX2Zvcm1hdCk7Cj4gSSBndWVz cyB0aGlzIHNob3VsZCBiZSByZWFkIGZyb20gdGhlIHJlZ2lzdGVyLgpDYW4gYmUgcmVhZCBmcm9t IHRoZSBwb3J0IHJlZ2lzdGVyLiBXaWxsIGRvIGl0Lgo+Cj4+ICsKPj4gKwkJZHNpX3BpcGUgPSBC WFRfUE9SVF9UT19QSVBFKEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpKTsKPj4gKwkJaWYgKGRz aV9waXBlID4gUElQRV9DKSB7Cj4+ICsJCQlEUk1fRVJST1IoIkludmFsaWQgUElQRSBjb25maWd1 cmVkXG4iKTsKPj4gKwkJCWJyZWFrOwo+PiArCQl9Cj4+ICsKPj4gKwkJdG1wID0gSTkxNV9SRUFE KFBJUEVTUkMoZHNpX3BpcGUpKTsKPj4gKwkJcGlwZV9jb25maWctPnBpcGVfc3JjX2ggPSAodG1w ICYgMHhmZmZmKSArIDE7Cj4+ICsJCXBpcGVfY29uZmlnLT5waXBlX3NyY193ID0gKCh0bXAgPj4g MTYpICYgMHhmZmZmKSArIDE7Cj4+ICsKPj4gKwkJcGlwZV9jb25maWctPmJhc2UubW9kZS52ZGlz cGxheSA9IHBpcGVfY29uZmlnLT5waXBlX3NyY19oOwo+PiArCQlwaXBlX2NvbmZpZy0+YmFzZS5t b2RlLmhkaXNwbGF5ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX3c7Cj4gVGhpcyBwYXJ0IGlzIGFs cmVhZHkgY292ZXJlZCBieSBpbnRlbF9nZXRfcGlwZV9zcmNfc2l6ZSgpIGZvciBEU0kuCkRyb3Bw aW5nIHRob3NlIGxpbmVzIGZyb20gZ2V0X2NvbmZpZy4KPgo+Cj4gQlIsCj4gSmFuaS4KPgo+Cj4+ ICsJCWJyZWFrOwo+PiArCX0KPj4gK30KPj4gKwo+PiArCj4+ICAgc3RhdGljIHZvaWQgaW50ZWxf ZHNpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCQkJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4+ICAgewo+PiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPj4gICAJdTMyIHBjbGs7Cj4+ICAg CURSTV9ERUJVR19LTVMoIlxuIik7Cj4+ICAgCj4+ICAgCXBpcGVfY29uZmlnLT5oYXNfZHNpX2Vu Y29kZXIgPSB0cnVlOwo+PiAgIAo+PiArCWlmIChJU19CUk9YVE9OKGRldikpCj4+ICsJCWJ4dF9k c2lfZ2V0X3BpcGVfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPj4gKwo+PiAgIAkvKgo+ PiAgIAkgKiBEUExMX01EIGlzIG5vdCB1c2VkIGluIGNhc2Ugb2YgRFNJLCByZWFkaW5nIHdpbGwg Z2V0IHNvbWUgZGVmYXVsdCB2YWx1ZQo+PiAgIAkgKiBzZXQgZHBsbF9tZCA9IDAKCi0tIApUaGFu a3MsCi0tUmFtCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK