From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/5] drm: Helper for LSPCON in drm_dp_dual_mode Date: Tue, 31 May 2016 15:10:55 +0300 Message-ID: <20160531121055.GS4329@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> <574D6CD8.3030607@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 ESMTP id DC6546E544 for ; Tue, 31 May 2016 12:10:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <574D6CD8.3030607@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMzEsIDIwMTYgYXQgMDQ6MjI6MDhQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBUaGFua3MgZm9yIHRoZSByZXZpZXcsIFZpbGxlLgo+IE15IGNvbW1lbnRzLCBp bmxpbmUuCj4gCj4gUmVnYXJkcwo+IFNoYXNoYW5rCj4gT24gNS8zMS8yMDE2IDM6MjIgUE0sIFZp bGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIFR1ZSwgTWF5IDMxLCAyMDE2IGF0IDAyOjU1OjQy UE0gKzA1MzAsIFNoYXNoYW5rIFNoYXJtYSB3cm90ZToKPiA+PiBTaWduZWQtb2ZmLWJ5OiBTaGFz aGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gICBk cml2ZXJzL2dwdS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYyB8IDg1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiA+PiAgIGluY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVf aGVscGVyLmggICAgIHwgMjkgKysrKysrKysrKysKPiA+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTE0 IGluc2VydGlvbnMoKykKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX2R1YWxfbW9kZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfZHVhbF9tb2Rl X2hlbHBlci5jCj4gPj4gaW5kZXggYTdiMmE3NS4uMTFjYWIyNSAxMDA2NDQKPiA+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYwo+ID4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5jCj4gPj4gQEAgLTE0OCw2ICsxNDgs MTIgQEAgc3RhdGljIGJvb2wgaXNfdHlwZTJfYWRhcHRvcih1aW50OF90IGFkYXB0b3JfaWQpCj4g Pj4gICAJCQkgICAgICBEUF9EVUFMX01PREVfUkVWX1RZUEUyKTsKPiA+PiAgIH0KPiA+Pgo+ID4+ ICtib29sIGlzX2xzcGNvbl9hZGFwdG9yKGNvbnN0IGNoYXIgaGRtaV9pZFtEUF9EVUFMX01PREVf SERNSV9JRF9MRU5dLAo+ID4+ICsJY29uc3QgdWludDhfdCBhZGFwdG9yX2lkKQo+ID4+ICt7Cj4g Pj4gKwlyZXR1cm4gaXNfaGRtaV9hZGFwdG9yKGhkbWlfaWQpICYmIChhZGFwdG9yX2lkID09IDB4 YTgpOwo+ID4KPiA+Cj4gPiBJJ2QgcHJvYmFibHkgbWFrZSB0aGlzIHNvbWV0aGluZyBsaWtlCj4g Pgo+ID4gI2RlZmluZSBEUF9EVUFMX01PREVfUkVTRVJWRURfTFNQQ09OIDB4MDgKPiA+Cj4gPiAg ICAgICAgICByZXR1cm4gYWRhcHRvcl9pZCA9PSAoRFBfRFVBTF9NT0RFX1RZUEVfVFlQRTIgfAo+ ID4gCSAgICAgICAgICAgICAgICAgICAgICBEUF9EVUFMX01PREVfUkVTRVJWRURfTFNQQ09OIHwK PiA+IAkgICAgICAgICAgICAgICAgICAgICAgRFBfRFVBTF9NT0RFX1JFVl9UWVBFMik7Cj4gPgo+ IFRoYW5rcywgdGhpcyBpcyBhIGdvb2Qgc3VnZ2VzdGlvbiwgSSB3aWxsIGRvIHNvLgo+ID4KPiA+ PiArfQo+ID4+ICsKPiA+PiAgIC8qKgo+ID4+ICAgICogZHJtX2RwX2R1YWxfbW9kZV9kZXRlY3Qg LSBJZGVudGlmeSB0aGUgRFAgZHVhbCBtb2RlIGFkYXB0b3IKPiA+PiAgICAqIEBhZGFwdGVyOiBJ MkMgYWRhcHRlciBmb3IgdGhlIEREQyBidXMKPiA+PiBAQCAtMjAzLDYgKzIwOSw4IEBAIGVudW0g ZHJtX2RwX2R1YWxfbW9kZV90eXBlIGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KHN0cnVjdCBpMmNf YWRhcHRlciAqYWRhcHRlcikKPiA+PiAgIAlyZXQgPSBkcm1fZHBfZHVhbF9tb2RlX3JlYWQoYWRh cHRlciwgRFBfRFVBTF9NT0RFX0FEQVBUT1JfSUQsCj4gPj4gICAJCQkJICAgICZhZGFwdG9yX2lk LCBzaXplb2YoYWRhcHRvcl9pZCkpOwo+ID4+ICAgCWlmIChyZXQgPT0gMCkgewo+ID4+ICsJCWlm IChpc19sc3Bjb25fYWRhcHRvcihoZG1pX2lkLCBhZGFwdG9yX2lkKSkKPiA+PiArCQkJcmV0dXJu IERSTV9EUF9EVUFMX01PREVfTFNQQ09OOwo+ID4+ICAgCQlpZiAoaXNfdHlwZTJfYWRhcHRvcihh ZGFwdG9yX2lkKSkgewo+ID4+ICAgCQkJaWYgKGlzX2hkbWlfYWRhcHRvcihoZG1pX2lkKSkKPiA+ PiAgIAkJCQlyZXR1cm4gRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JOwo+ID4+IEBAIC0zNjQs MyArMzcyLDgwIEBAIGNvbnN0IGNoYXIgKmRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZShl bnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB0eXBlKQo+ID4+ICAgCX0KPiA+PiAgIH0KPiA+PiAg IEVYUE9SVF9TWU1CT0woZHJtX2RwX2dldF9kdWFsX21vZGVfdHlwZV9uYW1lKTsKPiA+PiArCj4g Pj4gKy8qKgo+ID4+ICsgKiBkcm1fbHNwY29uX2dldF9jdXJyZW50X21vZGU6IEdldCBMU1BDT04n cyBjdXJyZW50IG1vZGUgb2Ygb3BlcmF0aW9uIGJ5Cj4gPj4gKyAqIGJ5IHJlYWRpbmcgb2Zmc2V0 ICgweDgwLCAweDQxKQo+ID4+ICsgKiBAaTJjX2FkYXB0ZXI6IEkyQy1vdmVyLWF1eCBhZGFwdGVy Cj4gPj4gKyAqCj4gPj4gKyAqIFJldHVybnM6Cj4gPj4gKyAqIEVudW0gcmVwcmVzZW50aW5nIGN1 cnJlbnQgbW9kZSBvZiBvcGVyYXRpb24KPiA+PiArICovCj4gPj4gK2VudW0gZHJtX2xzcGNvbl9t b2RlCj4gPj4gK2RybV9sc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmFkYXB0ZXIpCj4gPgo+ID4gVG8gbWF0Y2ggd2l0aCBkcm1fZHBfZHVhbF9tb2RlX2dldF90bWRz X291dHB1dCgpIHRoaXMgbWF5IHdhbnQgdG8KPiA+IHJldHVybiB0aGUgZXJyb3Igc3RhdHVzLCBh bmQgcmV0dXJuIHRoZSBhY3R1YWwgbW9kZSB2aWEgYSBmdW5jdGlvbgo+ID4gYXJndW1lbnQuCj4g Pgo+IHN1cmUsIGNhbiBiZSBkb25lLgo+ID4gQXMgZm9yIHRoZSBuYW1lIGRybV9kcF9kdWFsX21v ZGVfZ2V0X2xzcGNvbl9tb2RlKCkgYW5kCj4gPiBkcm1fZHBfZHVhbF9tb2RlX3NldF9sc3Bjb25f bW9kZSgpIHBlcmhhcHM/Cj4gPiBPciBkcm1fbHNwY29uX2dldF9tb2RlKCkvZHJtX2xzcGNvbl9z ZXRfbW9kZSgpIHBlcmhhcHMgaWYgd2Ugd2FudCB0bwo+ID4ga2VlcCB0aGluZ3Mgc2hvcnRlcj8K PiA+Cj4gWWVwLCBpbml0aWFsbHkgSSBtYWRlIHRoZSBzYW1lIG5hbWVzIGFzIHlvdSBzdWdnZXN0 ZWQsIGJ1dCAKPiBkcm1fZHBfZHVhbF9tb2RlX2dldF9sc3Bjb25fbW9kZSBkaW50IHNvdW5kIGdv b2QgdG8gbWUgOikuCj4gZHJtX2xzcGNvbl9nZXQvc2V0X21vZGUgc291bmRzIGdvb2QuCj4gPj4g K3sKPiA+PiArCXU4IGRhdGE7Cj4gPj4gKwlpbnQgZXJyID0gMDsKPiA+Cj4gPiBJIHVzZWQgJ3Jl dCcgaW4gdGhlIHJlc3Qgb2YgdGhlIGNvZGUuIFRoaXMgaXMgYSBiaXQgaW5jb25zaXN0ZW50Lgo+ IGdvdCBpdC4KPiA+Cj4gPj4gKwo+ID4+ICsJLyogUmVhZCBTdGF0dXM6IGkyYyBvdmVyIGF1eCAq Lwo+ID4+ICsJZXJyID0gZHJtX2RwX2R1YWxfbW9kZV9yZWFkKGFkYXB0ZXIsIERQX0RVQUxfTU9E RV9MU1BDT05fQ1VSUkVOVF9NT0RFLAo+ID4+ICsJCQkodm9pZCAqKSZkYXRhLCBzaXplb2YoZGF0 YSkpOwo+ID4KPiA+IFBvaW50bGVzcyBjYXN0Lgo+ID4KPiBnb29kIGNhdGNoLCB0aGlzIGlzIHVu bmVjZXNzYXJ5Lgo+ID4+ICsJaWYgKGVyciA8IDApIHsKPiA+Cj4gPiBpZiAocmV0KSBpcyB3aGF0 IEkndmUgdXNlZCBlbHNld2hlcmUuCj4gZ290IGl0Lgo+ID4KPiA+PiArCQlEUk1fRVJST1IoIkxT UENPTiByZWFkKDB4ODAsIDB4NDEpIGZhaWxlZFxuIik7Cj4gPgo+ID4gSSdtIG5vdCBzdXJlIHdl IHdhbnQgYW5kIEVSUk9SIGZyb20gYSBoZWxwZXIuIEkgdXNlZCBEUk1fREVCVUdfS01TIGZvcgo+ ID4gdGhlIG90aGVyIGVycm9yIHBhdGhzLgo+ID4KPiBJTUhPLCBUaGlzIGlzIGEgZmFpbHVyZSB3 aGljaCBuZWVkcyBub3RpY2UsIGFzIGl0IGNhbiBwb2ludCBvdXQgdG8gYSBIVyAKPiBsZXZlbCBw cm9ibGVtLCBvciBhIHByb2JsZW0gaW4gTFNQQ09OIEZXLCBzbyBJIHdpbGwgcHJlZmVyIHRvIGtl ZXAgaXQgYXMgCj4gZXJyb3IuCgpGYWlyIGVub3VnaC4KCj4gPj4gKwkJcmV0dXJuIERSTV9MU1BD T05fTU9ERV9JTlZBTElEOwo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCXJldHVybiBkYXRhICYgRFBf RFVBTF9NT0RFX0xTUENPTl9NT0RFX01BU0sgPwo+ID4+ICsJCURSTV9MU1BDT05fTU9ERV9QQ09O IDogRFJNX0xTUENPTl9NT0RFX0xTOwo+ID4+ICt9Cj4gPj4gK0VYUE9SVF9TWU1CT0woZHJtX2xz cGNvbl9nZXRfY3VycmVudF9tb2RlKTsKPiA+PiArCj4gPj4gKy8qKgo+ID4+ICsgKiBkcm1fbHNw Y29uX2NoYW5nZV9tb2RlOiBDaGFuZ2UgTFNQQ09OJ3MgbW9kZSBvZiBvcGVyYXRpb24gYnkKPiA+ PiArICogYnkgd3JpdGluZyBvZmZzZXQgKDB4ODAsIDB4NDApCj4gPj4gKyAqIEBpMmNfYWRhcHRl cjogSTJDLW92ZXItYXV4IGFkYXB0ZXIKPiA+PiArICogQHJlcWRfbW9kZTogcmVxdWlyZWQgbW9k ZSBvZiBvcGVyYXRpb24KPiA+PiArICoKPiA+PiArICogUmV0dXJuczoKPiA+PiArICogMCBvbiBz dWNjZXNzLCAtZXJyb3Igb24gZmFpbHVyZS90aW1lb3V0Cj4gPj4gKyAqLwo+ID4+ICtpbnQgZHJt X2xzcGNvbl9jaGFuZ2VfbW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gPj4gKwll bnVtIGRybV9sc3Bjb25fbW9kZSByZXFkX21vZGUpCj4gPj4gK3sKPiA+PiArCXU4IGRhdGE7Cj4g Pj4gKwlpbnQgZXJyOwo+ID4+ICsJaW50IHRpbWVfb3V0ID0gMjAwOwo+ID4+ICsKPiA+PiArCWlm IChyZXFkX21vZGUgPT0gRFJNX0xTUENPTl9NT0RFX0xTKQo+ID4+ICsJCWRhdGEgPSB+RFBfRFVB TF9NT0RFX0xTUENPTl9NT0RFX01BU0s7Cj4gPgo+ID4gSXMgdGhhdCByZWFsbHkgY29ycmVjdD8K PiA+Cj4gT29wcywgaXQgd2FzIGEgYmx1bmRlciwgYnV0IGZvcnR1bmF0ZWx5IHRoYXQgcmVnaXN0 ZXIgb25seSBib3RoZXJzIGFib3V0IAo+IGJpdCAwLCBhbmQgdGhhdCdzIHdoeSBpdCB3b3JrZWQs IEkgd2lsbCBmaXggdGhpcy4KPiA+PiArCWVsc2UKPiA+PiArCQlkYXRhID0gRFBfRFVBTF9NT0RF X0xTUENPTl9NT0RFX01BU0s7Cj4gPj4gKwo+ID4+ICsJLyogQ2hhbmdlIG1vZGUgKi8KPiA+PiAr CWVyciA9IGRybV9kcF9kdWFsX21vZGVfd3JpdGUoYWRhcHRlciwgRFBfRFVBTF9NT0RFX0xTUENP Tl9NT0RFX0NIQU5HRSwKPiA+PiArCQkJJmRhdGEsIHNpemVvZihkYXRhKSk7Cj4gPj4gKwlpZiAo ZXJyIDwgMCkgewo+ID4+ICsJCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIGZhaWxlZFxu Iik7Cj4gPj4gKwkJcmV0dXJuIGVycjsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwkvKgo+ID4+ICsJ KiBDb25maXJtIG1vZGUgY2hhbmdlIGJ5IHJlYWRpbmcgdGhlIHN0YXR1cyBiaXQuCj4gPj4gKwkq IFNvbWV0aW1lcywgaXQgdGFrZXMgYSB3aGlsZSB0byBjaGFuZ2UgdGhlIG1vZGUsCj4gPj4gKwkq IHNvIHdhaXQgYW5kIHJldHJ5IHVudGlsIHRpbWUgb3V0IG9yIGRvbmUuCj4gPj4gKwkqLwo+ID4K PiA+IGluZGVudCBmYWlsCj4gT0suCj4gPgo+ID4+ICsJd2hpbGUgKHRpbWVfb3V0KSB7Cj4gPj4g KwkJaWYgKHJlcWRfbW9kZSAhPSBkcm1fbHNwY29uX2dldF9jdXJyZW50X21vZGUoYWRhcHRlcikp IHsKPiA+PiArCQkJbWRlbGF5KDEwKTsKPiA+Cj4gPiBtZGVsYXkoKSBpcyBiYWQuCj4gRG8geW91 IHRoaW5rIEkgc2hvdWxkIHJlcGxhY2Ugd2l0aCBzb21lIG9mIHRoZSBub24tYnVzeSB3YWl0IChs aWtlIAo+IG1zbGVlcCBvciBzbyA/KQoKSG93IGxvbmcgd291bGQgd2UgdHlwaWNhbGx5IGhhdmUg dG8gd2FpdCBmb3IgdGhlIG1vZGUgdG8gY2hhbmdlPwoKPiA+Cj4gPj4gKwkJCXRpbWVfb3V0IC09 IDEwOwo+ID4+ICsJCX0gZWxzZSB7Cj4gPj4gKwkJCURSTV9ERUJVR19LTVMoIkxTUENPTiBtb2Rl IGNoYW5nZWQgdG8gJXNcbiIsCj4gPj4gKwkJCXJlcWRfbW9kZSA9PSBEUk1fTFNQQ09OX01PREVf TFMgPyAiTFMiIDogIlBDT04iKTsKPiA+PiArCQkJcmV0dXJuIDA7Cj4gPj4gKwkJfQo+ID4+ICsJ fQo+ID4+ICsKPiA+PiArCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIHRpbWVkIG91dFxu Iik7Cj4gPj4gKwlyZXR1cm4gLUVGQVVMVDsKPiA+Cj4gPiBFRkFVTFQgZG9lbnMndCBzZWVtIGxp a2UgYSBzZW5zaWJsZSBlcnJvciB2YWx1ZSBoZXJlLiBFVElNRURPVVQgSQo+ID4gc3VwcG9zZSBz ZWVtcyBsaWtlIHdoYXQgd2Ugc2hvdWxkIHJldHVybi4KPiBTdXJlLgo+ID4KPiA+PiArfQo+ID4+ ICtFWFBPUlRfU1lNQk9MKGRybV9sc3Bjb25fY2hhbmdlX21vZGUpOwo+ID4+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJt X2RwX2R1YWxfbW9kZV9oZWxwZXIuaAo+ID4+IGluZGV4IGU4YTlkZmQuLmYzMzVkZjUgMTAwNjQ0 Cj4gPj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaAo+ID4+ICsr KyBiL2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmgKPiA+PiBAQCAtMjQsNiAr MjQsNyBAQAo+ID4+ICAgI2RlZmluZSBEUk1fRFBfRFVBTF9NT0RFX0hFTFBFUl9ICj4gPj4KPiA+ PiAgICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4+ICsjaW5jbHVkZSA8ZHJtL2RybV9lZGlk Lmg+Cj4gPj4KPiA+PiAgIC8qCj4gPj4gICAgKiBPcHRpb25hbCBmb3IgdHlwZSAxIERWSSBhZGFw dG9ycwo+ID4+IEBAIC01NCw2ICs1NSw5IEBACj4gPj4gICAjZGVmaW5lIERQX0RVQUxfTU9ERV9I RE1JX1BJTl9DVFJMIDB4MjEKPiA+PiAgICNkZWZpbmUgIERQX0RVQUxfTU9ERV9DRUNfRU5BQkxF IDB4MDEKPiA+PiAgICNkZWZpbmUgRFBfRFVBTF9NT0RFX0kyQ19TUEVFRF9DVFJMIDB4MjIKPiA+ Cj4gPiBNYXliZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIGhlcmUgdG8gc2VwYXJhdGUgdGhlIHN0YW5k YXJkIHJlZ3MgZnJvbSB0aGUKPiA+IHZlbmRvciBzcGVjaWZpYyBvbmVzLiBIbW0uIEFjdHVhbGx5 IHRoZSB2ZW5kb3IgcmVnaXN0ZXIgc3BhY2UgaXMKPiA+IDB4MzAtMHgzZiwgd2hlcmVhcyAweDQw KyBpcyByZXNlcnZlZC4gQnV0IGFueXdheSBlbXB0eSBsaW5lIHdvdWxkCj4gPiBzZWVtIHdhcnJh bnRlZC4KPiA+Cj4gR290IGl0Lgo+ID4+ICsjZGVmaW5lIERQX0RVQUxfTU9ERV9MU1BDT05fTU9E RV9DSEFOR0UJCTB4NDAKPiA+PiArI2RlZmluZSBEUF9EVUFMX01PREVfTFNQQ09OX0NVUlJFTlRf TU9ERQkJMHg0MQo+ID4+ICsjZGVmaW5lIERQX0RVQUxfTU9ERV9MU1BDT05fTU9ERV9NQVNLCQkJ MHgxCj4gPgo+ID4gUGxlYXNlIGluZGVudCB0aGUgYml0IGRlZm5pdGlvbiBieSBvbmUgc3BhY2Ug dG8gbWFrZSBpdCBzdGFuZCBvdXQgZnJvbQo+ID4gdGhlIHJlZyBkZWZpbmVzIGEgbGl0dGxlLgo+ ID4KPiBPaywgdGhlIGZpcnN0IHR3byBhcmUgcmVnaXN0ZXJzIG9ubHksIEkgZ3Vlc3MgdGhpcyBp cyBmb3IgCj4gRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX01BU0suIEkgd2lsbCBhbGlnbiBpdC4K PiA+PiAgIHN0cnVjdCBpMmNfYWRhcHRlcjsKPiA+Pgo+ID4+IEBAIC02Myw2ICs2NywyMCBAQCBz c2l6ZV90IGRybV9kcF9kdWFsX21vZGVfd3JpdGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVy LAo+ID4+ICAgCQkJICAgICAgIHU4IG9mZnNldCwgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3Qg c2l6ZSk7Cj4gPj4KPiA+PiAgIC8qKgo+ID4+ICsqIGVudW0gZHJtX2xzcGNvbl9tb2RlCj4gPj4g KyogQGxzcGNvbl9tb2RlX2ludmFsaWQ6IE5vIGlkZWEgd2hhdCdzIGdvaW5nIG9uCj4gPj4gKyog QGxzcGNvbl9tb2RlX2xzOiBMZXZlbCBzaGlmdGVyIG1vZGUgb2YgTFNQQ09OCj4gPj4gKyoJd2hp Y2ggZHJpdmVzIERQKysgdG8gSERNSSAxLjQgY29udmVyc2lvbi4KPiA+PiArKiBAbHNwY29uX21v ZGVfcGNvbjogUHJvdG9jb2wgY29udmVydGVyIG1vZGUgb2YgTFNQQ09OCj4gPj4gKyoJd2hpY2gg ZHJpdmVzIERQKysgdG8gSERNSSAyLjAgYWN0aXZlIGNvbnZlcnNpb24uCj4gPj4gKyovCj4gPj4g K2VudW0gZHJtX2xzcGNvbl9tb2RlIHsKPiA+PiArCURSTV9MU1BDT05fTU9ERV9JTlZBTElELAo+ ID4+ICsJRFJNX0xTUENPTl9NT0RFX0xTLAo+ID4+ICsJRFJNX0xTUENPTl9NT0RFX1BDT04sCj4g Pj4gK307Cj4gPgo+ID4gSWYgd2UgY2hhbmdlIHRoZSBfZ2V0X21vZGUoKSB0aGluZyB0byByZXR1 cm4gdGhlIGVycm9yIHN0YXR1cyBzZXBhcmF0ZWx5Cj4gPiBmcm9tIHRoZSBtb2RlLCB3ZSB3b24n dCBuZWVkIHRoZSBJTlZBTElEIHZhbHVlLgo+ID4KPiBBZ3JlZS4KPiA+PiArCj4gPj4gKy8qKgo+ ID4+ICAgICogZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgLSBUeXBlIG9mIHRoZSBEUCBkdWFs IG1vZGUgYWRhcHRvcgo+ID4+ICAgICogQERSTV9EUF9EVUFMX01PREVfTk9ORTogTm8gRFAgZHVh bCBtb2RlIGFkYXB0b3IKPiA+PiAgICAqIEBEUk1fRFBfRFVBTF9NT0RFX1VOS05PV046IENvdWxk IGJlIGVpdGhlciBub25lIG9yIHR5cGUgMSBEVkkgYWRhcHRvcgo+ID4+IEBAIC03MCw2ICs4OCw3 IEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFk YXB0ZXIsCj4gPj4gICAgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMV9IRE1JOiBUeXBlIDEgSERN SSBhZGFwdG9yCj4gPj4gICAgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9EVkk6IFR5cGUgMiBE VkkgYWRhcHRvcgo+ID4+ICAgICogQERSTV9EUF9EVUFMX01PREVfVFlQRTJfSERNSTogVHlwZSAy IEhETUkgYWRhcHRvcgo+ID4+ICsgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9MU1BDT046IExl dmVsIHNoaWZ0ZXIgL3Byb3RvY29sIGNvbnZlcnRlcgo+ID4+ICAgICovCj4gPj4gICBlbnVtIGRy bV9kcF9kdWFsX21vZGVfdHlwZSB7Cj4gPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9OT05FLAo+ID4+ IEBAIC03OCw2ICs5Nyw3IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHsKPiA+PiAgIAlE Uk1fRFBfRFVBTF9NT0RFX1RZUEUxX0hETUksCj4gPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBF Ml9EVkksCj4gPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JLAo+ID4+ICsJRFJNX0RQ X0RVQUxfTU9ERV9MU1BDT04sCj4gPj4gICB9Owo+ID4+Cj4gPj4gICBlbnVtIGRybV9kcF9kdWFs X21vZGVfdHlwZSBkcm1fZHBfZHVhbF9tb2RlX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFk YXB0ZXIpOwo+ID4+IEBAIC04OSw0ICsxMDksMTMgQEAgaW50IGRybV9kcF9kdWFsX21vZGVfc2V0 X3RtZHNfb3V0cHV0KGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHR5cGUsCj4gPj4gICAJCQkJ ICAgICBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlKTsKPiA+PiAgIGNv bnN0IGNoYXIgKmRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZShlbnVtIGRybV9kcF9kdWFs X21vZGVfdHlwZSB0eXBlKTsKPiA+Pgo+ID4+ICtpbnQgZHJtX2RwX2R1YWxfbW9kZV9pb2FfcmVh ZChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4ICpidWZmZXIsCj4gPj4gKwkJdTggb2Zm c2V0LCB1OCBub19vZl9ieXRlcyk7Cj4gPj4gK2ludCBkcm1fZHBfZHVhbF9tb2RlX2lvYV93cml0 ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4ICpidWZmZXIsCj4gPj4gKwkJdTggb2Zm c2V0LCB1OCBub19vZl9ieXRlcyk7Cj4gPj4gK2ludCBkcm1fZHBfZHVhbF9tb2RlX2dldF9lZGlk KHZvaWQgKmRhdGEsCj4gPj4gKwl1OCAqYnVmLCB1bnNpZ25lZCBpbnQgYmxvY2ssIHNpemVfdCBs ZW4pOwo+ID4+ICtlbnVtIGRybV9sc3Bjb25fbW9kZSBkcm1fbHNwY29uX2dldF9jdXJyZW50X21v ZGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKTsKPiA+PiAraW50IGRybV9sc3Bjb25fY2hh bmdlX21vZGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLAo+ID4+ICsJCWVudW0gZHJtX2xz cGNvbl9tb2RlIHJlcWRfbW9kZSk7Cj4gPj4gICAjZW5kaWYKPiA+PiAtLQo+ID4+IDEuOS4xCj4g PgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==