From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915/lspcon: Add workaround for resuming in PCON mode Date: Thu, 20 Oct 2016 23:50:38 +0300 Message-ID: <87oa2epwwx.fsf@intel.com> References: <1476983187-27216-1-git-send-email-imre.deak@intel.com> <1476983187-27216-2-git-send-email-imre.deak@intel.com> <87y41iq3vm.fsf@intel.com> <87r37aq0wp.fsf@intel.com> <1476992610.15304.29.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC21E6E1C3 for ; Thu, 20 Oct 2016 20:50:51 +0000 (UTC) In-Reply-To: <1476992610.15304.29.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMCBPY3QgMjAxNiwgSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPiB3cm90 ZToKPiBPbiBUaHUsIDIwMTYtMTAtMjAgYXQgMjI6MjQgKzAzMDAsIEphbmkgTmlrdWxhIHdyb3Rl Ogo+PiBPbiBUaHUsIDIwIE9jdCAyMDE2LCBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwu Y29tPiB3cm90ZToKPj4gPiBPbiBUaHUsIDIwIE9jdCAyMDE2LCBJbXJlIERlYWsgPGltcmUuZGVh a0BpbnRlbC5jb20+IHdyb3RlOgo+PiA+ID4gT24gbXkgQVBMIHRoZSBMU1BDT04gZmlybXdhcmUg cmVzdW1lcyBpbiBQQ09OIG1vZGUgYXMgb3Bwb3NlZCB0byB0aGUKPj4gPiA+IGV4cGVjdGVkIExT IG1vZGUuIEl0IGFsc28gYXBwZWFycyB0byBiZSBpbiBhIHN0YXRlIHdoZXJlIEFVWCBEUENEIHJl YWRzCj4+ID4gPiB3aWxsIHN1Y2NlZWQgYnV0IHJldHVybiBnYXJiYWdlIHJlY292ZXJpbmcgb25s eSBhZnRlciBhIGZldyBodW5kcmVkcyBvZgo+PiA+ID4gbWlsbGlzZWNvbmRzLiBBZnRlciB0aGUg cmVjb3ZlcnkgdGltZSBEUENEIHJlYWRzIHdpbGwgcmVzdWx0IGluIHRoZQo+PiA+ID4gY29ycmVj dCB2YWx1ZXMgYW5kIHRoaW5ncyB3aWxsIGNvbnRpbnVlIHRvIHdvcmsuIElmIEkyQyBvdmVyIEFV WCBpcwo+PiA+ID4gYXR0ZW1wdGVkIGR1cmluZyB0aGlzIHJlY292ZXJ5IHRpbWUgKGltcGx5aW5n IGFuIEFVWCB3cml0ZSB0cmFuc2FjdGlvbikKPj4gPiA+IHRoZSBmaXJtd2FyZSB3b24ndCByZWNv dmVyIGFuZCB3aWxsIHN0YXkgaW4gdGhpcyBicm9rZW4gc3RhdGUuCj4+ID4gPiAKPj4gPiA+IEFz IGEgd29ya2Fyb3VuZCBjaGVjayBpZiB0aGUgZmlybXdhcmUgaXMgaW4gUENPTiBzdGF0ZSBhZnRl ciByZXN1bWUgYW5kCj4+ID4gPiBpZiBzbyB3YWl0IHVudGlsIHRoZSBjb3JyZWN0IERQQ0QgdmFs dWVzIGFyZSByZXR1cm5lZC4gRm9yIHRoaXMgd2UKPj4gPiA+IGNvbXBhcmUgdGhlIGJyYW5jaCBk ZXNjcmlwdG9yIHdpdGggdGhlIG9uZSB3ZSBjYWNoZWQgZHVyaW5nIGluaXQgdGltZS4KPj4gPiA+ IElmIHRoZSBmaXJtd2FyZSB3YXMgaW4gdGhlIExTIHN0YXRlLCB3ZSBza2lwIHRoZSB3L2EgYW5k IGNvbnRpbnVlIGFzCj4+ID4gPiBiZWZvcmUuCj4+ID4gPiAKPj4gPiA+IENjOiBTaGFzaGFuayBT aGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4+ID4gPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gPiA+IENjOiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiA+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFr IDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+PiA+ID4gLS0tCj4+ID4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmPCoMKgwqDCoMKgfMKgwqAyICstCj4+ID4gPiDCoGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqB8wqDCoDYgKysrKy0KPj4gPiA+IMKgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCA1MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tCj4+ID4gPiDCoDMgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCj4+ID4gPiAKPj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ PiA+ID4gaW5kZXggZTkwMjExZS4uZWMwMzFkYiAxMDA2NDQKPj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPj4gPiA+IEBAIC0zNDg3LDcgKzM0ODcsNyBAQCBpbnRlbF9kcF9saW5rX2Rv d24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gPiA+IMKgCWludGVsX2RwLT5EUCA9IERQ Owo+PiA+ID4gwqB9Cj4+ID4gPiDCoAo+PiA+ID4gLXN0YXRpYyBib29sCj4+ID4gPiArYm9vbAo+ PiA+ID4gwqBpbnRlbF9kcF9yZWFkX2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4g PiA+IMKgewo+PiA+ID4gwqAJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIDB4 MDAwLCBpbnRlbF9kcC0+ZHBjZCwKPj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ID4g PiBpbmRleCBhMzVlMjQxLi45YTIzNjZlIDEwMDY0NAo+PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4+ID4gPiBAQCAtOTcyLDcgKzk3Miw5IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4+ ID4gPiDCoHN0cnVjdCBpbnRlbF9sc3Bjb24gewo+PiA+ID4gwqAJYm9vbCBhY3RpdmU7Cj4+ID4g PiDCoAllbnVtIGRybV9sc3Bjb25fbW9kZSBtb2RlOwo+PiA+ID4gLQlzdHJ1Y3QgZHJtX2RwX2F1 eCAqYXV4Owo+PiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwo+PiA+ID4gKwlib29s IGRlc2NfdmFsaWQ7Cj4+ID4gPiArCXN0cnVjdCBpbnRlbF9kcF9kZXNjIGRlc2M7Cj4+ID4gCj4+ ID4gSSBndWVzcyB3ZSBjb3VsZCBjYWNoZSB0aGUgZGVzYyBpbiBpbnRlbF9kcCBkaXJlY3RseS4g SW5kZXBlbmRlbnQgb2YKPj4gPiB0aGlzIHBhdGNoLgo+PiA+IAo+PiA+IEFsc28sIEknbSB3b25k ZXJpbmcgaWYgd2UgY291bGQgc3RpY2sgd2l0aCBqdXN0IGF1eCBoZXJlLCBhbmQgcmVhZAo+PiA+ IHNvbWV0aGluZyBlbHNlIGZyb20gZHBjZCBpbnN0ZWFkLgo+PiA+IAo+PiA+ID4gwqB9Owo+PiA+ ID4gwqAKPj4gPiA+IMKgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7Cj4+ID4gPiBAQCAtMTQ2 OSw2ICsxNDcxLDggQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW50ZWxfZHBfdW51c2Vk X2xhbmVfbWFzayhpbnQgbGFuZV9jb3VudCkKPj4gPiA+IMKgfQo+PiA+ID4gwqAKPj4gPiA+IMKg Ym9vbAo+PiA+ID4gK2ludGVsX2RwX3JlYWRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KTsKPj4gPiA+ICtib29sCj4+ID4gPiDCoGludGVsX2RwX3JlYWRfZGVzYyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLCBzdHJ1Y3QgaW50ZWxfZHBfZGVzYyAqZGVzYyk7Cj4+ID4gPiDCoHZvaWQK Pj4gPiA+IMKgaW50ZWxfZHBfcHJpbnRfZGVzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBz dHJ1Y3QgaW50ZWxfZHBfZGVzYyAqZGVzYyk7Cj4+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s c3Bjb24uYwo+PiA+ID4gaW5kZXggZDJjOGNiMi4uNTRjNjE3MyAxMDA2NDQKPj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCj4+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+PiA+ID4gQEAgLTMwLDcgKzMwLDcgQEAKPj4g PiA+IMKgc3RhdGljIGVudW0gZHJtX2xzcGNvbl9tb2RlIGxzcGNvbl9nZXRfY3VycmVudF9tb2Rl KHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikKPj4gPiA+IMKgewo+PiA+ID4gwqAJZW51bSBk cm1fbHNwY29uX21vZGUgY3VycmVudF9tb2RlID0gRFJNX0xTUENPTl9NT0RFX0lOVkFMSUQ7Cj4+ ID4gPiAtCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwo+ PiA+ID4gKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSAmbHNwY29uLT5pbnRlbF9kcC0+ YXV4LmRkYzsKPj4gPiA+IMKgCj4+ID4gPiDCoAlpZiAoZHJtX2xzcGNvbl9nZXRfbW9kZShhZGFw dGVyLCDCpHRfbW9kZSkpCj4+ID4gPiDCoAkJRFJNX0VSUk9SKCJFcnJvciByZWFkaW5nIExTUENP TiBtb2RlXG4iKTsKPj4gPiA+IEBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBpbnQgbHNwY29uX2No YW5nZV9tb2RlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiwKPj4gPiA+IMKgewo+PiA+ID4g wqAJaW50IGVycjsKPj4gPiA+IMKgCWVudW0gZHJtX2xzcGNvbl9tb2RlIGN1cnJlbnRfbW9kZTsK Pj4gPiA+IC0Jc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5kZGM7 Cj4+ID4gPiArCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9ICZsc3Bjb24tPmludGVsX2Rw LT5hdXguZGRjOwo+PiA+ID4gwqAKPj4gPiA+IMKgCWVyciA9IGRybV9sc3Bjb25fZ2V0X21vZGUo YWRhcHRlciwgwqR0X21vZGUpOwo+PiA+ID4gwqAJaWYgKGVycikgewo+PiA+ID4gQEAgLTcyLDcg KzcyLDcgQEAgc3RhdGljIGludCBsc3Bjb25fY2hhbmdlX21vZGUoc3RydWN0IGludGVsX2xzcGNv biAqbHNwY29uLAo+PiA+ID4gwqBzdGF0aWMgYm9vbCBsc3Bjb25fcHJvYmUoc3RydWN0IGludGVs X2xzcGNvbiAqbHNwY29uKQo+PiA+ID4gwqB7Cj4+ID4gPiDCoAllbnVtIGRybV9kcF9kdWFsX21v ZGVfdHlwZSBhZGFwdG9yX3R5cGU7Cj4+ID4gPiAtCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRl ciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwo+PiA+ID4gKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0 ZXIgPSAmbHNwY29uLT5pbnRlbF9kcC0+YXV4LmRkYzsKPj4gPiA+IMKgCj4+ID4gPiDCoAkvKiBM ZXRzIHByb2JlIHRoZSBhZGFwdG9yIGFuZCBjaGVjayBpdHMgdHlwZSAqLwo+PiA+ID4gwqAJYWRh cHRvcl90eXBlID0gZHJtX2RwX2R1YWxfbW9kZV9kZXRlY3QoYWRhcHRlcik7Cj4+ID4gPiBAQCAt ODksOCArODksNDIgQEAgc3RhdGljIGJvb2wgbHNwY29uX3Byb2JlKHN0cnVjdCBpbnRlbF9sc3Bj b24gKmxzcGNvbikKPj4gPiA+IMKgCXJldHVybiB0cnVlOwo+PiA+ID4gwqB9Cj4+ID4gPiDCoAo+ PiA+ID4gK3N0YXRpYyB2b2lkIGxzcGNvbl9yZXN1bWVfaW5fcGNvbl93YShzdHJ1Y3QgaW50ZWxf bHNwY29uICpsc3Bjb24pCj4+ID4gPiArewo+PiA+ID4gKwl1bnNpZ25lZCBsb25nIHN0YXJ0ID0g amlmZmllczsKPj4gPiA+ICsKPj4gPiA+ICsJaWYgKCFsc3Bjb24tPmRlc2NfdmFsaWQpCj4+ID4g PiArCQlyZXR1cm47Cj4+ID4gPiArCj4+ID4gPiArCXdoaWxlICgxKSB7Cj4+ID4gPiArCQlzdHJ1 Y3QgaW50ZWxfZHBfZGVzYyBkZXNjOwo+PiA+ID4gKwo+PiA+ID4gKwkJLyoKPj4gPiA+ICsJCcKg KiBUaGUgdy9hIG9ubHkgYXBwbGllcyBpbiBQQ09OIG1vZGUgYW5kIHdlIGRvbid0IGV4cGVjdCBh bnkKPj4gPiA+ICsJCcKgKiBBVVggZXJyb3JzLgo+PiA+ID4gKwkJwqAqLwo+PiA+ID4gKwkJaWYg KCFpbnRlbF9kcF9yZWFkX2Rlc2MobHNwY29uLT5pbnRlbF9kcCwgJmRlc2MpKQo+PiA+ID4gKwkJ CXJldHVybjsKPj4gPiA+ICsKPj4gPiA+ICsJCWlmICghbWVtY21wKCZsc3Bjb24tPmRlc2MsICZk ZXNjLCBzaXplb2YoZGVzYykpKSB7Cj4+ID4gPiArCQkJRFJNX0RFQlVHX0tNUygiTFNQQ09OIHJl Y292ZXJpbmcgaW4gUENPTiBtb2RlIGFmdGVyICV1IG1zXG4iLAo+PiA+ID4gKwkJCQnCoMKgwqDC oMKgwqBqaWZmaWVzX3RvX21zZWNzKGppZmZpZXMgLSBzdGFydCkpOwo+PiA+ID4gKwkJCXJldHVy bjsKPj4gPiA+ICsJCX0KPj4gPiA+ICsKPj4gPiA+ICsJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMs IHN0YXJ0ICsgbXNlY3NfdG9famlmZmllcygxMDAwKSkpCj4+ID4gPiArCQkJYnJlYWs7Cj4+ID4g PiArCj4+ID4gPiArCQltc2xlZXAoMTApOwo+PiA+ID4gKwl9Cj4+ID4gPiArCj4+ID4gPiArCURS TV9ERUJVR19LTVMoIkxTUENPTiBEUCBkZXNjcmlwdG9yIG1pc21hdGNoIGFmdGVyIHJlc3VtZVxu Iik7Cj4+ID4gPiArfQo+PiA+IAo+PiA+IEkgdGhpbmsgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRo ZSBMU1BDT04gc3BlYyBvbmNlIG1vcmUgYmVmb3JlIHdlIG1lcmdlCj4+ID4gdGhpcy4gTWF5YmUg d2UgZG9uJ3QgcmVzZXQgdGhlIExTUENPTiBwcm9wZXJseS4gTWF5YmUgd2UgZG9uJ3QgaGFuZGxl Cj4+ID4gdGhlIHJlc3VtZSBwcm9wZXJseS4gTWF5YmUgdGhpcyBpc24ndCBhICJ3b3JrYXJvdW5k IiBhZnRlciBhbGwuCj4+IAo+PiBMb29rcyBsaWtlIHRoaXMgc3R1ZmYgaXMgbm9ybWFsIGJlaGF2 aW91ciBpZiB0aGUgTFNQQ09OIGhhcyBiZWVuIGluIGxvdwo+PiBwb3dlciBzdGF0ZSwgYW5kIHdl IG5lZWQgdG8gd2FrZSBpdCB1cC4gSW4gUENPTiBtb2RlLCB0aGlzIGlzIGRvbmUgdXNpbmcKPj4g RFBfU0VUX1BPV0VSLiBBbmQgd2hpbGUgd2FraW5nIHVwLCBpdCdsbCBpc3N1ZSBBVVggREVGRVIs IGFzIHdlIGNhbiBzZWUKPj4gZnJvbSB0aGUgbG9ncy4KPgo+IEkgZGlkIHRoaW5rIGFib3V0IHRo YXQsIGJ1dCB3YWtpbmcgdGhlIGRldmljZSB2aWEgRFBfU0VUX1BPV0VSKEQwKQo+IGRpZG4ndCBo ZWxwLiBEb2luZyBhbnkgQVVYIHdyaXRlIHRyYW5zYWN0aW9ucyBhY3R1YWxseSBnZXRzIHRoZSBk ZXZpY2UKPiBpbnRvIGEgc3R1Y2sgc3RhdGUgZm9yIGdvb2QgKHVudGlsIG5leHQgcmVib290IG9u IEFQTCkuCj4KPiBNb3JlIG92ZXIsIHdlIGRvbid0IGdldCBBVVggREVGRVJzIHRoZSBBVVggdHJh bnNhY3Rpb25zIHN1Y2NlZWQsIGl0J3MKPiBvbmx5IHRoYXQgcmVhZHMgd2lsbCByZXR1cm4gY29y cnVwdGVkIHZhbHVlcyBmb3IgdGhlIGdpdmVuIHRpbWUgcGVyaW9kLgoKVGhlIGJ1ZyBhdCBoYW5k IGhhcyBuYXRpdmUgZGVmZXJzCmh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcu Y2dpP2lkPTk4MzUzCgpCUiwKSmFuaS4KCgo+Cj4gLS1JbXJlCj4KPj4gCj4+IFdlIG5lZWQgdG8g ZG8gc29tZXRoaW5nLCBidXQgSSBkb24ndCB0aGluayB0aGlzIHBhdGNoIGlzIHRoZSByaWdodCBm aXguCj4+IAo+PiBCUiwKPj4gSmFuaS4KPj4gCj4+IAo+PiAKPj4gPiAKPj4gPiBCUiwKPj4gPiBK YW5pLgo+PiA+IAo+PiA+ID4gKwo+PiA+ID4gwqB2b2lkIGxzcGNvbl9yZXN1bWUoc3RydWN0IGlu dGVsX2xzcGNvbiAqbHNwY29uKQo+PiA+ID4gwqB7Cj4+ID4gPiArCWxzcGNvbl9yZXN1bWVfaW5f cGNvbl93YShsc3Bjb24pOwo+PiA+ID4gKwo+PiA+ID4gwqAJaWYgKGxzcGNvbl9jaGFuZ2VfbW9k ZShsc3Bjb24sIERSTV9MU1BDT05fTU9ERV9QQ09OLCB0cnVlKSkKPj4gPiA+IMKgCQlEUk1fRVJS T1IoIkxTUENPTiByZXN1bWUgZmFpbGVkXG4iKTsKPj4gPiA+IMKgCWVsc2UKPj4gPiA+IEBAIC0x MTEsNyArMTQ1LDcgQEAgYm9vbCBsc3Bjb25faW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICppbnRlbF9kaWdfcG9ydCkKPj4gPiA+IMKgCj4+ID4gPiDCoAlsc3Bjb24tPmFjdGl2ZSA9IGZh bHNlOwo+PiA+ID4gwqAJbHNwY29uLT5tb2RlID0gRFJNX0xTUENPTl9NT0RFX0lOVkFMSUQ7Cj4+ ID4gPiAtCWxzcGNvbi0+YXV4ID0gJmRwLT5hdXg7Cj4+ID4gPiArCWxzcGNvbi0+aW50ZWxfZHAg PSBkcDsKPj4gPiA+IMKgCj4+ID4gPiDCoAlpZiAoIWxzcGNvbl9wcm9iZShsc3Bjb24pKSB7Cj4+ ID4gPiDCoAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcHJvYmUgbHNwY29uXG4iKTsKPj4gPiA+IEBA IC0xMzEsMTIgKzE2NSwxMCBAQCBib29sIGxzcGNvbl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0KQo+PiA+ID4gwqAJCX0KPj4gPiA+IMKgCX0KPj4gPiA+IMKg Cj4+ID4gPiAtCWlmIChkcm1fZGVidWcgJiBEUk1fVVRfS01TKSB7Cj4+ID4gPiAtCQlzdHJ1Y3Qg aW50ZWxfZHBfZGVzYyBkZXNjOwo+PiA+ID4gLQo+PiA+ID4gLQkJaWYgKGludGVsX2RwX3JlYWRf ZGVzYyhkcCwgJmRlc2MpKQo+PiA+ID4gLQkJCWludGVsX2RwX3ByaW50X2Rlc2MoZHAsICZkZXNj KTsKPj4gPiA+IC0JfQo+PiA+ID4gKwlsc3Bjb24tPmRlc2NfdmFsaWQgPSBpbnRlbF9kcF9yZWFk X2RwY2QoZHApICYmCj4+ID4gPiArCQkJwqDCoMKgwqDCoGludGVsX2RwX3JlYWRfZGVzYyhkcCwg JmxzcGNvbi0+ZGVzYyk7Cj4+ID4gPiArCWlmICgoZHJtX2RlYnVnICYgRFJNX1VUX0tNUykgJiYg bHNwY29uLT5kZXNjX3ZhbGlkKQo+PiA+ID4gKwkJaW50ZWxfZHBfcHJpbnRfZGVzYyhkcCwgJmxz cGNvbi0+ZGVzYyk7Cj4+ID4gPiDCoAo+PiA+ID4gwqAJRFJNX0RFQlVHX0tNUygiU3VjY2Vzczog TFNQQ09OIGluaXRcbiIpOwo+PiA+ID4gwqAJcmV0dXJuIHRydWU7Cj4+IAoKLS0gCkphbmkgTmlr dWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK