From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 1/5] drm: Helper for LSPCON in drm_dp_dual_mode Date: Tue, 31 May 2016 16:22:08 +0530 Message-ID: <574D6CD8.3030607@intel.com> References: <1464686746-5099-1-git-send-email-shashank.sharma@intel.com> <1464686746-5099-2-git-send-email-shashank.sharma@intel.com> <20160531095253.GQ4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id B67066E3EA for ; Tue, 31 May 2016 10:52:11 +0000 (UTC) In-Reply-To: <20160531095253.GQ4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?windows-1252?Q?Ville_Syrj=E4l=E4?= Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzIGZvciB0aGUgcmV2aWV3LCBWaWxsZS4KTXkgY29tbWVudHMsIGlubGluZS4KClJlZ2Fy ZHMKU2hhc2hhbmsKT24gNS8zMS8yMDE2IDM6MjIgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToK PiBPbiBUdWUsIE1heSAzMSwgMjAxNiBhdCAwMjo1NTo0MlBNICswNTMwLCBTaGFzaGFuayBTaGFy bWEgd3JvdGU6Cj4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hh cm1hQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21v ZGVfaGVscGVyLmMgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgaW5j bHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaCAgICAgfCAyOSArKysrKysrKysrKwo+ PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMKPj4gaW5kZXggYTdiMmE3NS4uMTFjYWIyNSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMKPj4gQEAg LTE0OCw2ICsxNDgsMTIgQEAgc3RhdGljIGJvb2wgaXNfdHlwZTJfYWRhcHRvcih1aW50OF90IGFk YXB0b3JfaWQpCj4+ICAgCQkJICAgICAgRFBfRFVBTF9NT0RFX1JFVl9UWVBFMik7Cj4+ICAgfQo+ Pgo+PiArYm9vbCBpc19sc3Bjb25fYWRhcHRvcihjb25zdCBjaGFyIGhkbWlfaWRbRFBfRFVBTF9N T0RFX0hETUlfSURfTEVOXSwKPj4gKwljb25zdCB1aW50OF90IGFkYXB0b3JfaWQpCj4+ICt7Cj4+ ICsJcmV0dXJuIGlzX2hkbWlfYWRhcHRvcihoZG1pX2lkKSAmJiAoYWRhcHRvcl9pZCA9PSAweGE4 KTsKPgo+Cj4gSSdkIHByb2JhYmx5IG1ha2UgdGhpcyBzb21ldGhpbmcgbGlrZQo+Cj4gI2RlZmlu ZSBEUF9EVUFMX01PREVfUkVTRVJWRURfTFNQQ09OIDB4MDgKPgo+ICAgICAgICAgIHJldHVybiBh ZGFwdG9yX2lkID09IChEUF9EVUFMX01PREVfVFlQRV9UWVBFMiB8Cj4gCSAgICAgICAgICAgICAg ICAgICAgICBEUF9EVUFMX01PREVfUkVTRVJWRURfTFNQQ09OIHwKPiAJICAgICAgICAgICAgICAg ICAgICAgIERQX0RVQUxfTU9ERV9SRVZfVFlQRTIpOwo+ClRoYW5rcywgdGhpcyBpcyBhIGdvb2Qg c3VnZ2VzdGlvbiwgSSB3aWxsIGRvIHNvLgo+Cj4+ICt9Cj4+ICsKPj4gICAvKioKPj4gICAgKiBk cm1fZHBfZHVhbF9tb2RlX2RldGVjdCAtIElkZW50aWZ5IHRoZSBEUCBkdWFsIG1vZGUgYWRhcHRv cgo+PiAgICAqIEBhZGFwdGVyOiBJMkMgYWRhcHRlciBmb3IgdGhlIEREQyBidXMKPj4gQEAgLTIw Myw2ICsyMDksOCBAQCBlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBkcm1fZHBfZHVhbF9tb2Rl X2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCj4+ICAgCXJldCA9IGRybV9kcF9k dWFsX21vZGVfcmVhZChhZGFwdGVyLCBEUF9EVUFMX01PREVfQURBUFRPUl9JRCwKPj4gICAJCQkJ ICAgICZhZGFwdG9yX2lkLCBzaXplb2YoYWRhcHRvcl9pZCkpOwo+PiAgIAlpZiAocmV0ID09IDAp IHsKPj4gKwkJaWYgKGlzX2xzcGNvbl9hZGFwdG9yKGhkbWlfaWQsIGFkYXB0b3JfaWQpKQo+PiAr CQkJcmV0dXJuIERSTV9EUF9EVUFMX01PREVfTFNQQ09OOwo+PiAgIAkJaWYgKGlzX3R5cGUyX2Fk YXB0b3IoYWRhcHRvcl9pZCkpIHsKPj4gICAJCQlpZiAoaXNfaGRtaV9hZGFwdG9yKGhkbWlfaWQp KQo+PiAgIAkJCQlyZXR1cm4gRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JOwo+PiBAQCAtMzY0 LDMgKzM3Miw4MCBAQCBjb25zdCBjaGFyICpkcm1fZHBfZ2V0X2R1YWxfbW9kZV90eXBlX25hbWUo ZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlwZSkKPj4gICAJfQo+PiAgIH0KPj4gICBFWFBP UlRfU1lNQk9MKGRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZSk7Cj4+ICsKPj4gKy8qKgo+ PiArICogZHJtX2xzcGNvbl9nZXRfY3VycmVudF9tb2RlOiBHZXQgTFNQQ09OJ3MgY3VycmVudCBt b2RlIG9mIG9wZXJhdGlvbiBieQo+PiArICogYnkgcmVhZGluZyBvZmZzZXQgKDB4ODAsIDB4NDEp Cj4+ICsgKiBAaTJjX2FkYXB0ZXI6IEkyQy1vdmVyLWF1eCBhZGFwdGVyCj4+ICsgKgo+PiArICog UmV0dXJuczoKPj4gKyAqIEVudW0gcmVwcmVzZW50aW5nIGN1cnJlbnQgbW9kZSBvZiBvcGVyYXRp b24KPj4gKyAqLwo+PiArZW51bSBkcm1fbHNwY29uX21vZGUKPj4gK2RybV9sc3Bjb25fZ2V0X2N1 cnJlbnRfbW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCj4KPiBUbyBtYXRjaCB3aXRo IGRybV9kcF9kdWFsX21vZGVfZ2V0X3RtZHNfb3V0cHV0KCkgdGhpcyBtYXkgd2FudCB0bwo+IHJl dHVybiB0aGUgZXJyb3Igc3RhdHVzLCBhbmQgcmV0dXJuIHRoZSBhY3R1YWwgbW9kZSB2aWEgYSBm dW5jdGlvbgo+IGFyZ3VtZW50Lgo+CnN1cmUsIGNhbiBiZSBkb25lLgo+IEFzIGZvciB0aGUgbmFt ZSBkcm1fZHBfZHVhbF9tb2RlX2dldF9sc3Bjb25fbW9kZSgpIGFuZAo+IGRybV9kcF9kdWFsX21v ZGVfc2V0X2xzcGNvbl9tb2RlKCkgcGVyaGFwcz8KPiBPciBkcm1fbHNwY29uX2dldF9tb2RlKCkv ZHJtX2xzcGNvbl9zZXRfbW9kZSgpIHBlcmhhcHMgaWYgd2Ugd2FudCB0bwo+IGtlZXAgdGhpbmdz IHNob3J0ZXI/Cj4KWWVwLCBpbml0aWFsbHkgSSBtYWRlIHRoZSBzYW1lIG5hbWVzIGFzIHlvdSBz dWdnZXN0ZWQsIGJ1dCAKZHJtX2RwX2R1YWxfbW9kZV9nZXRfbHNwY29uX21vZGUgZGludCBzb3Vu ZCBnb29kIHRvIG1lIDopLgpkcm1fbHNwY29uX2dldC9zZXRfbW9kZSBzb3VuZHMgZ29vZC4KPj4g K3sKPj4gKwl1OCBkYXRhOwo+PiArCWludCBlcnIgPSAwOwo+Cj4gSSB1c2VkICdyZXQnIGluIHRo ZSByZXN0IG9mIHRoZSBjb2RlLiBUaGlzIGlzIGEgYml0IGluY29uc2lzdGVudC4KZ290IGl0Lgo+ Cj4+ICsKPj4gKwkvKiBSZWFkIFN0YXR1czogaTJjIG92ZXIgYXV4ICovCj4+ICsJZXJyID0gZHJt X2RwX2R1YWxfbW9kZV9yZWFkKGFkYXB0ZXIsIERQX0RVQUxfTU9ERV9MU1BDT05fQ1VSUkVOVF9N T0RFLAo+PiArCQkJKHZvaWQgKikmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKPgo+IFBvaW50bGVzcyBj YXN0Lgo+Cmdvb2QgY2F0Y2gsIHRoaXMgaXMgdW5uZWNlc3NhcnkuCj4+ICsJaWYgKGVyciA8IDAp IHsKPgo+IGlmIChyZXQpIGlzIHdoYXQgSSd2ZSB1c2VkIGVsc2V3aGVyZS4KZ290IGl0Lgo+Cj4+ ICsJCURSTV9FUlJPUigiTFNQQ09OIHJlYWQoMHg4MCwgMHg0MSkgZmFpbGVkXG4iKTsKPgo+IEkn bSBub3Qgc3VyZSB3ZSB3YW50IGFuZCBFUlJPUiBmcm9tIGEgaGVscGVyLiBJIHVzZWQgRFJNX0RF QlVHX0tNUyBmb3IKPiB0aGUgb3RoZXIgZXJyb3IgcGF0aHMuCj4KSU1ITywgVGhpcyBpcyBhIGZh aWx1cmUgd2hpY2ggbmVlZHMgbm90aWNlLCBhcyBpdCBjYW4gcG9pbnQgb3V0IHRvIGEgSFcgCmxl dmVsIHByb2JsZW0sIG9yIGEgcHJvYmxlbSBpbiBMU1BDT04gRlcsIHNvIEkgd2lsbCBwcmVmZXIg dG8ga2VlcCBpdCBhcyAKZXJyb3IuCj4+ICsJCXJldHVybiBEUk1fTFNQQ09OX01PREVfSU5WQUxJ RDsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gZGF0YSAmIERQX0RVQUxfTU9ERV9MU1BDT05fTU9E RV9NQVNLID8KPj4gKwkJRFJNX0xTUENPTl9NT0RFX1BDT04gOiBEUk1fTFNQQ09OX01PREVfTFM7 Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKGRybV9sc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZSk7Cj4+ ICsKPj4gKy8qKgo+PiArICogZHJtX2xzcGNvbl9jaGFuZ2VfbW9kZTogQ2hhbmdlIExTUENPTidz IG1vZGUgb2Ygb3BlcmF0aW9uIGJ5Cj4+ICsgKiBieSB3cml0aW5nIG9mZnNldCAoMHg4MCwgMHg0 MCkKPj4gKyAqIEBpMmNfYWRhcHRlcjogSTJDLW92ZXItYXV4IGFkYXB0ZXIKPj4gKyAqIEByZXFk X21vZGU6IHJlcXVpcmVkIG1vZGUgb2Ygb3BlcmF0aW9uCj4+ICsgKgo+PiArICogUmV0dXJuczoK Pj4gKyAqIDAgb24gc3VjY2VzcywgLWVycm9yIG9uIGZhaWx1cmUvdGltZW91dAo+PiArICovCj4+ ICtpbnQgZHJtX2xzcGNvbl9jaGFuZ2VfbW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIs Cj4+ICsJZW51bSBkcm1fbHNwY29uX21vZGUgcmVxZF9tb2RlKQo+PiArewo+PiArCXU4IGRhdGE7 Cj4+ICsJaW50IGVycjsKPj4gKwlpbnQgdGltZV9vdXQgPSAyMDA7Cj4+ICsKPj4gKwlpZiAocmVx ZF9tb2RlID09IERSTV9MU1BDT05fTU9ERV9MUykKPj4gKwkJZGF0YSA9IH5EUF9EVUFMX01PREVf TFNQQ09OX01PREVfTUFTSzsKPgo+IElzIHRoYXQgcmVhbGx5IGNvcnJlY3Q/Cj4KT29wcywgaXQg d2FzIGEgYmx1bmRlciwgYnV0IGZvcnR1bmF0ZWx5IHRoYXQgcmVnaXN0ZXIgb25seSBib3RoZXJz IGFib3V0IApiaXQgMCwgYW5kIHRoYXQncyB3aHkgaXQgd29ya2VkLCBJIHdpbGwgZml4IHRoaXMu Cj4+ICsJZWxzZQo+PiArCQlkYXRhID0gRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX01BU0s7Cj4+ ICsKPj4gKwkvKiBDaGFuZ2UgbW9kZSAqLwo+PiArCWVyciA9IGRybV9kcF9kdWFsX21vZGVfd3Jp dGUoYWRhcHRlciwgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX0NIQU5HRSwKPj4gKwkJCSZkYXRh LCBzaXplb2YoZGF0YSkpOwo+PiArCWlmIChlcnIgPCAwKSB7Cj4+ICsJCURSTV9FUlJPUigiTFNQ Q09OIG1vZGUgY2hhbmdlIGZhaWxlZFxuIik7Cj4+ICsJCXJldHVybiBlcnI7Cj4+ICsJfQo+PiAr Cj4+ICsJLyoKPj4gKwkqIENvbmZpcm0gbW9kZSBjaGFuZ2UgYnkgcmVhZGluZyB0aGUgc3RhdHVz IGJpdC4KPj4gKwkqIFNvbWV0aW1lcywgaXQgdGFrZXMgYSB3aGlsZSB0byBjaGFuZ2UgdGhlIG1v ZGUsCj4+ICsJKiBzbyB3YWl0IGFuZCByZXRyeSB1bnRpbCB0aW1lIG91dCBvciBkb25lLgo+PiAr CSovCj4KPiBpbmRlbnQgZmFpbApPSy4KPgo+PiArCXdoaWxlICh0aW1lX291dCkgewo+PiArCQlp ZiAocmVxZF9tb2RlICE9IGRybV9sc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShhZGFwdGVyKSkgewo+ PiArCQkJbWRlbGF5KDEwKTsKPgo+IG1kZWxheSgpIGlzIGJhZC4KRG8geW91IHRoaW5rIEkgc2hv dWxkIHJlcGxhY2Ugd2l0aCBzb21lIG9mIHRoZSBub24tYnVzeSB3YWl0IChsaWtlIAptc2xlZXAg b3Igc28gPykKPgo+PiArCQkJdGltZV9vdXQgLT0gMTA7Cj4+ICsJCX0gZWxzZSB7Cj4+ICsJCQlE Uk1fREVCVUdfS01TKCJMU1BDT04gbW9kZSBjaGFuZ2VkIHRvICVzXG4iLAo+PiArCQkJcmVxZF9t b2RlID09IERSTV9MU1BDT05fTU9ERV9MUyA/ICJMUyIgOiAiUENPTiIpOwo+PiArCQkJcmV0dXJu IDA7Cj4+ICsJCX0KPj4gKwl9Cj4+ICsKPj4gKwlEUk1fRVJST1IoIkxTUENPTiBtb2RlIGNoYW5n ZSB0aW1lZCBvdXRcbiIpOwo+PiArCXJldHVybiAtRUZBVUxUOwo+Cj4gRUZBVUxUIGRvZW5zJ3Qg c2VlbSBsaWtlIGEgc2Vuc2libGUgZXJyb3IgdmFsdWUgaGVyZS4gRVRJTUVET1VUIEkKPiBzdXBw b3NlIHNlZW1zIGxpa2Ugd2hhdCB3ZSBzaG91bGQgcmV0dXJuLgpTdXJlLgo+Cj4+ICt9Cj4+ICtF WFBPUlRfU1lNQk9MKGRybV9sc3Bjb25fY2hhbmdlX21vZGUpOwo+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9k dWFsX21vZGVfaGVscGVyLmgKPj4gaW5kZXggZThhOWRmZC4uZjMzNWRmNSAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaAo+PiArKysgYi9pbmNsdWRl L2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oCj4+IEBAIC0yNCw2ICsyNCw3IEBACj4+ICAg I2RlZmluZSBEUk1fRFBfRFVBTF9NT0RFX0hFTFBFUl9ICj4+Cj4+ICAgI2luY2x1ZGUgPGxpbnV4 L3R5cGVzLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4+Cj4+ICAgLyoKPj4gICAg KiBPcHRpb25hbCBmb3IgdHlwZSAxIERWSSBhZGFwdG9ycwo+PiBAQCAtNTQsNiArNTUsOSBAQAo+ PiAgICNkZWZpbmUgRFBfRFVBTF9NT0RFX0hETUlfUElOX0NUUkwgMHgyMQo+PiAgICNkZWZpbmUg IERQX0RVQUxfTU9ERV9DRUNfRU5BQkxFIDB4MDEKPj4gICAjZGVmaW5lIERQX0RVQUxfTU9ERV9J MkNfU1BFRURfQ1RSTCAweDIyCj4KPiBNYXliZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIGhlcmUgdG8g c2VwYXJhdGUgdGhlIHN0YW5kYXJkIHJlZ3MgZnJvbSB0aGUKPiB2ZW5kb3Igc3BlY2lmaWMgb25l cy4gSG1tLiBBY3R1YWxseSB0aGUgdmVuZG9yIHJlZ2lzdGVyIHNwYWNlIGlzCj4gMHgzMC0weDNm LCB3aGVyZWFzIDB4NDArIGlzIHJlc2VydmVkLiBCdXQgYW55d2F5IGVtcHR5IGxpbmUgd291bGQK PiBzZWVtIHdhcnJhbnRlZC4KPgpHb3QgaXQuCj4+ICsjZGVmaW5lIERQX0RVQUxfTU9ERV9MU1BD T05fTU9ERV9DSEFOR0UJCTB4NDAKPj4gKyNkZWZpbmUgRFBfRFVBTF9NT0RFX0xTUENPTl9DVVJS RU5UX01PREUJCTB4NDEKPj4gKyNkZWZpbmUgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX01BU0sJ CQkweDEKPgo+IFBsZWFzZSBpbmRlbnQgdGhlIGJpdCBkZWZuaXRpb24gYnkgb25lIHNwYWNlIHRv IG1ha2UgaXQgc3RhbmQgb3V0IGZyb20KPiB0aGUgcmVnIGRlZmluZXMgYSBsaXR0bGUuCj4KT2ss IHRoZSBmaXJzdCB0d28gYXJlIHJlZ2lzdGVycyBvbmx5LCBJIGd1ZXNzIHRoaXMgaXMgZm9yIApE UF9EVUFMX01PREVfTFNQQ09OX01PREVfTUFTSy4gSSB3aWxsIGFsaWduIGl0Lgo+PiAgIHN0cnVj dCBpMmNfYWRhcHRlcjsKPj4KPj4gQEAgLTYzLDYgKzY3LDIwIEBAIHNzaXplX3QgZHJtX2RwX2R1 YWxfbW9kZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4+ICAgCQkJICAgICAg IHU4IG9mZnNldCwgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7Cj4+Cj4+ICAgLyoq Cj4+ICsqIGVudW0gZHJtX2xzcGNvbl9tb2RlCj4+ICsqIEBsc3Bjb25fbW9kZV9pbnZhbGlkOiBO byBpZGVhIHdoYXQncyBnb2luZyBvbgo+PiArKiBAbHNwY29uX21vZGVfbHM6IExldmVsIHNoaWZ0 ZXIgbW9kZSBvZiBMU1BDT04KPj4gKyoJd2hpY2ggZHJpdmVzIERQKysgdG8gSERNSSAxLjQgY29u dmVyc2lvbi4KPj4gKyogQGxzcGNvbl9tb2RlX3Bjb246IFByb3RvY29sIGNvbnZlcnRlciBtb2Rl IG9mIExTUENPTgo+PiArKgl3aGljaCBkcml2ZXMgRFArKyB0byBIRE1JIDIuMCBhY3RpdmUgY29u dmVyc2lvbi4KPj4gKyovCj4+ICtlbnVtIGRybV9sc3Bjb25fbW9kZSB7Cj4+ICsJRFJNX0xTUENP Tl9NT0RFX0lOVkFMSUQsCj4+ICsJRFJNX0xTUENPTl9NT0RFX0xTLAo+PiArCURSTV9MU1BDT05f TU9ERV9QQ09OLAo+PiArfTsKPgo+IElmIHdlIGNoYW5nZSB0aGUgX2dldF9tb2RlKCkgdGhpbmcg dG8gcmV0dXJuIHRoZSBlcnJvciBzdGF0dXMgc2VwYXJhdGVseQo+IGZyb20gdGhlIG1vZGUsIHdl IHdvbid0IG5lZWQgdGhlIElOVkFMSUQgdmFsdWUuCj4KQWdyZWUuCj4+ICsKPj4gKy8qKgo+PiAg ICAqIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIC0gVHlwZSBvZiB0aGUgRFAgZHVhbCBtb2Rl IGFkYXB0b3IKPj4gICAgKiBARFJNX0RQX0RVQUxfTU9ERV9OT05FOiBObyBEUCBkdWFsIG1vZGUg YWRhcHRvcgo+PiAgICAqIEBEUk1fRFBfRFVBTF9NT0RFX1VOS05PV046IENvdWxkIGJlIGVpdGhl ciBub25lIG9yIHR5cGUgMSBEVkkgYWRhcHRvcgo+PiBAQCAtNzAsNiArODgsNyBAQCBzc2l6ZV90 IGRybV9kcF9kdWFsX21vZGVfd3JpdGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLAo+PiAg ICAqIEBEUk1fRFBfRFVBTF9NT0RFX1RZUEUxX0hETUk6IFR5cGUgMSBIRE1JIGFkYXB0b3IKPj4g ICAgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9EVkk6IFR5cGUgMiBEVkkgYWRhcHRvcgo+PiAg ICAqIEBEUk1fRFBfRFVBTF9NT0RFX1RZUEUyX0hETUk6IFR5cGUgMiBIRE1JIGFkYXB0b3IKPj4g KyAqIEBEUk1fRFBfRFVBTF9NT0RFX1RZUEUyX0xTUENPTjogTGV2ZWwgc2hpZnRlciAvcHJvdG9j b2wgY29udmVydGVyCj4+ICAgICovCj4+ICAgZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgewo+ PiAgIAlEUk1fRFBfRFVBTF9NT0RFX05PTkUsCj4+IEBAIC03OCw2ICs5Nyw3IEBAIGVudW0gZHJt X2RwX2R1YWxfbW9kZV90eXBlIHsKPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMV9IRE1JLAo+ PiAgIAlEUk1fRFBfRFVBTF9NT0RFX1RZUEUyX0RWSSwKPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9U WVBFMl9IRE1JLAo+PiArCURSTV9EUF9EVUFMX01PREVfTFNQQ09OLAo+PiAgIH07Cj4+Cj4+ICAg ZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgZHJtX2RwX2R1YWxfbW9kZV9kZXRlY3Qoc3RydWN0 IGkyY19hZGFwdGVyICphZGFwdGVyKTsKPj4gQEAgLTg5LDQgKzEwOSwxMyBAQCBpbnQgZHJtX2Rw X2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlw ZSwKPj4gICAJCQkJICAgICBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxl KTsKPj4gICBjb25zdCBjaGFyICpkcm1fZHBfZ2V0X2R1YWxfbW9kZV90eXBlX25hbWUoZW51bSBk cm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlwZSk7Cj4+Cj4+ICtpbnQgZHJtX2RwX2R1YWxfbW9kZV9p b2FfcmVhZChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4ICpidWZmZXIsCj4+ICsJCXU4 IG9mZnNldCwgdTggbm9fb2ZfYnl0ZXMpOwo+PiAraW50IGRybV9kcF9kdWFsX21vZGVfaW9hX3dy aXRlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgdTggKmJ1ZmZlciwKPj4gKwkJdTggb2Zm c2V0LCB1OCBub19vZl9ieXRlcyk7Cj4+ICtpbnQgZHJtX2RwX2R1YWxfbW9kZV9nZXRfZWRpZCh2 b2lkICpkYXRhLAo+PiArCXU4ICpidWYsIHVuc2lnbmVkIGludCBibG9jaywgc2l6ZV90IGxlbik7 Cj4+ICtlbnVtIGRybV9sc3Bjb25fbW9kZSBkcm1fbHNwY29uX2dldF9jdXJyZW50X21vZGUoc3Ry dWN0IGkyY19hZGFwdGVyICphZGFwdGVyKTsKPj4gK2ludCBkcm1fbHNwY29uX2NoYW5nZV9tb2Rl KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwKPj4gKwkJZW51bSBkcm1fbHNwY29uX21vZGUg cmVxZF9tb2RlKTsKPj4gICAjZW5kaWYKPj4gLS0KPj4gMS45LjEKPgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK