From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v4 5/8] drm/i915/skl: Add DC6 Trigger sequence. Date: Mon, 4 May 2015 11:44:42 +0200 Message-ID: <20150504094442.GU30184@phenom.ffwll.local> References: <1429174334-12089-1-git-send-email-animesh.manna@intel.com> <1429174334-12089-6-git-send-email-animesh.manna@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f54.google.com (mail-wg0-f54.google.com [74.125.82.54]) by gabe.freedesktop.org (Postfix) with ESMTP id BE4D16E391 for ; Mon, 4 May 2015 02:42:23 -0700 (PDT) Received: by wgyo15 with SMTP id o15so144306785wgy.2 for ; Mon, 04 May 2015 02:42:23 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1429174334-12089-6-git-send-email-animesh.manna@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Animesh Manna Cc: Suketu Shah , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMTYsIDIwMTUgYXQgMDI6MjI6MTFQTSArMDUzMCwgQW5pbWVzaCBNYW5uYSB3 cm90ZToKPiBGcm9tOiBTdWtldHUgU2hhaCA8c3VrZXR1Lmouc2hhaEBpbnRlbC5jb20+Cj4gCj4g QWRkIHRyaWdnZXJzIGZvciBEQzYgYXMgcGVyIGRldGFpbHMgcHJvdmlkZWQgaW4gc2tsX2VuYWJs ZV9kYzYKPiBhbmQgc2tsX2Rpc2FibGVfZGM2IGltcGxlbWVudGF0aW9ucy4KPiAKPiBBbHNvIENh bGwgUE9TVElOR19SRUFEIGZvciBldmVyeSB3cml0ZSB0byBhIHJlZ2lzdGVyIHRvIGVuc3VyZQo+ IGl0IGlzIHdyaXR0ZW4gdG8gaW1tZWRpYXRlbHkKPiAKPiB2MTogUmVtb3ZlIFBPU1RJTkdfUkVB RCBhbmQgaW50ZWxfcHJlcGFyZV9kZGkgY2FsbHMgYXMgdGhleSd2ZSBiZWVuIGFkZGVkIGluIHBy ZXZpb3VzIHBhdGNoZXMuCj4gCj4gdjI6Cj4gMV0gUmVtb3ZlIGNoZWNrIGZvciBiYWNrbGlnaHQg ZGlzYWJsZWQgYXMgaXQgc2hvdWxkIGJlIHRoZSBjYXNlIGJ5IHRoYXQgdGltZS4KPiAyXSBNYXJr IERDNSBhcyBkaXNhYmxlZCB3aGVuIGVuYWJsaW5nIERDNi4KPiAzXSBSZXR1cm4gZnJvbSBEQzUt ZGlzYWJsaW5nIGZ1bmN0aW9uIGVhcmx5IGlmIERDNSBpcyBhbHJlYWR5IGJlIGRpc2FibGVkIHdo aWNoIGNhbiBoYXBwZW4KPiAgICBkdWUgdG8gREM2LWVuYWJsaW5nIGVhcmxpZXIuCj4gM10gRW5z dXJlIENTUiBmaXJtd2FyZSBpcyBsb2FkZWQgYWZ0ZXIgcmVzdW1lIGZyb20gREM2IGFzIGNvcnJl c3BvbmRpbmcgbWVtb3J5IGNvbnRlbnRzIHdvbid0Cj4gICAgYmUgcmV0YWluZWQgYWZ0ZXIgcnVu dGltZS1zdXNwZW5kLgo+IDRdIEVuc3VyZSB0aGF0IENTUiBpc24ndCBpZGVudGlmaWVkIGFzIGxv YWRlZCBiZWZvcmUgQ1NSLWxvYWRpbmcgcHJvZ3JhbSBpcyBjYWxsZWQgZHVyaW5nCj4gICAgcnVu dGltZS1yZXN1bWUuCj4gCj4gdjM6IFJlYmFzZSB0byBsYXRlc3QKPiBNb2RpZmllZCBhcyBwZXIg cmV2aWV3IGNvbW1lbnRzIGZyb20gSW1yZSBhbmQgYWZ0ZXIgZGlzY3Vzc2lvbiB3aXRoIEFydDoK PiAxXSBEQzYgc2hvdWxkIGJlIHByZWZlcmFibHkgZW5hYmxlZCB3aGVuIFBHMiBpcyBkaXNhYmxl ZCBieSBTVyBhcyB0aGUgY2hlY2sgZm9yIFBHMSBiZWluZwo+ICAgIGRpc2FibGVkIGlzIHRha2Vu IG9mIGJ5IEhXIHRvIGVudGVyIERDNiwgYW5kIGRpc2FibGVkIHdoZW4gUEcyIGlzIGVuYWJsZWQg cmVzcGVjdGl2ZWx5Lgo+ICAgIFRoaXMgaGVscHMgc2F2ZSBtb3JlIHBvd2VyLCBlc3BlY2lhbGx5 IGluIHRoZSBjYXNlIHdoZW4gZGlzcGxheSBpcyBkaXNhYmxlZCBidXQgR1QgaXMKPiAgICBlbmFi bGVkLiBBY2NvcmRpbmdseSwgcmVwbGFjaW5nIERDNSB0cmlnZ2VyIHNlcXVlbmNlIHdpdGggREM2 IGZvciBTS0wuCj4gMl0gREM2IGNvdWxkIGJlIGVuYWJsZWQgZnJvbSBpbnRlbF9ydW50aW1lX3N1 c3BlbmQoKSBmdW5jdGlvbiwgaWYgREM1IGlzIGFscmVhZHkgZW5hYmxlZC4KPiAzXSBNb3ZlIENT Ui1sb2FkLXN0YXR1cyBzZXR0aW5nIGNvZGUgZnJvbSBpbnRlbF9ydW50aW1lX3N1c3BlbmQgZnVu Y3Rpb24gdG8gYSBuZXcgZnVuY3Rpb24uCj4gCj4gdjQ6Cj4gMV0gRW5hYmxlL2Rpc2FibGUgREM2 IG9ubHkgd2hlbiB0b2dnbGluZyB0aGUgcG93ZXItd2VsbCB1c2luZyBhIG5ld2x5IGRlZmluZWQg bWFjcm8gRU5BQkxFX0RDNi4KPiAKPiB2NToKPiAxXSBMb2FkIENTUiBvbiBzeXN0ZW0gcmVzdW1l IHRvbyBhcyBmaXJtd2FyZSBtYXkgYmUgbG9zdCBvbiBzeXN0ZW0gc3VzcGVuZCBwcmV2ZW50aW5n Cj4gICAgZW5hYmxpbmcgREM1LCBEQzYuCj4gMl0gRERJIGJ1ZmZlcnMgc2hvdWxkbid0IGJlIHBy b2dyYW1tZWQgZHVyaW5nIGRyaXZlci1sb2FkL3Jlc3VtZSBhcyBpdCdzIGFscmVhZHkgZG9uZQo+ ICAgIGR1cmluZyBtb2Rlc2V0IGluaXRpYWxpemF0aW9uIHRoZW4gYW5kIGFsc28gdGhhdCB0aGUg ZW5jb2RlciBsaXN0IGlzIHN0aWxsIHVuaW5pdGlhbGl6ZWQgYnkKPiAgICB0aGVuLiBUaGVyZWZv cmUsIGNhbGwgaW50ZWxfcHJlcGFyZV9kZGkgZnVuY3Rpb24gcmlnaHQgYWZ0ZXIgZGlzYWJsaW5n IERDNiBidXQgb3V0c2lkZQo+ICAgIHNrbF9kaXNhYmxlX2RjNiBmdW5jdGlvbiBhbmQgbm90IGR1 cmluZyBkcml2ZXItbG9hZC9yZXN1bWUuCj4gCj4gdjY6Cj4gMV0gUmViYXNlIHRvIGxhdGVzdC4K PiAyXSBNb3ZlIFNLTF9FTkFCTEVfREM2IG1hY3JvIGRlZmluaXRpb24gZnJvbSBpbnRlbF9kaXNw bGF5LmMgdG8gaW50ZWxfcnVudGltZV9wbS5jLgo+IAo+IHY3Ogo+IDEpIFJlZmFjdG9yZWQgdGhl IGNvZGUgZm9yIHJlbW92aW5nIHRoZSB3YXJuaW5nIGdvdCBmcm9tIGNoZWNrcGF0Y2guCj4gMikg QWZ0ZXIgYWRkaW5nIGRtYyB2ZXIgMS4wIHN1cHBvcnQgcmViYXNlZCBvbiB0b3Agb2YgbmlnaHRs eS4gKEFuaW1lc2gpCj4gCj4gdjg6Cj4gLSBSZXZlcnRlZCB0aGUgY2hhbmdlcyBkb25lIGluIHY3 Lgo+IC0gUmVtb3ZlZCB0aGUgY29uZGl0aW9uIGNoZWNrIGluIHNrbF9wcmVwYXJlX3Jlc3VuZSgp LiAoQW5pbWVzaCkKPiAKPiBJc3N1ZTogVklaLTI4MTkKPiBTaWduZWQtb2ZmLWJ5OiBBLlN1bmls IEthbWF0aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBTdWtldHUg U2hhaCA8c3VrZXR1Lmouc2hhaEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGFtaWVuIExl c3BpYXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbmltZXNo IE1hbm5hIDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgNDMgKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCBhY2Qw ZTJiLi4wZjU5MGUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTU5NCw2ICs1 OTQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zdXNwZW5kX2VuY29kZXJzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgc3RhdGljIGludCBpbnRlbF9zdXNwZW5kX2NvbXBsZXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHN0YXRpYyBpbnQgdmx2X3Jl c3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAg ICAgYm9vbCBycG1fcmVzdW1lKTsKPiArc3RhdGljIGludCBza2xfcmVzdW1lX3ByZXBhcmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArCj4gIAo+ICBzdGF0aWMgaW50IGk5 MTVfZHJtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+IEBAIC04MDgsNiAr ODEwLDggQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWVfZWFybHkoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCj4gIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxM KGRldl9wcml2KSkKPiAgCQloc3dfZGlzYWJsZV9wYzgoZGV2X3ByaXYpOwo+ICsJZWxzZSBpZiAo SVNfU0tZTEFLRShkZXZfcHJpdikpCj4gKwkJcmV0ID0gc2tsX3Jlc3VtZV9wcmVwYXJlKGRldl9w cml2KTsKPiAgCj4gIAlpbnRlbF91bmNvcmVfc2FuaXRpemUoZGV2KTsKPiAgCWludGVsX3Bvd2Vy X2RvbWFpbnNfaW5pdF9odyhkZXZfcHJpdik7Cj4gQEAgLTEwMjIsNiArMTAyNiwxOSBAQCBzdGF0 aWMgaW50IGk5MTVfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgCXJldHVybiBpOTE1 X2RybV9yZXN1bWUoZHJtX2Rldik7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgc2tsX3N1c3BlbmRf Y29tcGxldGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwkvKiBF bmFibGluZyBEQzYgaXMgbm90IGEgaGFyZCByZXF1aXJlbWVudCB0byBlbnRlciBydW50aW1lIEQz ICovCj4gKwo+ICsJLyoKPiArCSAqIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgQ1NSIGlzbid0IGlk ZW50aWZpZWQgYXMgbG9hZGVkIGJlZm9yZQo+ICsJICogQ1NSLWxvYWRpbmcgcHJvZ3JhbSBpcyBj YWxsZWQgZHVyaW5nIHJ1bnRpbWUtcmVzdW1lLgo+ICsJICovCj4gKwlpbnRlbF9jc3JfbG9hZF9z dGF0dXNfc2V0KGRldl9wcml2LCBGV19VTklOSVRJQUxJWkVEKTsKPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiAgc3RhdGljIGludCBoc3dfc3VzcGVuZF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCWhzd19lbmFibGVfcGM4KGRldl9wcml2KTsK PiBAQCAtMTAyOSw2ICsxMDQ2LDE1IEBAIHN0YXRpYyBpbnQgaHN3X3N1c3BlbmRfY29tcGxldGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gK3N0YXRpYyBpbnQgc2tsX3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5k ZXY7Cj4gKwo+ICsJaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShkZXYpOwo+ICsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBTYXZlIGFsbCBHdW5pdCByZWdpc3RlcnMgdGhhdCBtYXkg YmUgbG9zdCBhZnRlciBhIEQzIGFuZCBhIHN1YnNlcXVlbnQKPiAgICogUzBpW1IxMjNdIHRyYW5z aXRpb24uIFRoZSBsaXN0IG9mIHJlZ2lzdGVycyBuZWVkaW5nIGEgc2F2ZS9yZXN0b3JlIGlzCj4g QEAgLTE0ODcsNiArMTUxMyw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3Ry dWN0IGRldmljZSAqZGV2aWNlKQo+ICAKPiAgCWlmIChJU19HRU42KGRldl9wcml2KSkKPiAgCQlp bnRlbF9pbml0X3BjaF9yZWZjbGsoZGV2KTsKPiArCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkK PiArCQlyZXQgPSBza2xfcmVzdW1lX3ByZXBhcmUoZGV2X3ByaXYpOwoKSSByZXNvbHZlZCB0aGUg Y29uZmxpY3RzIHdpdGggYnh0IHN1cHBvcnQgaGVyZSBhc3N1bWluZyB0aGF0IHRoZXJlJ3Mgbm8K ZnVuY3Rpb25hbCBjb25mbGljdHMgc2luY2UgZGM2IGlzIHNrbC1vbmx5LiBCdXQgcGxlYXNlIGRv dWJsZS1jaGVjayBqdXN0CnRvIG1ha2Ugc3VyZS4KCj4gIAllbHNlIGlmIChJU19IQVNXRUxMKGRl dl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCWhzd19kaXNhYmxlX3BjOChk ZXZfcHJpdik7Cj4gIAllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKPiBAQCAtMTUx OSw2ICsxNTQ3LDggQEAgc3RhdGljIGludCBpbnRlbF9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk ZXZfcHJpdi0+ZGV2Owo+ICAJaW50IHJldDsKPiAgCj4gKwlpZiAoSVNfU0tZTEFLRShkZXYpKQo+ ICsJCXJldCA9IHNrbF9zdXNwZW5kX2NvbXBsZXRlKGRldl9wcml2KTsKPiAgCWlmIChJU19IQVNX RUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCj4gIAkJcmV0ID0gaHN3X3N1c3BlbmRfY29t cGxldGUoZGV2X3ByaXYpOwo+ICAJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBpbmRleCBkYThjMThkLi43ZTY5MDhl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC00OSw3 ICs0OSw4IEBACj4gICAqIHByZXNlbnQgZm9yIGEgZ2l2ZW4gcGxhdGZvcm0uCj4gICAqLwo+ICAK PiAtI2RlZmluZSBHRU45X0VOQUJMRV9EQzUoZGV2KSAoSVNfU0tZTEFLRShkZXYpKQo+ICsjZGVm aW5lIEdFTjlfRU5BQkxFX0RDNShkZXYpIDAKPiArI2RlZmluZSBTS0xfRU5BQkxFX0RDNihkZXYp IElTX1NLWUxBS0UoZGV2KQo+ICAKPiAgI2RlZmluZSBmb3JfZWFjaF9wb3dlcl93ZWxsKGksIHBv d2VyX3dlbGwsIGRvbWFpbl9tYXNrLCBwb3dlcl9kb21haW5zKQlcCj4gIAlmb3IgKGkgPSAwOwkJ CQkJCQlcCj4gQEAgLTM5Nyw2ICszOTgsMTYgQEAgc3RhdGljIHZvaWQgZ2VuOV9kaXNhYmxlX2Rj NShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlQT1NUSU5HX1JFQUQoRENf U1RBVEVfRU4pOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBza2xfZW5hYmxlX2RjNihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCS8qIFRPRE86IEltcGxlbWVudGF0 aW9uIHRvIGJlIGRvbmUuICovCj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNrbF9kaXNhYmxlX2Rj NihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCS8qIFRPRE86IElt cGxlbWVudGF0aW9uIHRvIGJlIGRvbmUuICovCj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIHNrbF9z ZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXN0 cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwsIGJvb2wgZW5hYmxlKQo+ICB7Cj4gQEAg LTQ0NCw5ICs0NTUsMjEgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSFJOTE1X1JFQUQoSFNXX1BXUl9XRUxM X0JJT1MpLAo+ICAJCQkJIkludmFsaWQgZm9yIHBvd2VyIHdlbGwgc3RhdHVzIHRvIGJlIGVuYWJs ZWQsIHVubGVzcyBkb25lIGJ5IHRoZSBCSU9TLCBcCj4gIAkJCQl3aGVuIHJlcXVlc3QgaXMgdG8g ZGlzYWJsZSFcbiIpOwo+IC0JCQlpZiAoR0VOOV9FTkFCTEVfREM1KGRldikgJiYKPiAtCQkJCXBv d2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikKPiAtCQkJCWdlbjlfZGlzYWJsZV9kYzUo ZGV2X3ByaXYpOwo+ICsJCQlpZiAoKEdFTjlfRU5BQkxFX0RDNShkZXYpIHx8IFNLTF9FTkFCTEVf REM2KGRldikpICYmCj4gKwkJCQlwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIpIHsK PiArCQkJCWlmIChTS0xfRU5BQkxFX0RDNihkZXYpKSB7Cj4gKwkJCQkJc2tsX2Rpc2FibGVfZGM2 KGRldl9wcml2KTsKPiArCQkJCQkvKgo+ICsJCQkJCSAqIERESSBidWZmZXIgcHJvZ3JhbW1pbmcg dW5uZWNlc3NhcnkgZHVyaW5nIGRyaXZlci1sb2FkL3Jlc3VtZQo+ICsJCQkJCSAqIGFzIGl0J3Mg YWxyZWFkeSBkb25lIGR1cmluZyBtb2Rlc2V0IGluaXRpYWxpemF0aW9uIHRoZW4uCj4gKwkJCQkJ ICogSXQncyBhbHNvIGludmFsaWQgaGVyZSBhcyBlbmNvZGVyIGxpc3QgaXMgc3RpbGwgdW5pbml0 aWFsaXplZC4KPiArCQkJCQkgKi8KPiArCQkJCQlpZiAoIWRldl9wcml2LT5wb3dlcl9kb21haW5z LmluaXRpYWxpemluZykKPiArCQkJCQkJaW50ZWxfcHJlcGFyZV9kZGkoZGV2KTsKPiArCQkJCX0g ZWxzZSB7Cj4gKwkJCQkJZ2VuOV9kaXNhYmxlX2RjNShkZXZfcHJpdik7Cj4gKwkJCQl9Cj4gKwkJ CX0KPiAgCQkJSTkxNV9XUklURShIU1dfUFdSX1dFTExfRFJJVkVSLCB0bXAgfCByZXFfbWFzayk7 Cj4gIAkJfQo+ICAKPiBAQCAtNDY0LDE3ICs0ODcsMjMgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9w b3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJUE9TVElO R19SRUFEKEhTV19QV1JfV0VMTF9EUklWRVIpOwo+ICAJCQlEUk1fREVCVUdfS01TKCJEaXNhYmxp bmcgJXNcbiIsIHBvd2VyX3dlbGwtPm5hbWUpOwo+ICAKPiAtCQkJaWYgKEdFTjlfRU5BQkxFX0RD NShkZXYpICYmCj4gKwkJCWlmICgoR0VOOV9FTkFCTEVfREM1KGRldikgfHwgU0tMX0VOQUJMRV9E QzYoZGV2KSkgJiYKPiAgCQkJCXBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikgewo+ ICAJCQkJZW51bSBjc3Jfc3RhdGUgc3RhdGU7Cj4gLQo+ICsJCQkJLyogVE9ETzogd2FpdCBmb3Ig YSBjb21wbGV0aW9uIGV2ZW50IG9yCj4gKwkJCQkgKiBzaW1pbGFyIGhlcmUgaW5zdGVhZCBvZiBi dXN5Cj4gKwkJCQkgKiB3YWl0aW5nIHVzaW5nIHdhaXRfZm9yIGZ1bmN0aW9uLgo+ICsJCQkJICov Cj4gIAkJCQl3YWl0X2Zvcigoc3RhdGUgPSBpbnRlbF9jc3JfbG9hZF9zdGF0dXNfZ2V0KGRldl9w cml2KSkgIT0KPiAgCQkJCQkJRldfVU5JTklUSUFMSVpFRCwgMTAwMCk7Cj4gIAkJCQlpZiAoc3Rh dGUgIT0gRldfTE9BREVEKQo+ICAJCQkJCURSTV9FUlJPUigiQ1NSIGZpcm13YXJlIG5vdCByZWFk eSAoJWQpXG4iLAo+ICAJCQkJCQkJc3RhdGUpOwo+ICAJCQkJZWxzZQo+IC0JCQkJCWdlbjlfZW5h YmxlX2RjNShkZXZfcHJpdik7Cj4gKwkJCQkJaWYgKFNLTF9FTkFCTEVfREM2KGRldikpCj4gKwkJ CQkJCXNrbF9lbmFibGVfZGM2KGRldl9wcml2KTsKPiArCQkJCQllbHNlCj4gKwkJCQkJCWdlbjlf ZW5hYmxlX2RjNShkZXZfcHJpdik7CgpZZXAsIHNrbF9zZXRfcG93ZXJfd2VsbCBpcyBkZWZpbml0 ZWx5IGdvaW5nIG92ZXIgdGhlIHRvcC4gUnVsZSBvZiB0aHVtYiBpcwp0aGF0IHlvdSBzaG91bGRu J3QgdXNlIG1vcmUgdGhhbiAzIHRhYnMgaW4gYSBmdW5jdGlvbiwgbWF5YmUgNCBmb3IgYW4gaWYK KGVycm9yX2NvbmRpdGlvbikgYmFpbGVfb3V0OyBjaGVjay4KLURhbmllbAoKPiAgCQkJfQo+ICAJ CX0KPiAgCX0KPiAtLSAKPiAyLjAuMgo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK