From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [BXT MIPI PATCH v3 05/14] drm/i915/bxt: DSI encoder support in CRTC modeset Date: Fri, 18 Sep 2015 17:18:27 +0300 Message-ID: <87vbb7q098.fsf@intel.com> References: <1441116710-14118-1-git-send-email-uma.shankar@intel.com> <1441116710-14118-6-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 861DD6EDEC for ; Fri, 18 Sep 2015 07:15:50 -0700 (PDT) In-Reply-To: <1441116710-14118-6-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 T24gVHVlLCAwMSBTZXAgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t Pgo+Cj4gU0tMIGFuZCBCWFQgcXVhbGlmaWVzIHRoZSBIQVNfRERJKCkgY2hlY2ssIGFuZCBoZW5j ZSBoYXN3ZWxsCj4gbW9kZXNldCBmdW5jdGlvbnMgYXJlIHJlLXVzZWQgZm9yIG1vZGVzZXQgc2Vx dWVuY2UuIEJ1dCBEREkKPiBpbnRlcmZhY2UgZG9lc24ndCBpbmNsdWRlIHN1cHBvcnQgZm9yIERT SS4KPiBUaGlzIHBhdGNoIGFkZHM6Cj4gMS4gY2FzZXMgZm9yIERTSSBlbmNvZGVyLCBpbiB0aG9z ZSBtb2Rlc2V0IGZ1bmN0aW9ucyBhbmQgYWxsb3dzCj4gICAgYSBDUlRDIG1vZGVzZXQKPiAyLiBB ZGRzIGNhbGwgdG8gcHJlX3BsbCBlbmFibGVkIGZyb20gQ1JUQyBtb2Rlc2V0IGZ1bmN0aW9uLiBO b3RoaW5nCj4gICAgbmVlZHMgdG8gYmUgZG9uZSBhcyBzdWNoIGluIENSVEMgZm9yIERTSSBlbmNv ZGVyLCBhcyBQTEwsIGNsb2NrCj4gICAgYW5kIGFuZCB0cmFuc2NvZGVyIHByb2dyYW1taW5nIHdp bGwgYmUgdGFrZW4gY2FyZSBpbiBlbmNvZGVyJ3MKPiAgICBwcmVfZW5hYmxlIGFuZCBwcmVfcGxs X2VuYWJsZSBmdW5jdGlvbi4KPgo+IHYyOiBGaXhlZCBKYW5pJ3MgcmV2aWV3IGNvbW1lbnRzLiBB ZGRlZCBJTlZBTElEX1BPUlQgZm9yIG5vbiBEREkKPiAgICAgZW5jb2RlciBsaWtlIERTSSBmb3Ig cGxhdGZvcm1zIGhhdmluZyBIQVNfRERJIGFzIHRydWUuCj4KPiB2MzogUmViYXNlZCBvbiBsYXRl c3QgZHJtLW5pZ2h0bHkgYnJhbmNoLiBBZGRlZCBhIFdBUk5fT04gZm9yIGludmFsaWQKPiAgICAg ZW5jb2Rlci4KPgo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hh cm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJA aW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg IHwgICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgfCAgIDI5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyAgfCAgIDE5ICsrKysrKysrKysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgICB8ICAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9vcHJlZ2lvbi5jIHwgICAgMyArKy0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggZmQxZGU0NS4uNzhkMzFjNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0x NDIsNiArMTQyLDcgQEAgZW51bSBwbGFuZSB7Cj4gICNkZWZpbmUgc3ByaXRlX25hbWUocCwgcykg KChwKSAqIElOVEVMX0lORk8oZGV2KS0+bnVtX3Nwcml0ZXNbKHApXSArIChzKSArICdBJykKPiAg Cj4gIGVudW0gcG9ydCB7Cj4gKwlQT1JUX0lOVkFMSUQgPSAtMSwKPiAgCVBPUlRfQSA9IDAsCj4g IAlQT1JUX0IsCj4gIAlQT1JUX0MsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCBj YWNiMDdiLi41ZDVhYWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMjI3 LDYgKzIyNywxMCBAQCBzdGF0aWMgdm9pZCBkZGlfZ2V0X2VuY29kZXJfcG9ydChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9P VVRQVVRfQU5BTE9HKSB7Cj4gIAkJKmRpZ19wb3J0ID0gTlVMTDsKPiAgCQkqcG9ydCA9IFBPUlRf RTsKPiArCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJKSB7Cj4gKwkJKmRpZ19w b3J0ID0gTlVMTDsKPiArCQkqcG9ydCA9IFBPUlRfSU5WQUxJRDsKPiArCQlEUk1fREVCVUdfS01T KCJFbmNvZGVyIHR5cGU6IERTSS4gUmV0dXJuaW5nLi4uXG4iKTsKClBsZWFzZSByZW1pbmQgbWUg YWdhaW4gd2hhdCBhcmUgdGhlIGxlZ2l0aW1hdGUgcGF0aHMgdG8gZ2V0IGhlcmUgd2l0aApEU0k/ CgpXaXRoIGFsbCB0aGUgY2hhbmdlcyBhbmQgd2FybnMgYWNyb3NzIHRoZSBkcml2ZXIsIEknbSBi ZWdpbm5pbmcgdG8gdGhpbmsKd2Ugc2hvdWxkIGhhdmUgYSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rp b24gdGhhdCBhY2NlcHRzIERTSSwgYW5kIGFub3RoZXIKb25lIHRoYXQgKGNhbGxzIHRoZSBvdGhl ciBvbmUpIGFuZCBXQVJOUyBvbiBEU0ksIGFuZCB0aGF0IHNob3VsZCBiZQpjYWxsZWQgb24gYWxs IHBhdGhzIHRoYXQgc2hvdWxkIG5ldmVyIGVuY291bnRlciBhIERTSSBlbmNvZGVyLgoKVGhlIHBy b2xpZmVyYXRpb24gb2YgV0FSTlMgYWxsIG92ZXIgdGhlIHBsYWNlIGlzIG5vdCB2ZXJ5IG5pY2Uu CgpJJ20gc29ycnksIEkga25vdyB0aGlzIGlzIG5vdCB0aGUgcmV2aWV3IEkgZ2F2ZSBwcmV2aW91 c2x5IG9uIHRoaXMuCgoKQlIsCkphbmkuCgoKPiAgCX0gZWxzZSB7Cj4gIAkJRFJNX0VSUk9SKCJJ bnZhbGlkIERESSBlbmNvZGVyIHR5cGUgJWRcbiIsIHR5cGUpOwo+ICAJCUJVRygpOwo+IEBAIC0z OTIsNiArMzk2LDExIEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGkoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCj4gIAkJZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5jb2RlciwgJmludGVs X2RpZ19wb3J0LCAmcG9ydCk7Cj4gIAo+ICsJCWlmIChwb3J0ID09IFBPUlRfSU5WQUxJRCkgewo+ ICsJCQlXQVJOX09OKDEpOwo+ICsJCQljb250aW51ZTsKPiArCQl9Cj4gKwo+ICAJCWlmICh2aXNp dGVkW3BvcnRdKQo+ICAJCQljb250aW51ZTsKPiAgCj4gQEAgLTk4MCw2ICs5ODksOCBAQCBzdGF0 aWMgdm9pZCBieHRfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7 Cj4gIAl1aW50MzJfdCBkcGxsID0gcG9ydDsKPiAgCj4gKwlXQVJOX09OKHBvcnQgPT0gUE9SVF9J TlZBTElEKTsKPiArCj4gIAlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9Cj4gIAkJYnh0X2NhbGNf cGxsX2xpbmsoZGV2X3ByaXYsIGRwbGwpOwo+ICAKPiBAQCAtMTU3Miw2ICsxNTgzLDggQEAgdm9p ZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAlpbnQgdHlwZSA9IGludGVsX2VuY29kZXItPnR5cGU7Cj4gIAl1aW50MzJfdCB0ZW1wOwo+ ICAKPiArCVdBUk5fT04ocG9ydCA9PSBQT1JUX0lOVkFMSUQpOwo+ICsKPiAgCS8qIEVuYWJsZSBU UkFOU19ERElfRlVOQ19DVEwgZm9yIHRoZSBwaXBlIHRvIHdvcmsgaW4gSERNSSBtb2RlICovCj4g IAl0ZW1wID0gVFJBTlNfRERJX0ZVTkNfRU5BQkxFOwo+ICAJdGVtcCB8PSBUUkFOU19ERElfU0VM RUNUX1BPUlQocG9ydCk7Cj4gQEAgLTE2ODQsNiArMTY5Nyw4IEBAIGJvb2wgaW50ZWxfZGRpX2Nv bm5lY3Rvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVj dG9yKQo+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4g IAl1aW50MzJfdCB0bXA7Cj4gIAo+ICsJV0FSTl9PTihwb3J0ID09IFBPUlRfSU5WQUxJRCk7Cj4g Kwo+ICAJcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRl bF9lbmNvZGVyKTsKPiAgCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGRldl9w cml2LCBwb3dlcl9kb21haW4pKQo+ICAJCXJldHVybiBmYWxzZTsKPiBAQCAtMTczMCw2ICsxNzQ1 LDggQEAgYm9vbCBpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJdTMyIHRtcDsKPiAgCWludCBpOwo+ICAKPiArCVdBUk5fT04ocG9ydCA9PSBQ T1JUX0lOVkFMSUQpOwo+ICsKPiAgCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9w b3dlcl9kb21haW4oZW5jb2Rlcik7Cj4gIAlpZiAoIWludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5h YmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTE3 NzksMTEgKzE3OTYsMTQgQEAgYm9vbCBpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpj cnRjID0gJmludGVsX2NydGMtPmJhc2U7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9 IGludGVsX2RkaV9nZXRfY3J0Y19lbmNvZGVyKGNydGMpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBp bnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKPiAgCWVudW0gdHJhbnNj b2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7 Cj4gIAo+ICsJV0FSTl9PTihwb3J0ID09IFBPUlRfSU5WQUxJRCk7Cj4gKwo+ICAJaWYgKGNwdV90 cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKQo+ICAJCUk5MTVfV1JJVEUoVFJBTlNfQ0xLX1NF TChjcHVfdHJhbnNjb2RlciksCj4gIAkJCSAgIFRSQU5TX0NMS19TRUxfUE9SVChwb3J0KSk7Cj4g QEAgLTE4NzAsNiArMTg5MCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAJaW50IHR5cGUgPSBpbnRlbF9l bmNvZGVyLT50eXBlOwo+ICAJaW50IGhkbWlfbGV2ZWw7Cj4gIAo+ICsJV0FSTl9PTihwb3J0ID09 IFBPUlRfSU5WQUxJRCk7Cj4gKwo+ICAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7 Cj4gIAkJaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPiBAQCAtMTk0Nyw2ICsxOTY5LDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlcikKPiAgCXVpbnQzMl90IHZhbDsKPiAgCWJvb2wgd2FpdCA9IGZhbHNl Owo+ICAKPiArCVdBUk5fT04ocG9ydCA9PSBQT1JUX0lOVkFMSUQpOwo+ICsKPiAgCXZhbCA9IEk5 MTVfUkVBRChERElfQlVGX0NUTChwb3J0KSk7Cj4gIAlpZiAodmFsICYgRERJX0JVRl9DVExfRU5B QkxFKSB7Cj4gIAkJdmFsICY9IH5ERElfQlVGX0NUTF9FTkFCTEU7Cj4gQEAgLTE5ODYsNiArMjAx MCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIpCj4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rl cl9wb3J0KGludGVsX2VuY29kZXIpOwo+ICAJaW50IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBl Owo+ICAKPiArCVdBUk5fT04ocG9ydCA9PSBQT1JUX0lOVkFMSUQpOwo+ICsKPiAgCWlmICh0eXBl ID09IElOVEVMX09VVFBVVF9IRE1JKSB7Cj4gIAkJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPQo+ICAJCQllbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gQEAgLTI3 MzIsNiArMjc1OCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWludCBwb3J0ID0gaW50ZWxfZGRpX2dldF9l bmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gIAo+ICAJV0FSTih0eXBlID09IElOVEVMX09VVFBVVF9V TktOT1dOLCAiY29tcHV0ZV9jb25maWcoKSBvbiB1bmtub3duIG91dHB1dCFcbiIpOwo+ICsJV0FS Tl9PTihwb3J0ID09IFBPUlRfSU5WQUxJRCk7Cj4gIAo+ICAJaWYgKHBvcnQgPT0gUE9SVF9BKQo+ ICAJCXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRURQOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBiOGUwMzEwLi43ZjM5Y2M5IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC00OTkxLDYgKzQ5OTEsNyBA QCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiArCWJvb2wgaXNfZHNpID0gaW50 ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfRFNJKTsKPiAgCWludCBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gIAlXQVJOX09OKCFjcnRjLT5zdGF0ZS0+ZW5h YmxlKTsKPiBAQCAtNTAzMyw3ICs1MDM0LDggQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xp bmtfdHJhaW4oY3J0Yyk7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2Nr KGludGVsX2NydGMpOwo+ICsJaWYgKCFpc19kc2kpCj4gKwkJaW50ZWxfZGRpX2VuYWJsZV9waXBl X2Nsb2NrKGludGVsX2NydGMpOwo+ICAKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA5 KQo+ICAJCXNreWxha2VfcGZpdF91cGRhdGUoaW50ZWxfY3J0YywgMSk7Cj4gQEAgLTUwNDksNyAr NTA1MSw4IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICAJaW50ZWxfY3J0Y19sb2FkX2x1dChjcnRjKTsKPiAgCj4gIAlpbnRlbF9kZGlf c2V0X3BpcGVfc2V0dGluZ3MoY3J0Yyk7Cj4gLQlpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJf ZnVuYyhjcnRjKTsKPiArCWlmICghaXNfZHNpKQo+ICsJCWludGVsX2RkaV9lbmFibGVfdHJhbnNj b2Rlcl9mdW5jKGNydGMpOwo+ICAKPiAgCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwo+ ICAJaW50ZWxfZW5hYmxlX3BpcGUoaW50ZWxfY3J0Yyk7Cj4gQEAgLTUwNTcsMTMgKzUwNjAsMTYg QEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCj4gIAkJbHB0X3Bj aF9lbmFibGUoY3J0Yyk7Cj4gIAo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rl cl9pc19tc3QpCj4gKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5kcF9lbmNvZGVyX2lzX21zdCAm JiAhaXNfZHNpKQo+ICAJCWludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjcnRjLCB0cnVl KTsKPiAgCj4gIAlhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwo+ICAJZHJtX2NydGNfdmJs YW5rX29uKGNydGMpOwo+ICAKPiAgCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMs IGVuY29kZXIpIHsKPiArCQlpZiAoZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUpCj4gKwkJCWVuY29k ZXItPnByZV9wbGxfZW5hYmxlKGVuY29kZXIpOwo+ICsKPiAgCQllbmNvZGVyLT5lbmFibGUoZW5j b2Rlcik7Cj4gIAkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoZW5jb2RlciwgdHJ1ZSk7 Cj4gIAl9Cj4gQEAgLTUxNTksNiArNTE2NSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19k aXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+ Y29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPiArCWJvb2wgaXNfZHNpID0gaW50ZWxfcGlwZV9oYXNf dHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfRFNJKTsKPiAgCj4gIAlpZiAoIWludGVsX2Ny dGMtPmFjdGl2ZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTUxNzksNyArNTE4Niw4IEBAIHN0YXRpYyB2 b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCWlmIChp bnRlbF9jcnRjLT5jb25maWctPmRwX2VuY29kZXJfaXNfbXN0KQo+ICAJCWludGVsX2RkaV9zZXRf dmNfcGF5bG9hZF9hbGxvYyhjcnRjLCBmYWxzZSk7Cj4gIAo+IC0JaW50ZWxfZGRpX2Rpc2FibGVf dHJhbnNjb2Rlcl9mdW5jKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rlcik7Cj4gKwlpZiAoIWlzX2Rz aSkKPiArCQlpbnRlbF9kZGlfZGlzYWJsZV90cmFuc2NvZGVyX2Z1bmMoZGV2X3ByaXYsIGNwdV90 cmFuc2NvZGVyKTsKPiAgCj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gOSkKPiAgCQlz a3lsYWtlX3BmaXRfdXBkYXRlKGludGVsX2NydGMsIDApOwo+IEBAIC01MTg4LDcgKzUxOTYsOCBA QCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAllbHNlCj4gIAkJTUlTU0lOR19DQVNFKElOVEVMX0lORk8oZGV2KS0+Z2VuKTsKPiAgCj4g LQlpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKGludGVsX2NydGMpOwo+ICsJaWYgKCFpc19k c2kpCj4gKwkJaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhpbnRlbF9jcnRjKTsKPiAgCj4g IAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKPiAgCQlscHRfZGlz YWJsZV9wY2hfdHJhbnNjb2RlcihkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBf bXN0LmMKPiBpbmRleCA2MDBhZmRiLi5kNjkxODZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBfbXN0LmMKPiBAQCAtMTczLDYgKzE3Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9w cmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgCWlmIChp bnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyA9PSAwKSB7Cj4gIAkJZW51bSBwb3J0IHBvcnQgPSBp bnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNvZGVyKTsKPiArCQlXQVJOX09OKHBvcnQgPT0g UE9SVF9JTlZBTElEKTsKPiAgCj4gIAkJLyogRklYTUU6IGFkZCBzdXBwb3J0IGZvciBTS0wgKi8K PiAgCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ByZWdpb24uYwo+IGluZGV4IDQ4MTMzNzQuLjMyNmFhNmIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPiBAQCAtMzM1LDcgKzMzNSw3IEBAIGludCBpbnRlbF9v cHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciwKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3Bv cnQoaW50ZWxfZW5jb2Rlcik7Cj4gLQlpZiAocG9ydCA9PSBQT1JUX0UpIHsKPiArCWlmICgocG9y dCA9PSBQT1JUX0UpIHx8IChwb3J0ID09IFBPUlRfSU5WQUxJRCkpIHsKPiAgCQlwb3J0ID0gMDsK PiAgCX0gZWxzZSB7Cj4gIAkJcGFybSB8PSAxIDw8IHBvcnQ7Cj4gQEAgLTM1Niw2ICszNTYsNyBA QCBpbnQgaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIsCj4gIAkJdHlwZSA9IERJU1BMQVlfVFlQRV9FWFRFUk5BTF9GTEFUX1BB TkVMOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRURQOgo+ICsJY2FzZSBJTlRF TF9PVVRQVVRfRFNJOgo+ICAJCXR5cGUgPSBESVNQTEFZX1RZUEVfSU5URVJOQUxfRkxBVF9QQU5F TDsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gLS0gCj4gMS43LjkuNQo+CgotLSAKSmFuaSBO aWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==