From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [BXT MIPI PATCH v4 05/14] drm/i915/bxt: DSI encoder support in CRTC modeset Date: Tue, 29 Sep 2015 10:29:00 +0300 Message-ID: <87zj05iszn.fsf@intel.com> References: <1443030820-11817-1-git-send-email-uma.shankar@intel.com> <87bncmk70y.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 6C50B720BE for ; Tue, 29 Sep 2015 00:25: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" , "intel-gfx@lists.freedesktop.org" Cc: "Kumar, Shobhit" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyOCBTZXAgMjAxNSwgIlNoYW5rYXIsIFVtYSIgPHVtYS5zaGFua2FyQGludGVsLmNv bT4gd3JvdGU6Cj4+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj5Gcm9tOiBKYW5pIE5pa3Vs YSBbbWFpbHRvOmphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbV0KPj5TZW50OiBNb25kYXksIFNl cHRlbWJlciAyOCwgMjAxNSA2OjU4IFBNCj4+VG86IFNoYW5rYXIsIFVtYTsgaW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+PkNjOiBLdW1hciwgU2hvYmhpdDsgRGVhaywgSW1yZTsgU2hh cm1hLCBTaGFzaGFuazsgU2hhbmthciwgVW1hCj4+U3ViamVjdDogUmU6IFtCWFQgTUlQSSBQQVRD SCB2NCAwNS8xNF0gZHJtL2k5MTUvYnh0OiBEU0kgZW5jb2RlciBzdXBwb3J0IGluCj4+Q1JUQyBt b2Rlc2V0Cj4+Cj4+T24gV2VkLCAyMyBTZXAgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFua2Fy QGludGVsLmNvbT4gd3JvdGU6Cj4+PiBGcm9tOiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNo YXJtYUBpbnRlbC5jb20+Cj4+Pgo+Pj4gU0tMIGFuZCBCWFQgcXVhbGlmaWVzIHRoZSBIQVNfRERJ KCkgY2hlY2ssIGFuZCBoZW5jZSBoYXN3ZWxsIG1vZGVzZXQKPj4+IGZ1bmN0aW9ucyBhcmUgcmUt dXNlZCBmb3IgbW9kZXNldCBzZXF1ZW5jZS4gQnV0IERESSBpbnRlcmZhY2UgZG9lc24ndAo+Pj4g aW5jbHVkZSBzdXBwb3J0IGZvciBEU0kuCj4+PiBUaGlzIHBhdGNoIGFkZHM6Cj4+PiAxLiBjYXNl cyBmb3IgRFNJIGVuY29kZXIsIGluIHRob3NlIG1vZGVzZXQgZnVuY3Rpb25zIGFuZCBhbGxvd3MK Pj4+ICAgIGEgQ1JUQyBtb2Rlc2V0Cj4+PiAyLiBBZGRzIGNhbGwgdG8gcHJlX3BsbCBlbmFibGVk IGZyb20gQ1JUQyBtb2Rlc2V0IGZ1bmN0aW9uLiBOb3RoaW5nCj4+PiAgICBuZWVkcyB0byBiZSBk b25lIGFzIHN1Y2ggaW4gQ1JUQyBmb3IgRFNJIGVuY29kZXIsIGFzIFBMTCwgY2xvY2sKPj4+ICAg IGFuZCBhbmQgdHJhbnNjb2RlciBwcm9ncmFtbWluZyB3aWxsIGJlIHRha2VuIGNhcmUgaW4gZW5j b2RlcidzCj4+PiAgICBwcmVfZW5hYmxlIGFuZCBwcmVfcGxsX2VuYWJsZSBmdW5jdGlvbi4KPj4+ Cj4+PiB2MjogRml4ZWQgSmFuaSdzIHJldmlldyBjb21tZW50cy4gQWRkZWQgSU5WQUxJRF9QT1JU IGZvciBub24gRERJCj4+PiAgICAgZW5jb2RlciBsaWtlIERTSSBmb3IgcGxhdGZvcm1zIGhhdmlu ZyBIQVNfRERJIGFzIHRydWUuCj4+Pgo+Pj4gdjM6IFJlYmFzZWQgb24gbGF0ZXN0IGRybS1uaWdo dGx5IGJyYW5jaC4gQWRkZWQgYSBXQVJOX09OIGZvciBpbnZhbGlkCj4+PiAgICAgZW5jb2Rlci4K Pj4+Cj4+PiB2NDogV0FSTl9PTiBmb3IgaW52YWxpZCBlbmNvZGVyIGlzIHJlZmFjdG9yZWQgYXMg cGVyIEphbmkncyBzdWdnZXN0aW9uLgo+Pj4gICAgIEZpeGVkIHRoZSBzZXF1ZW5jZSBmb3IgcHJl X3BsbF9lbmFibGUuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFz aGFuay5zaGFybWFAaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVt YS5zaGFua2FyQGludGVsLmNvbT4KPj4+IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgfCAgICAxICsKPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZGkuYyAgICAgIHwgICAyMSArKysrKysrKysrKysrKysrKysrKy0KPj4+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgICAyMSArKysrKysrKysrKysrKystLS0tLS0KPj4+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jIHwgICAgMyArKy0KPj4+ICA0 IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4+Pgo+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBpbmRleCBmZDFkZTQ1Li43OGQzMWM1IDEwMDY0NAo+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gQEAgLTE0Miw2ICsxNDIsNyBAQCBlbnVtIHBs YW5lIHsKPj4+ICAjZGVmaW5lIHNwcml0ZV9uYW1lKHAsIHMpICgocCkgKiBJTlRFTF9JTkZPKGRl diktPm51bV9zcHJpdGVzWyhwKV0gKwo+Pj4gKHMpICsgJ0EnKQo+Pj4KPj4+ICBlbnVtIHBvcnQg ewo+Pj4gKwlQT1JUX0lOVkFMSUQgPSAtMSwKPj4KPj5NeSBpZGVhIHdhcyB0aGF0IHlvdSB3b3Vs ZG4ndCBhZGQgdGhpcy4gTWF5YmUgSSB3YXNuJ3QgY2xlYXIgZW5vdWdoLgo+Pgo+Pj4gIAlQT1JU X0EgPSAwLAo+Pj4gIAlQT1JUX0IsCj4+PiAgCVBPUlRfQywKPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+Pj4gaW5kZXggY2FjYjA3Yi4uOGVkYjYzMiAxMDA2NDQKPj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYwo+Pj4gQEAgLTIyNyw2ICsyMjcsMTAgQEAgc3RhdGljIHZvaWQgZGRp X2dldF9lbmNvZGVyX3BvcnQoc3RydWN0Cj4+aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwK Pj4+ICAJfSBlbHNlIGlmICh0eXBlID09IElOVEVMX09VVFBVVF9BTkFMT0cpIHsKPj4+ICAJCSpk aWdfcG9ydCA9IE5VTEw7Cj4+PiAgCQkqcG9ydCA9IFBPUlRfRTsKPj4+ICsJfSBlbHNlIGlmICh0 eXBlID09IElOVEVMX09VVFBVVF9EU0kpIHsKPj4+ICsJCSpkaWdfcG9ydCA9IE5VTEw7Cj4+PiAr CQkqcG9ydCA9IFBPUlRfSU5WQUxJRDsKPj4+ICsJCURSTV9ERUJVR19LTVMoIkVuY29kZXIgdHlw ZTogRFNJLiBSZXR1cm5pbmcuLi5cbiIpOwo+Pgo+Pk15IGlkZWEgd2FzIHRoYXQgeW91J2Qgb25s eSBjYWxsIHRoaXMgZnVuY3Rpb24gb24gRERJIChpLmUuIG5vbi1EU0kpIGVuY29kZXJzLiBTbwo+ PnlvdSBjb3VsZCBkbyBhIHdhcm4gaGVyZS4gRG9lc24ndCBtYXR0ZXIgd2hhdCB5b3Ugc2V0ICpw b3J0IHRvLCBpdCdzIGdvaW5nIHRvIGJlCj4+d3JvbmcgYW55d2F5LCBhbmQgdGhpcyBpcyBvbmx5 IHNsaWdodGx5IGJldHRlciB0aGFuIG5vdCBvb3BzaW5nIG9uIHRoZSBCVUcKPj5iZWxvdy4KPj4K Pj4+ICAJfSBlbHNlIHsKPj4+ICAJCURSTV9FUlJPUigiSW52YWxpZCBEREkgZW5jb2RlciB0eXBl ICVkXG4iLCB0eXBlKTsKPj4+ICAJCUJVRygpOwo+Pj4gQEAgLTIzNyw2ICsyNDEsMTUgQEAgZW51 bSBwb3J0IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0cnVjdAo+Pj4gaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlcikgIHsKPj4+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQ7Cj4+PiAgCWVudW0gcG9ydCBwb3J0Owo+Pj4gKwlpbnQgdHlwZSA9IGludGVsX2VuY29k ZXItPnR5cGU7Cj4+PiArCj4+PiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9EU0kpIHsKPj4+ ICsJCXBvcnQgPSBQT1JUX0lOVkFMSUQ7Cj4+PiArCQlEUk1fREVCVUdfS01TKCJFbmNvZGVyIHR5 cGU6IERTSS4gUmV0dXJuaW5nLi4uXG4iKTsKPj4+ICsJCVdBUk5fT04oMSk7Cj4+PiArCj4+PiAr CQlyZXR1cm4gcG9ydDsKPj4+ICsJfQo+Pgo+PlJlbW92ZSB0aGVzZS4KPj4KPgo+IGludGVsX2Rk aV9nZXRfZW5jb2Rlcl9wb3J0IGlzIHRoZSBvbmUgZ2V0dGluZyBjYWxsZWQgZnJvbSBtdWx0aXBs ZSBsb2NhdGlvbnMuIFRoaXMgZXhwZWN0cyBhbiBlbnVtIHRvIGJlIHJldHVybmVkLiAgV2UgY291 bGQgZWl0aGVyIHNldCB0aGUgKnBvcnQgaW4gCj4KPiAgQEAgLTIyNyw2ICsyMjcsMTAgQEAgc3Rh dGljIHZvaWQgZGRpX2dldF9lbmNvZGVyX3BvcnQoc3RydWN0Cj4gaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlciwKPiAgIAl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0FOQUxPRykg ewo+ICAgCQkqZGlnX3BvcnQgPSBOVUxMOwo+ICAgCQkqcG9ydCA9IFBPUlRfRTsKPiArCX0gZWxz ZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJKSB7Cj4gKwkJKmRpZ19wb3J0ID0gTlVMTDsK PiArCQkqcG9ydCA9IFBPUlRfSU5WQUxJRDsKPiArCQlEUk1fREVCVUdfS01TKCJFbmNvZGVyIHR5 cGU6IERTSS4gUmV0dXJuaW5nLi4uXG4iKTsKPgo+IEFuZCBsZXQgdGhpcyBmdW5jdGlvbiByZXR1 cm4gdGhlIFBPUlRfSU5WQUxJRCB3aXRoIGEgV0FSTi4gT3Igd2UgY2FuIGluaXRpYWxpemUgdGhl IHBvcnQgdG8gUE9SVF9JTlZBTElEIGFuZCByZXR1cm4gdGhhdCBpbnN0ZWFkLiBUaGVuIEkgY2Fu IHJlbW92ZSB0aGVzZSBsaW5lcyBmcm9tIGhlcmUuCj4gQWxzbywgSWYgd2UgdHJ5IHRvIGF2b2lk IHRoaXMgZnVuY3Rpb24gZ2V0dGluZyBjYWxsZWQgZnJvbSB2YXJpb3VzIGxvY2F0aW9ucywgd2Ug d2lsbCBhZ2FpbiBlbmQgdXAgdG8gdGhlIG9yaWdpbmFsIHByb2JsZW0gb2Ygc3BpbGxlZCBvdmVy IERTSSBjaGVja3MgYXQgbXVsdGlwbGUgcGxhY2VzIGluIGNvZGUuCj4KPiBQbGVhc2Ugc3VnZ2Vz dCB3aGljaCBldmVyIGxvb2tzIG9rLiAKCkkganVzdCBzZW50IHR3byBwYXRjaGVzIFsxXVsyXSB0 byBtb2RpZnkgZGRpX2dldF9lbmNvZGVyX3BvcnQgYQpsaXR0bGUuIFJlYmFzZSBvbiB0b3AsIGFu ZCBkb24ndCBtb2RpZnkgZGRpX2dldF9lbmNvZGVyX3BvcnQoKSBvcgppbnRlbF9kZGlfZ2V0X2Vu Y29kZXJfcG9ydCgpIGF0IGFsbC4gSnVzdCBtYWtlIHN1cmUgeW91IGRvbid0IGNhbGwgdGhlCmZ1 bmN0aW9ucyBmb3IgRFNJLiBObyBuZWVkIHRvIGFkZCBQT1JUX0lOVkFMSUQgZWl0aGVyLgoKQlIs CkphbmkuCgoKWzFdIGh0dHA6Ly9taWQuZ21hbmUub3JnLzE0NDM1MTE0NjYtODAxNy0xLWdpdC1z ZW5kLWVtYWlsLWphbmkubmlrdWxhQGludGVsLmNvbQpbMl0gaHR0cDovL21pZC5nbWFuZS5vcmcv MTQ0MzUxMTQ2Ni04MDE3LTItZ2l0LXNlbmQtZW1haWwtamFuaS5uaWt1bGFAaW50ZWwuY29tCgo+ Cj4+Pgo+Pj4gIAlkZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyLCAmZGlnX3BvcnQs ICZwb3J0KTsKPj4+Cj4+PiBAQCAtMzkyLDYgKzQwNSwxMSBAQCB2b2lkIGludGVsX3ByZXBhcmVf ZGRpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+Pgo+Pj4gIAkJZGRpX2dldF9lbmNvZGVyX3Bv cnQoaW50ZWxfZW5jb2RlciwgJmludGVsX2RpZ19wb3J0LCAmcG9ydCk7Cj4+Pgo+Pgo+Pk15IGlk ZWEgd2FzIHRoYXQgeW91J2Qgb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gb24gRERJIChpLmUuIG5v bi1EU0kpIGVuY29kZXJzLiBTbwo+PnlvdSdkIGhhdmUgdG8gYWRkIGEgY2hlY2sgZm9yIERTSSBo ZXJlLgo+Pgo+Pj4gKwkJaWYgKHBvcnQgPT0gUE9SVF9JTlZBTElEKSB7Cj4+PiArCQkJV0FSTl9P TigxKTsKPj4KPj5CdXQgdGhpcyB3YXJuIG5vdyBtYWtlcyBtZSB0aGluayB3ZSBkb24ndCBldmVy IGdldCBoZXJlIG9uIHdpdGggRFNJLiBEb24ndAo+Pndhcm4gZm9yIG5vcm1hbCBjYXNlcy4KPgo+ IFllcywgeW91IGFyZSByaWdodC4gVGhpcyBzaG91bGRuJ3QgYmUgV2FybmluZywganVzdCBhIERT SSBwcm90ZWN0aW9uIHNob3VsZCBiZSBmaW5lLiBXaWxsIHJlY3RpZnkgdGhpcy4KPgo+Pj4gKwkJ CWNvbnRpbnVlOwo+Pj4gKwkJfQo+Pj4gKwo+Pj4gIAkJaWYgKHZpc2l0ZWRbcG9ydF0pCj4+PiAg CQkJY29udGludWU7Cj4+Pgo+Pj4gQEAgLTE3NzksNyArMTc5Nyw4IEBAIGJvb2wgaW50ZWxfZGRp X2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+Pj4gKmVuY29kZXIsICB2b2lkIGlu dGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0Ywo+Pj4gKmludGVsX2Ny dGMpICB7Cj4+PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ Pj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9w cml2YXRlOwo+Pj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+Pj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4g IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0 Y19lbmNvZGVyKGNydGMpOwo+Pj4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5j b2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwo+Pj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5z Y29kZXIgPSBpbnRlbF9jcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVyOwo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+IGluZGV4IGI4ZTAzMTAuLmVhMGY1MzMgMTAw NjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gQEAgLTQ5OTEsNiAr NDk5MSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRj Cj4+KmNydGMpCj4+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4+PiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKPj4+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4+PiAr CWJvb2wgaXNfZHNpID0gaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQ VVRfRFNJKTsKPj4+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+Pj4KPj4+ICAJV0FS Tl9PTighY3J0Yy0+c3RhdGUtPmVuYWJsZSk7Cj4+PiBAQCAtNTAyMyw5ICs1MDI0LDEyIEBAIHN0 YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjCj4+KmNydGMpCj4+ PiAgCWludGVsX2NydGMtPmFjdGl2ZSA9IHRydWU7Cj4+Pgo+Pj4gIAlpbnRlbF9zZXRfY3B1X2Zp Zm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKPj4+IC0JZm9yX2Vh Y2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPj4+ICsJZm9yX2VhY2hfZW5j b2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+Pj4gKwkJaWYgKGVuY29kZXItPnBy ZV9wbGxfZW5hYmxlKQo+Pj4gKwkJCWVuY29kZXItPnByZV9wbGxfZW5hYmxlKGVuY29kZXIpOwo+ Pj4gIAkJaWYgKGVuY29kZXItPnByZV9lbmFibGUpCj4+PiAgCQkJZW5jb2Rlci0+cHJlX2VuYWJs ZShlbmNvZGVyKTsKPj4+ICsJfQo+Pj4KPj4+ICAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFz X3BjaF9lbmNvZGVyKSB7Cj4+PiAgCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldl9wcml2LAo+PlRSQU5TQ09ERVJfQSwgQEAKPj4+IC01MDMzLDcgKzUwMzcsOCBAQCBz dGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4+ ICAJCWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluKGNydGMpOwo+Pj4gIAl9Cj4+Pgo+ Pj4gLQlpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0Yyk7Cj4+PiArCWlmICgh aXNfZHNpKQo+Pj4gKwkJaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2NrKGludGVsX2NydGMpOwo+ Pj4KPj4+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID09IDkpCj4+PiAgCQlza3lsYWtlX3Bm aXRfdXBkYXRlKGludGVsX2NydGMsIDEpOyBAQCAtNTA0OSw3ICs1MDU0LDggQEAKPj5zdGF0aWMK Pj4+IHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+PiAg CWludGVsX2NydGNfbG9hZF9sdXQoY3J0Yyk7Cj4+Pgo+Pj4gIAlpbnRlbF9kZGlfc2V0X3BpcGVf c2V0dGluZ3MoY3J0Yyk7Cj4+PiAtCWludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNy dGMpOwo+Pj4gKwlpZiAoIWlzX2RzaSkKPj4+ICsJCWludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rl cl9mdW5jKGNydGMpOwo+Pj4KPj4+ICAJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7Cj4+ PiAgCWludGVsX2VuYWJsZV9waXBlKGludGVsX2NydGMpOwo+Pj4gQEAgLTUwNTcsNyArNTA2Myw3 IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjCj4+KmNy dGMpCj4+PiAgCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19wY2hfZW5jb2RlcikKPj4+ICAJ CWxwdF9wY2hfZW5hYmxlKGNydGMpOwo+Pj4KPj4+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ ZHBfZW5jb2Rlcl9pc19tc3QpCj4+PiArCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmRwX2VuY29k ZXJfaXNfbXN0ICYmICFpc19kc2kpCj4+PiAgCQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxs b2MoY3J0YywgdHJ1ZSk7Cj4+Pgo+Pj4gIAlhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwo+ Pj4gQEAgLTUxNTksNiArNTE2NSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxl KHN0cnVjdCBkcm1fY3J0Ywo+PipjcnRjKQo+Pj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4+PiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyOwo+Pj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRj LT5jb25maWctPmNwdV90cmFuc2NvZGVyOwo+Pj4gKwlib29sIGlzX2RzaSA9IGludGVsX3BpcGVf aGFzX3R5cGUoaW50ZWxfY3J0YywgSU5URUxfT1VUUFVUX0RTSSk7Cj4+Pgo+Pj4gIAlpZiAoIWlu dGVsX2NydGMtPmFjdGl2ZSkKPj4+ICAJCXJldHVybjsKPj4+IEBAIC01MTc5LDcgKzUxODYsOCBA QCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMKPj4qY3J0 YykKPj4+ICAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QpCj4+PiAg CQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY3J0YywgZmFsc2UpOwo+Pj4KPj4+IC0J aW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rl cik7Cj4+PiArCWlmICghaXNfZHNpKQo+Pj4gKwkJaW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rl cl9mdW5jKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rlcik7Cj4+Pgo+Pj4gIAlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPT0gOSkKPj4+ICAJCXNreWxha2VfcGZpdF91cGRhdGUoaW50ZWxfY3J0Yywg MCk7IEBAIC01MTg4LDcgKzUxOTYsOCBAQAo+PnN0YXRpYwo+Pj4gdm9pZCBoYXN3ZWxsX2NydGNf ZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+PiAgCWVsc2UKPj4+ICAJCU1JU1NJTkdf Q0FTRShJTlRFTF9JTkZPKGRldiktPmdlbik7Cj4+Pgo+Pj4gLQlpbnRlbF9kZGlfZGlzYWJsZV9w aXBlX2Nsb2NrKGludGVsX2NydGMpOwo+Pj4gKwlpZiAoIWlzX2RzaSkKPj4+ICsJCWludGVsX2Rk aV9kaXNhYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0Yyk7Cj4+Pgo+Pj4gIAlpZiAoaW50ZWxfY3J0 Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKPj4+ICAJCWxwdF9kaXNhYmxlX3BjaF90cmFu c2NvZGVyKGRldl9wcml2KTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9vcHJlZ2lvbi5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9u LmMKPj4+IGluZGV4IDQ4MTMzNzQuLjMyNmFhNmIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9vcHJlZ2lvbi5jCj4+PiBAQCAtMzM1LDcgKzMzNSw3IEBAIGludCBpbnRlbF9vcHJl Z2lvbl9ub3RpZnlfZW5jb2RlcihzdHJ1Y3QKPj5pbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy LAo+Pj4gIAkJcmV0dXJuIDA7Cj4+Pgo+Pj4gIAlwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVy X3BvcnQoaW50ZWxfZW5jb2Rlcik7Cj4+Cj4+TXkgaWRlYSB3YXMgdGhhdCB5b3UnZCBvbmx5IGNh bGwgdGhpcyBmdW5jdGlvbiBvbiBEREkgKGkuZS4gbm9uLURTSSkgZW5jb2RlcnMuIFNvCj4+eW91 J2QgaGF2ZSB0byBhZGQgYSBjaGVjayBmb3IgRFNJIGhlcmUuCj4+Cj4KPiBDdXJyZW50bHksIEkg aGF2ZSBpbXBsZW1lbnRlZCBpdCBhcyBhbGwgb3RoZXIgb2NjdXJyZW5jZXMgb2YgdGhpcyBmdW5j dGlvbi4gRXZlbiBpZiBpdCBnZXRzIGNhbGxlZCBmb3IgRFNJLAo+IGl0IHdpbGwgcmV0dXJuIFBP UlRfSU5WQUxJRC4gVGhhdCBjYXNlIGlzIGhhbmRsZWQgYmVsb3cuCj4KPiBCdXQgaXQgd291bGQg YmUgYmV0dGVyIHRvIGNoZWNrIGZvciBEU0kgYW5kIGF2b2lkIHRoZSBjYWxsIGFuZCBhbiB1bm5l Y2Vzc2FyeSBXYXJuaW5nLiBXaWxsIGNoYW5nZSB0aGlzLgo+Cj4gUGxlYXNlIGNvbW1lbnQgaWYg dGhlIG92ZXJhbGwgYXBwcm9hY2ggbG9va3MgT0suIFdpbGwgaW1wbGVtZW50IGFjY29yZGluZ2x5 LiAKPgo+IFRoYW5rcyBmb3IgYWxsIHRoZSBzdWdnZXN0aW9ucyBhbmQgY29tbWVudHMuCj4KPiBS ZWdhcmRzLAo+IFVtYSBTaGFua2FyCj4KPj5CUiwKPj5KYW5pLgo+Pgo+Pj4gLQlpZiAocG9ydCA9 PSBQT1JUX0UpIHsKPj4+ICsJaWYgKChwb3J0ID09IFBPUlRfRSkgfHwgKHBvcnQgPT0gUE9SVF9J TlZBTElEKSkgewo+Pj4gIAkJcG9ydCA9IDA7Cj4+PiAgCX0gZWxzZSB7Cj4+PiAgCQlwYXJtIHw9 IDEgPDwgcG9ydDsKPj4+IEBAIC0zNTYsNiArMzU2LDcgQEAgaW50IGludGVsX29wcmVnaW9uX25v dGlmeV9lbmNvZGVyKHN0cnVjdAo+PmludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4+PiAg CQl0eXBlID0gRElTUExBWV9UWVBFX0VYVEVSTkFMX0ZMQVRfUEFORUw7Cj4+PiAgCQlicmVhazsK Pj4+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRURQOgo+Pj4gKwljYXNlIElOVEVMX09VVFBVVF9EU0k6 Cj4+PiAgCQl0eXBlID0gRElTUExBWV9UWVBFX0lOVEVSTkFMX0ZMQVRfUEFORUw7Cj4+PiAgCQli cmVhazsKPj4+ICAJZGVmYXVsdDoKPj4+IC0tCj4+PiAxLjcuOS41Cj4+Pgo+Pgo+Pi0tCj4+SmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAKSmFuaSBO aWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==