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 12:52:53 +0300 Message-ID: <20160531095253.GQ4329@intel.com> References: <1464686746-5099-1-git-send-email-shashank.sharma@intel.com> <1464686746-5099-2-git-send-email-shashank.sharma@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 235CA6E374 for ; Tue, 31 May 2016 09:52:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1464686746-5099-2-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMzEsIDIwMTYgYXQgMDI6NTU6NDJQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1h QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVs cGVyLmMgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJt L2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmggICAgIHwgMjkgKysrKysrKysrKysKPiAgMiBmaWxl cyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf ZHVhbF9tb2RlX2hlbHBlci5jCj4gaW5kZXggYTdiMmE3NS4uMTFjYWIyNSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5jCj4gQEAgLTE0OCw2ICsxNDgsMTIg QEAgc3RhdGljIGJvb2wgaXNfdHlwZTJfYWRhcHRvcih1aW50OF90IGFkYXB0b3JfaWQpCj4gIAkJ CSAgICAgIERQX0RVQUxfTU9ERV9SRVZfVFlQRTIpOwo+ICB9Cj4gIAo+ICtib29sIGlzX2xzcGNv bl9hZGFwdG9yKGNvbnN0IGNoYXIgaGRtaV9pZFtEUF9EVUFMX01PREVfSERNSV9JRF9MRU5dLAo+ ICsJY29uc3QgdWludDhfdCBhZGFwdG9yX2lkKQo+ICt7Cj4gKwlyZXR1cm4gaXNfaGRtaV9hZGFw dG9yKGhkbWlfaWQpICYmIChhZGFwdG9yX2lkID09IDB4YTgpOwoKCkknZCBwcm9iYWJseSBtYWtl IHRoaXMgc29tZXRoaW5nIGxpa2UKCiNkZWZpbmUgRFBfRFVBTF9NT0RFX1JFU0VSVkVEX0xTUENP TiAweDA4CgogICAgICAgIHJldHVybiBhZGFwdG9yX2lkID09IChEUF9EVUFMX01PREVfVFlQRV9U WVBFMiB8CgkgICAgICAgICAgICAgICAgICAgICAgRFBfRFVBTF9NT0RFX1JFU0VSVkVEX0xTUENP TiB8CgkgICAgICAgICAgICAgICAgICAgICAgRFBfRFVBTF9NT0RFX1JFVl9UWVBFMik7CgoKPiAr fQo+ICsKPiAgLyoqCj4gICAqIGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0IC0gSWRlbnRpZnkgdGhl IERQIGR1YWwgbW9kZSBhZGFwdG9yCj4gICAqIEBhZGFwdGVyOiBJMkMgYWRhcHRlciBmb3IgdGhl IEREQyBidXMKPiBAQCAtMjAzLDYgKzIwOSw4IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBl IGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKPiAg CXJldCA9IGRybV9kcF9kdWFsX21vZGVfcmVhZChhZGFwdGVyLCBEUF9EVUFMX01PREVfQURBUFRP Ul9JRCwKPiAgCQkJCSAgICAmYWRhcHRvcl9pZCwgc2l6ZW9mKGFkYXB0b3JfaWQpKTsKPiAgCWlm IChyZXQgPT0gMCkgewo+ICsJCWlmIChpc19sc3Bjb25fYWRhcHRvcihoZG1pX2lkLCBhZGFwdG9y X2lkKSkKPiArCQkJcmV0dXJuIERSTV9EUF9EVUFMX01PREVfTFNQQ09OOwo+ICAJCWlmIChpc190 eXBlMl9hZGFwdG9yKGFkYXB0b3JfaWQpKSB7Cj4gIAkJCWlmIChpc19oZG1pX2FkYXB0b3IoaGRt aV9pZCkpCj4gIAkJCQlyZXR1cm4gRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JOwo+IEBAIC0z NjQsMyArMzcyLDgwIEBAIGNvbnN0IGNoYXIgKmRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFt ZShlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB0eXBlKQo+ICAJfQo+ICB9Cj4gIEVYUE9SVF9T WU1CT0woZHJtX2RwX2dldF9kdWFsX21vZGVfdHlwZV9uYW1lKTsKPiArCj4gKy8qKgo+ICsgKiBk cm1fbHNwY29uX2dldF9jdXJyZW50X21vZGU6IEdldCBMU1BDT04ncyBjdXJyZW50IG1vZGUgb2Yg b3BlcmF0aW9uIGJ5Cj4gKyAqIGJ5IHJlYWRpbmcgb2Zmc2V0ICgweDgwLCAweDQxKQo+ICsgKiBA aTJjX2FkYXB0ZXI6IEkyQy1vdmVyLWF1eCBhZGFwdGVyCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4g KyAqIEVudW0gcmVwcmVzZW50aW5nIGN1cnJlbnQgbW9kZSBvZiBvcGVyYXRpb24KPiArICovCj4g K2VudW0gZHJtX2xzcGNvbl9tb2RlCj4gK2RybV9sc3Bjb25fZ2V0X2N1cnJlbnRfbW9kZShzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCgpUbyBtYXRjaCB3aXRoIGRybV9kcF9kdWFsX21vZGVf Z2V0X3RtZHNfb3V0cHV0KCkgdGhpcyBtYXkgd2FudCB0bwpyZXR1cm4gdGhlIGVycm9yIHN0YXR1 cywgYW5kIHJldHVybiB0aGUgYWN0dWFsIG1vZGUgdmlhIGEgZnVuY3Rpb24KYXJndW1lbnQuCgpB cyBmb3IgdGhlIG5hbWUgZHJtX2RwX2R1YWxfbW9kZV9nZXRfbHNwY29uX21vZGUoKSBhbmQKZHJt X2RwX2R1YWxfbW9kZV9zZXRfbHNwY29uX21vZGUoKSBwZXJoYXBzPwpPciBkcm1fbHNwY29uX2dl dF9tb2RlKCkvZHJtX2xzcGNvbl9zZXRfbW9kZSgpIHBlcmhhcHMgaWYgd2Ugd2FudCB0bwprZWVw IHRoaW5ncyBzaG9ydGVyPwoKPiArewo+ICsJdTggZGF0YTsKPiArCWludCBlcnIgPSAwOwoKSSB1 c2VkICdyZXQnIGluIHRoZSByZXN0IG9mIHRoZSBjb2RlLiBUaGlzIGlzIGEgYml0IGluY29uc2lz dGVudC4KCj4gKwo+ICsJLyogUmVhZCBTdGF0dXM6IGkyYyBvdmVyIGF1eCAqLwo+ICsJZXJyID0g ZHJtX2RwX2R1YWxfbW9kZV9yZWFkKGFkYXB0ZXIsIERQX0RVQUxfTU9ERV9MU1BDT05fQ1VSUkVO VF9NT0RFLAo+ICsJCQkodm9pZCAqKSZkYXRhLCBzaXplb2YoZGF0YSkpOwoKUG9pbnRsZXNzIGNh c3QuCgo+ICsJaWYgKGVyciA8IDApIHsKCmlmIChyZXQpIGlzIHdoYXQgSSd2ZSB1c2VkIGVsc2V3 aGVyZS4KCj4gKwkJRFJNX0VSUk9SKCJMU1BDT04gcmVhZCgweDgwLCAweDQxKSBmYWlsZWRcbiIp OwoKSSdtIG5vdCBzdXJlIHdlIHdhbnQgYW5kIEVSUk9SIGZyb20gYSBoZWxwZXIuIEkgdXNlZCBE Uk1fREVCVUdfS01TIGZvcgp0aGUgb3RoZXIgZXJyb3IgcGF0aHMuCgo+ICsJCXJldHVybiBEUk1f TFNQQ09OX01PREVfSU5WQUxJRDsKPiArCX0KPiArCj4gKwlyZXR1cm4gZGF0YSAmIERQX0RVQUxf TU9ERV9MU1BDT05fTU9ERV9NQVNLID8KPiArCQlEUk1fTFNQQ09OX01PREVfUENPTiA6IERSTV9M U1BDT05fTU9ERV9MUzsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9sc3Bjb25fZ2V0X2N1cnJl bnRfbW9kZSk7Cj4gKwo+ICsvKioKPiArICogZHJtX2xzcGNvbl9jaGFuZ2VfbW9kZTogQ2hhbmdl IExTUENPTidzIG1vZGUgb2Ygb3BlcmF0aW9uIGJ5Cj4gKyAqIGJ5IHdyaXRpbmcgb2Zmc2V0ICgw eDgwLCAweDQwKQo+ICsgKiBAaTJjX2FkYXB0ZXI6IEkyQy1vdmVyLWF1eCBhZGFwdGVyCj4gKyAq IEByZXFkX21vZGU6IHJlcXVpcmVkIG1vZGUgb2Ygb3BlcmF0aW9uCj4gKyAqCj4gKyAqIFJldHVy bnM6Cj4gKyAqIDAgb24gc3VjY2VzcywgLWVycm9yIG9uIGZhaWx1cmUvdGltZW91dAo+ICsgKi8K PiAraW50IGRybV9sc3Bjb25fY2hhbmdlX21vZGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVy LAo+ICsJZW51bSBkcm1fbHNwY29uX21vZGUgcmVxZF9tb2RlKQo+ICt7Cj4gKwl1OCBkYXRhOwo+ ICsJaW50IGVycjsKPiArCWludCB0aW1lX291dCA9IDIwMDsKPiArCj4gKwlpZiAocmVxZF9tb2Rl ID09IERSTV9MU1BDT05fTU9ERV9MUykKPiArCQlkYXRhID0gfkRQX0RVQUxfTU9ERV9MU1BDT05f TU9ERV9NQVNLOwoKSXMgdGhhdCByZWFsbHkgY29ycmVjdD8KCj4gKwllbHNlCj4gKwkJZGF0YSA9 IERQX0RVQUxfTU9ERV9MU1BDT05fTU9ERV9NQVNLOwo+ICsKPiArCS8qIENoYW5nZSBtb2RlICov Cj4gKwllcnIgPSBkcm1fZHBfZHVhbF9tb2RlX3dyaXRlKGFkYXB0ZXIsIERQX0RVQUxfTU9ERV9M U1BDT05fTU9ERV9DSEFOR0UsCj4gKwkJCSZkYXRhLCBzaXplb2YoZGF0YSkpOwo+ICsJaWYgKGVy ciA8IDApIHsKPiArCQlEUk1fRVJST1IoIkxTUENPTiBtb2RlIGNoYW5nZSBmYWlsZWRcbiIpOwo+ ICsJCXJldHVybiBlcnI7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSogQ29uZmlybSBtb2RlIGNoYW5n ZSBieSByZWFkaW5nIHRoZSBzdGF0dXMgYml0Lgo+ICsJKiBTb21ldGltZXMsIGl0IHRha2VzIGEg d2hpbGUgdG8gY2hhbmdlIHRoZSBtb2RlLAo+ICsJKiBzbyB3YWl0IGFuZCByZXRyeSB1bnRpbCB0 aW1lIG91dCBvciBkb25lLgo+ICsJKi8KCmluZGVudCBmYWlsCgo+ICsJd2hpbGUgKHRpbWVfb3V0 KSB7Cj4gKwkJaWYgKHJlcWRfbW9kZSAhPSBkcm1fbHNwY29uX2dldF9jdXJyZW50X21vZGUoYWRh cHRlcikpIHsKPiArCQkJbWRlbGF5KDEwKTsKCm1kZWxheSgpIGlzIGJhZC4KCj4gKwkJCXRpbWVf b3V0IC09IDEwOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkxTUENPTiBtb2Rl IGNoYW5nZWQgdG8gJXNcbiIsCj4gKwkJCXJlcWRfbW9kZSA9PSBEUk1fTFNQQ09OX01PREVfTFMg PyAiTFMiIDogIlBDT04iKTsKPiArCQkJcmV0dXJuIDA7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCURS TV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIHRpbWVkIG91dFxuIik7Cj4gKwlyZXR1cm4gLUVG QVVMVDsKCkVGQVVMVCBkb2Vucyd0IHNlZW0gbGlrZSBhIHNlbnNpYmxlIGVycm9yIHZhbHVlIGhl cmUuIEVUSU1FRE9VVCBJCnN1cHBvc2Ugc2VlbXMgbGlrZSB3aGF0IHdlIHNob3VsZCByZXR1cm4u Cgo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2xzcGNvbl9jaGFuZ2VfbW9kZSk7Cj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmggYi9pbmNsdWRlL2Ry bS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oCj4gaW5kZXggZThhOWRmZC4uZjMzNWRmNSAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oCj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaAo+IEBAIC0yNCw2ICsyNCw3IEBA Cj4gICNkZWZpbmUgRFJNX0RQX0RVQUxfTU9ERV9IRUxQRVJfSAo+ICAKPiAgI2luY2x1ZGUgPGxp bnV4L3R5cGVzLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAgCj4gIC8qCj4gICAq IE9wdGlvbmFsIGZvciB0eXBlIDEgRFZJIGFkYXB0b3JzCj4gQEAgLTU0LDYgKzU1LDkgQEAKPiAg I2RlZmluZSBEUF9EVUFMX01PREVfSERNSV9QSU5fQ1RSTCAweDIxCj4gICNkZWZpbmUgIERQX0RV QUxfTU9ERV9DRUNfRU5BQkxFIDB4MDEKPiAgI2RlZmluZSBEUF9EVUFMX01PREVfSTJDX1NQRUVE X0NUUkwgMHgyMgoKTWF5YmUgbGVhdmUgYW4gZW1wdHkgbGluZSBoZXJlIHRvIHNlcGFyYXRlIHRo ZSBzdGFuZGFyZCByZWdzIGZyb20gdGhlCnZlbmRvciBzcGVjaWZpYyBvbmVzLiBIbW0uIEFjdHVh bGx5IHRoZSB2ZW5kb3IgcmVnaXN0ZXIgc3BhY2UgaXMKMHgzMC0weDNmLCB3aGVyZWFzIDB4NDAr IGlzIHJlc2VydmVkLiBCdXQgYW55d2F5IGVtcHR5IGxpbmUgd291bGQKc2VlbSB3YXJyYW50ZWQu Cgo+ICsjZGVmaW5lIERQX0RVQUxfTU9ERV9MU1BDT05fTU9ERV9DSEFOR0UJCTB4NDAKPiArI2Rl ZmluZSBEUF9EVUFMX01PREVfTFNQQ09OX0NVUlJFTlRfTU9ERQkJMHg0MQo+ICsjZGVmaW5lIERQ X0RVQUxfTU9ERV9MU1BDT05fTU9ERV9NQVNLCQkJMHgxCgpQbGVhc2UgaW5kZW50IHRoZSBiaXQg ZGVmbml0aW9uIGJ5IG9uZSBzcGFjZSB0byBtYWtlIGl0IHN0YW5kIG91dCBmcm9tCnRoZSByZWcg ZGVmaW5lcyBhIGxpdHRsZS4KCj4gIHN0cnVjdCBpMmNfYWRhcHRlcjsKPiAgCj4gQEAgLTYzLDYg KzY3LDIwIEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0 ZXIgKmFkYXB0ZXIsCj4gIAkJCSAgICAgICB1OCBvZmZzZXQsIGNvbnN0IHZvaWQgKmJ1ZmZlciwg c2l6ZV90IHNpemUpOwo+ICAKPiAgLyoqCj4gKyogZW51bSBkcm1fbHNwY29uX21vZGUKPiArKiBA bHNwY29uX21vZGVfaW52YWxpZDogTm8gaWRlYSB3aGF0J3MgZ29pbmcgb24KPiArKiBAbHNwY29u X21vZGVfbHM6IExldmVsIHNoaWZ0ZXIgbW9kZSBvZiBMU1BDT04KPiArKgl3aGljaCBkcml2ZXMg RFArKyB0byBIRE1JIDEuNCBjb252ZXJzaW9uLgo+ICsqIEBsc3Bjb25fbW9kZV9wY29uOiBQcm90 b2NvbCBjb252ZXJ0ZXIgbW9kZSBvZiBMU1BDT04KPiArKgl3aGljaCBkcml2ZXMgRFArKyB0byBI RE1JIDIuMCBhY3RpdmUgY29udmVyc2lvbi4KPiArKi8KPiArZW51bSBkcm1fbHNwY29uX21vZGUg ewo+ICsJRFJNX0xTUENPTl9NT0RFX0lOVkFMSUQsCj4gKwlEUk1fTFNQQ09OX01PREVfTFMsCj4g KwlEUk1fTFNQQ09OX01PREVfUENPTiwKPiArfTsKCklmIHdlIGNoYW5nZSB0aGUgX2dldF9tb2Rl KCkgdGhpbmcgdG8gcmV0dXJuIHRoZSBlcnJvciBzdGF0dXMgc2VwYXJhdGVseQpmcm9tIHRoZSBt b2RlLCB3ZSB3b24ndCBuZWVkIHRoZSBJTlZBTElEIHZhbHVlLgoKPiArCj4gKy8qKgo+ICAgKiBl bnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSAtIFR5cGUgb2YgdGhlIERQIGR1YWwgbW9kZSBhZGFw dG9yCj4gICAqIEBEUk1fRFBfRFVBTF9NT0RFX05PTkU6IE5vIERQIGR1YWwgbW9kZSBhZGFwdG9y Cj4gICAqIEBEUk1fRFBfRFVBTF9NT0RFX1VOS05PV046IENvdWxkIGJlIGVpdGhlciBub25lIG9y IHR5cGUgMSBEVkkgYWRhcHRvcgo+IEBAIC03MCw2ICs4OCw3IEBAIHNzaXplX3QgZHJtX2RwX2R1 YWxfbW9kZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gICAqIEBEUk1fRFBf RFVBTF9NT0RFX1RZUEUxX0hETUk6IFR5cGUgMSBIRE1JIGFkYXB0b3IKPiAgICogQERSTV9EUF9E VUFMX01PREVfVFlQRTJfRFZJOiBUeXBlIDIgRFZJIGFkYXB0b3IKPiAgICogQERSTV9EUF9EVUFM X01PREVfVFlQRTJfSERNSTogVHlwZSAyIEhETUkgYWRhcHRvcgo+ICsgKiBARFJNX0RQX0RVQUxf TU9ERV9UWVBFMl9MU1BDT046IExldmVsIHNoaWZ0ZXIgL3Byb3RvY29sIGNvbnZlcnRlcgo+ICAg Ki8KPiAgZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgewo+ICAJRFJNX0RQX0RVQUxfTU9ERV9O T05FLAo+IEBAIC03OCw2ICs5Nyw3IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHsKPiAg CURSTV9EUF9EVUFMX01PREVfVFlQRTFfSERNSSwKPiAgCURSTV9EUF9EVUFMX01PREVfVFlQRTJf RFZJLAo+ICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JLAo+ICsJRFJNX0RQX0RVQUxfTU9E RV9MU1BDT04sCj4gIH07Cj4gIAo+ICBlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBkcm1fZHBf ZHVhbF9tb2RlX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpOwo+IEBAIC04OSw0 ICsxMDksMTMgQEAgaW50IGRybV9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KGVudW0gZHJt X2RwX2R1YWxfbW9kZV90eXBlIHR5cGUsCj4gIAkJCQkgICAgIHN0cnVjdCBpMmNfYWRhcHRlciAq YWRhcHRlciwgYm9vbCBlbmFibGUpOwo+ICBjb25zdCBjaGFyICpkcm1fZHBfZ2V0X2R1YWxfbW9k ZV90eXBlX25hbWUoZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlwZSk7Cj4gIAo+ICtpbnQg ZHJtX2RwX2R1YWxfbW9kZV9pb2FfcmVhZChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4 ICpidWZmZXIsCj4gKwkJdTggb2Zmc2V0LCB1OCBub19vZl9ieXRlcyk7Cj4gK2ludCBkcm1fZHBf ZHVhbF9tb2RlX2lvYV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4ICpidWZm ZXIsCj4gKwkJdTggb2Zmc2V0LCB1OCBub19vZl9ieXRlcyk7Cj4gK2ludCBkcm1fZHBfZHVhbF9t b2RlX2dldF9lZGlkKHZvaWQgKmRhdGEsCj4gKwl1OCAqYnVmLCB1bnNpZ25lZCBpbnQgYmxvY2ss IHNpemVfdCBsZW4pOwo+ICtlbnVtIGRybV9sc3Bjb25fbW9kZSBkcm1fbHNwY29uX2dldF9jdXJy ZW50X21vZGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKTsKPiAraW50IGRybV9sc3Bjb25f Y2hhbmdlX21vZGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLAo+ICsJCWVudW0gZHJtX2xz cGNvbl9tb2RlIHJlcWRfbW9kZSk7Cj4gICNlbmRpZgo+IC0tIAo+IDEuOS4xCgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK