From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [BXT MIPI PATCH v5 05/14] drm/i915/bxt: DSI encoder support in CRTC modeset Date: Tue, 06 Oct 2015 09:05:35 +0300 Message-ID: <87pp0sbkgg.fsf@intel.com> References: <87fv1uc3se.fsf@intel.com> <1443718429-32272-1-git-send-email-uma.shankar@intel.com> <20151002123452.GJ3383@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 3527F6E05D for ; Mon, 5 Oct 2015 23:05:48 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" , Daniel Vetter Cc: "Kumar, Shobhit" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAwNSBPY3QgMjAxNSwgIlNoYW5rYXIsIFVtYSIgPHVtYS5zaGFua2FyQGludGVsLmNv bT4gd3JvdGU6Cj4+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj5Gcm9tOiBEYW5pZWwgVmV0 dGVyIFttYWlsdG86ZGFuaWVsLnZldHRlckBmZndsbC5jaF0gT24gQmVoYWxmIE9mIERhbmllbCBW ZXR0ZXIKPj5TZW50OiBGcmlkYXksIE9jdG9iZXIgMiwgMjAxNSA2OjA1IFBNCj4+VG86IFNoYW5r YXIsIFVtYQo+PkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBLdW1hciwgU2hv YmhpdAo+PlN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbQlhUIE1JUEkgUEFUQ0ggdjUgMDUvMTRd IGRybS9pOTE1L2J4dDogRFNJIGVuY29kZXIKPj5zdXBwb3J0IGluIENSVEMgbW9kZXNldAo+Pgo+ Pk9uIFRodSwgT2N0IDAxLCAyMDE1IGF0IDEwOjIzOjQ5UE0gKzA1MzAsIFVtYSBTaGFua2FyIHdy b3RlOgo+Pj4gRnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t Pgo+Pj4KPj4+IFNLTCBhbmQgQlhUIHF1YWxpZmllcyB0aGUgSEFTX0RESSgpIGNoZWNrLCBhbmQg aGVuY2UgaGFzd2VsbCBtb2Rlc2V0Cj4+PiBmdW5jdGlvbnMgYXJlIHJlLXVzZWQgZm9yIG1vZGVz ZXQgc2VxdWVuY2UuIEJ1dCBEREkgaW50ZXJmYWNlIGRvZXNuJ3QKPj4+IGluY2x1ZGUgc3VwcG9y dCBmb3IgRFNJLgo+Pj4gVGhpcyBwYXRjaCBhZGRzOgo+Pj4gMS4gY2FzZXMgZm9yIERTSSBlbmNv ZGVyLCBpbiB0aG9zZSBtb2Rlc2V0IGZ1bmN0aW9ucyBhbmQgYWxsb3dzCj4+PiAgICBhIENSVEMg bW9kZXNldAo+Pj4gMi4gQWRkcyBjYWxsIHRvIHByZV9wbGwgZW5hYmxlZCBmcm9tIENSVEMgbW9k ZXNldCBmdW5jdGlvbi4gTm90aGluZwo+Pj4gICAgbmVlZHMgdG8gYmUgZG9uZSBhcyBzdWNoIGlu IENSVEMgZm9yIERTSSBlbmNvZGVyLCBhcyBQTEwsIGNsb2NrCj4+PiAgICBhbmQgYW5kIHRyYW5z Y29kZXIgcHJvZ3JhbW1pbmcgd2lsbCBiZSB0YWtlbiBjYXJlIGluIGVuY29kZXIncwo+Pj4gICAg cHJlX2VuYWJsZSBhbmQgcHJlX3BsbF9lbmFibGUgZnVuY3Rpb24uCj4+Pgo+Pj4gdjI6IEZpeGVk IEphbmkncyByZXZpZXcgY29tbWVudHMuIEFkZGVkIElOVkFMSURfUE9SVCBmb3Igbm9uIERESQo+ Pj4gICAgIGVuY29kZXIgbGlrZSBEU0kgZm9yIHBsYXRmb3JtcyBoYXZpbmcgSEFTX0RESSBhcyB0 cnVlLgo+Pj4KPj4+IHYzOiBSZWJhc2VkIG9uIGxhdGVzdCBkcm0tbmlnaHRseSBicmFuY2guIEFk ZGVkIGEgV0FSTl9PTiBmb3IgaW52YWxpZAo+Pj4gICAgIGVuY29kZXIuCj4+Pgo+Pj4gdjQ6IFdB Uk5fT04gZm9yIGludmFsaWQgZW5jb2RlciBpcyByZWZhY3RvcmVkIGFzIHBlciBKYW5pJ3Mgc3Vn Z2VzdGlvbi4KPj4+ICAgICBGaXhlZCB0aGUgc2VxdWVuY2UgZm9yIHByZV9wbGxfZW5hYmxlLgo+ Pj4KPj4+IHY1OiBQcm90ZWN0ZWQgRERJIGNvZGUgcGF0aHMgaW4gY2FzZSBvZiBEU0kgZW5jb2Rl ciBjYWxscy4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5r LnNoYXJtYUBpbnRlbC5jb20+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNo YW5rYXJAaW50ZWwuY29tPgo+Pgo+Pk9rLCBhZnRlciB0aGlzIHBhdGNoIHdlIGdldCBzdHVmZiBs aWtlIHRoaXM6Cj4+Cj4+CWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29k ZXIpIHsKPj4JCWlmIChlbmNvZGVyLT5wcmVfcGxsX2VuYWJsZSkKPj4JCQllbmNvZGVyLT5wcmVf cGxsX2VuYWJsZShlbmNvZGVyKTsKPj4JCWlmIChlbmNvZGVyLT5wcmVfZW5hYmxlKQo+PgkJCWVu Y29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Cj4+CX0KPj4KPj4JaWYgKGludGVsX2NydGMtPmNv bmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4+CQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5f cmVwb3J0aW5nKGRldl9wcml2LAo+PlRSQU5TQ09ERVJfQSwKPj4JCQkJCQkgICAgICB0cnVlKTsK Pj4JCWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluKGNydGMpOwo+Pgl9Cj4+Cj4+CWlm ICghaXNfZHNpKQo+PgkJaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2NrKGludGVsX2NydGMpOwo+ Pgo+PjEuIFBsZWFzZSByZW1vdmUgcHJlX3BsbF9lbmFibGUgYWdhaW4sIHdlIGRvbid0IG5lZWQg MiBjYWxsYmFja3MgaW4gZXhhY3RseSB0aGUKPj5zYW1lIHNwb3QuIFllcyB0aGlzIG1pZ2h0IG1l YW4gdGhhdCB5b3UgbmVlZCBzcGVjaWFsIGJ4dF8gdmVyc2lvbnMgb2YgdGhhdCBpbiB0aGUKPj5k c2kgZW5jb2Rlciwgd2UgaGF2ZSB0aGF0IGV2ZXJ5d2hlcmUuCj4+Cj4+Mi4gdGhlIGhhc19wY2hf ZW5jb2RlciBpcyBhbHJlYWR5IHNvbWV0aGluZyBlbmNvZGVyLXNwZWNpZmljIChpdCdzIGV4Y2x1 c2l2ZWx5Cj4+dXNlZCBieSB0aGUgSFNXIExQVCBDUlQgZW5jb2RlcikuIE5vdyB3ZSBoYXZlIGFu b3RoZXIgb25lIG9mIHRob3NlIGZvciB0aGUKPj4haXNfZHNpIGNhc2UuIFRoZXNlIHNwZWNpYWwt Y2FzZXMgc2hvdWxkIGJlIG1vdmVkIGludG8gdGhlCj4+ZW5jb2Rlci0+cHJlX2VuYWJsZSBjYWxs YmFja3MsIHRoYXQncyB3aGF0IHRoZXkncmUgZm9yLgo+Pgo+PkknbSBub3QgZ29pbmcgdG8gYmxv Y2sgdGhlc2UgcGF0Y2hlcyBhcmUgKDE4bW9udGhzIGlzIGFscmVhZHkgcmlkaWN1bG91cyksIGJ1 dCBJCj4+d2FudCB0aGlzIGNsZWFudXAgZG9uZS4gVW1hLCBjYW4geW91IHBscyBvd24gdGhpcz8g SWYgeW91IGNhbid0IGRvIGl0IHlvdXJzZWxmCj4+cGxlYXNlIGVzY2FsYXRlIHRvIEluZHJhbmls IHNvIGhlIGNhbiBmaW5kIHNvbWVvbmUuCj4+Cj4+VGhhbmtzLCBEYW5pZWwKPj4KPgo+IEhpIERh bmllbCwKPiBJIHdpbGwgZGlzY3VzcyB3aXRoIEluZHJhbmlsIGFuZCB3aWxsIGdldCB0aGlzIGRv bmUuIAo+Cj4gVGhhbmtzIGZvciB5b3VyIHN1cHBvcnQgaW4gZ2V0dGluZyB0aGUgdmlkZW8gbW9k ZSBwYXRjaGVzIG1lcmdlZC4KCkknbGwgZG8gdGhlIGNsZWFudXBzLCBkb24ndCB3b3JyeSBhYm91 dCBpdC4KCkJSLApKYW5pLgoKCj4KPiBSZWdhcmRzLAo+IFVtYSBTaGFua2FyCj4KPj4+IC0tLQo+ Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgfCAgICA3ICsrKysrLS0K Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgICAyMSArKysrKysr KysrKysrKystLS0tLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5j IHwgICAgOSArKysrKysrLS0KPj4+ICAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyks IDEwIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+Pj4g aW5kZXggY2FjYjA3Yi4uN2I3ZjU0NCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+Pj4gQEAgLTM5MCw4ICszOTAsMTAgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+Pj4gIAkJZW51bSBwb3J0IHBvcnQ7Cj4+PiAgCQlib29sIHN1cHBv cnRzX2hkbWk7Cj4+Pgo+Pj4gLQkJZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5jb2Rlciwg JmludGVsX2RpZ19wb3J0LCAmcG9ydCk7Cj4+PiArCQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9 PSBJTlRFTF9PVVRQVVRfRFNJKQo+Pj4gKwkJCWNvbnRpbnVlOwo+Pj4KPj4+ICsJCWRkaV9nZXRf ZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIsICZpbnRlbF9kaWdfcG9ydCwgJnBvcnQpOwo+Pj4g IAkJaWYgKHZpc2l0ZWRbcG9ydF0pCj4+PiAgCQkJY29udGludWU7Cj4+Pgo+Pj4gQEAgLTE3Nzks NyArMTc4MSw4IEBAIGJvb2wgaW50ZWxfZGRpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5j b2Rlcgo+Pj4gKmVuY29kZXIsICB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhzdHJ1 Y3QgaW50ZWxfY3J0Ywo+Pj4gKmludGVsX2NydGMpICB7Cj4+PiAgCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+Pj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+Pj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0Y19lbmNvZGVyKGNydGMpOwo+Pj4gIAllbnVtIHBv cnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwo+Pj4g IAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5jb25maWctPmNw dV90cmFuc2NvZGVyOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+ IGluZGV4IGI4ZTAzMTAuLmVhMGY1MzMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+Pj4gQEAgLTQ5OTEsNiArNDk5MSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxf Y3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjCj4+KmNydGMpCj4+PiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+PiAgCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPj4+ICAJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXI7Cj4+PiArCWJvb2wgaXNfZHNpID0gaW50ZWxfcGlwZV9oYXNf dHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfRFNJKTsKPj4+ICAJaW50IHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+Pj4KPj4+ICAJV0FSTl9PTighY3J0Yy0+c3RhdGUtPmVuYWJsZSk7Cj4+ PiBAQCAtNTAyMyw5ICs1MDI0LDEyIEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUo c3RydWN0IGRybV9jcnRjCj4+KmNydGMpCj4+PiAgCWludGVsX2NydGMtPmFjdGl2ZSA9IHRydWU7 Cj4+Pgo+Pj4gIAlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2 LCBwaXBlLCB0cnVlKTsKPj4+IC0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0Yywg ZW5jb2RlcikKPj4+ICsJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rl cikgewo+Pj4gKwkJaWYgKGVuY29kZXItPnByZV9wbGxfZW5hYmxlKQo+Pj4gKwkJCWVuY29kZXIt PnByZV9wbGxfZW5hYmxlKGVuY29kZXIpOwo+Pj4gIAkJaWYgKGVuY29kZXItPnByZV9lbmFibGUp Cj4+PiAgCQkJZW5jb2Rlci0+cHJlX2VuYWJsZShlbmNvZGVyKTsKPj4+ICsJfQo+Pj4KPj4+ICAJ aWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4+PiAgCQlpbnRlbF9z ZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LAo+PlRSQU5TQ09ERVJfQSwg QEAKPj4+IC01MDMzLDcgKzUwMzcsOCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4+ICAJCWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5r X3RyYWluKGNydGMpOwo+Pj4gIAl9Cj4+Pgo+Pj4gLQlpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xv Y2soaW50ZWxfY3J0Yyk7Cj4+PiArCWlmICghaXNfZHNpKQo+Pj4gKwkJaW50ZWxfZGRpX2VuYWJs ZV9waXBlX2Nsb2NrKGludGVsX2NydGMpOwo+Pj4KPj4+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID09IDkpCj4+PiAgCQlza3lsYWtlX3BmaXRfdXBkYXRlKGludGVsX2NydGMsIDEpOyBAQCAt NTA0OSw3ICs1MDU0LDggQEAKPj5zdGF0aWMKPj4+IHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+PiAgCWludGVsX2NydGNfbG9hZF9sdXQoY3J0Yyk7Cj4+ Pgo+Pj4gIAlpbnRlbF9kZGlfc2V0X3BpcGVfc2V0dGluZ3MoY3J0Yyk7Cj4+PiAtCWludGVsX2Rk aV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNydGMpOwo+Pj4gKwlpZiAoIWlzX2RzaSkKPj4+ICsJ CWludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNydGMpOwo+Pj4KPj4+ICAJaW50ZWxf dXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7Cj4+PiAgCWludGVsX2VuYWJsZV9waXBlKGludGVsX2Ny dGMpOwo+Pj4gQEAgLTUwNTcsNyArNTA2Myw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19l bmFibGUoc3RydWN0IGRybV9jcnRjCj4+KmNydGMpCj4+PiAgCWlmIChpbnRlbF9jcnRjLT5jb25m aWctPmhhc19wY2hfZW5jb2RlcikKPj4+ICAJCWxwdF9wY2hfZW5hYmxlKGNydGMpOwo+Pj4KPj4+ IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QpCj4+PiArCWlmIChp bnRlbF9jcnRjLT5jb25maWctPmRwX2VuY29kZXJfaXNfbXN0ICYmICFpc19kc2kpCj4+PiAgCQlp bnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY3J0YywgdHJ1ZSk7Cj4+Pgo+Pj4gIAlhc3Nl cnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwo+Pj4gQEAgLTUxNTksNiArNTE2NSw3IEBAIHN0YXRp YyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0Ywo+PipjcnRjKQo+Pj4g IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4+ PiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+Pj4gIAllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVyOwo+Pj4g Kwlib29sIGlzX2RzaSA9IGludGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0YywgSU5URUxfT1VU UFVUX0RTSSk7Cj4+Pgo+Pj4gIAlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPj4+ICAJCXJldHVy bjsKPj4+IEBAIC01MTc5LDcgKzUxODYsOCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlz YWJsZShzdHJ1Y3QgZHJtX2NydGMKPj4qY3J0YykKPj4+ICAJaWYgKGludGVsX2NydGMtPmNvbmZp Zy0+ZHBfZW5jb2Rlcl9pc19tc3QpCj4+PiAgCQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxs b2MoY3J0YywgZmFsc2UpOwo+Pj4KPj4+IC0JaW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9m dW5jKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rlcik7Cj4+PiArCWlmICghaXNfZHNpKQo+Pj4gKwkJ aW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rl cik7Cj4+Pgo+Pj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gOSkKPj4+ICAJCXNreWxh a2VfcGZpdF91cGRhdGUoaW50ZWxfY3J0YywgMCk7IEBAIC01MTg4LDcgKzUxOTYsOCBAQAo+PnN0 YXRpYwo+Pj4gdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4+PiAgCWVsc2UKPj4+ICAJCU1JU1NJTkdfQ0FTRShJTlRFTF9JTkZPKGRldiktPmdlbik7Cj4+ Pgo+Pj4gLQlpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKGludGVsX2NydGMpOwo+Pj4gKwlp ZiAoIWlzX2RzaSkKPj4+ICsJCWludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0 Yyk7Cj4+Pgo+Pj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsK Pj4+ICAJCWxwdF9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKGRldl9wcml2KTsKPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4+PiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPj4+IGluZGV4IDQ4MTMzNzQuLmRiNTE4ZWYg MTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4+PiBAQCAtMzM0 LDggKzMzNCwxMiBAQCBpbnQgaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoc3RydWN0Cj4+ aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPj4+ICAJaWYgKCFIQVNfRERJKGRldikpCj4+ PiAgCQlyZXR1cm4gMDsKPj4+Cj4+PiAtCXBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9y dChpbnRlbF9lbmNvZGVyKTsKPj4+IC0JaWYgKHBvcnQgPT0gUE9SVF9FKSB7Cj4+PiArCWlmIChp bnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpCj4+PiArCQlwb3J0ID0gMDsK Pj4+ICsJZWxzZQo+Pj4gKwkJcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGludGVs X2VuY29kZXIpOwo+Pj4gKwo+Pj4gKwlpZiAocG9ydCA9PSBQT1JUX0UpICB7Cj4+PiAgCQlwb3J0 ID0gMDsKPj4+ICAJfSBlbHNlIHsKPj4+ICAJCXBhcm0gfD0gMSA8PCBwb3J0Owo+Pj4gQEAgLTM1 Niw2ICszNjAsNyBAQCBpbnQgaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoc3RydWN0Cj4+ aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPj4+ICAJCXR5cGUgPSBESVNQTEFZX1RZUEVf RVhURVJOQUxfRkxBVF9QQU5FTDsKPj4+ICAJCWJyZWFrOwo+Pj4gIAljYXNlIElOVEVMX09VVFBV VF9FRFA6Cj4+PiArCWNhc2UgSU5URUxfT1VUUFVUX0RTSToKPj4+ICAJCXR5cGUgPSBESVNQTEFZ X1RZUEVfSU5URVJOQUxfRkxBVF9QQU5FTDsKPj4+ICAJCWJyZWFrOwo+Pj4gIAlkZWZhdWx0Ogo+ Pj4gLS0KPj4+IDEuNy45LjUKPj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+Pj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Pgo+Pi0tCj4+RGFuaWVsIFZldHRlcgo+PlNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+Pmh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK