From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 1/4] drm: Helper for lspcon in drm_dp_dual_mode Date: Thu, 11 Aug 2016 09:49:09 +0300 Message-ID: <20160811064909.GY4329@intel.com> References: <1467723950-14093-1-git-send-email-shashank.sharma@intel.com> <1467723950-14093-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 E8A4D6E8C7 for ; Thu, 11 Aug 2016 06:49:12 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1467723950-14093-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: intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com, rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMDUsIDIwMTYgYXQgMDY6MzU6NDdQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBsc3Bjb24gc3VwcG9ydCBpbiBkcF9kdWFsX21vZGUg aGVscGVyLgo+IGxzcGNvbiBpcyBlc3NlbnRpYWxseSBhIGRwLT5oZG1pIGRvbmdsZSB3aXRoIGR1 YWwgcGVyc29uYWxpdHkuCj4gCj4gTFMgbW9kZTogSXQgd29ya3MgYXMgYSBwYXNzaXZlIGRvbmds ZSwgYnkgbGV2ZWwgc2hpZnRpbmcgRFArKwo+IHNpZ25hbHMgdG8gSERNSSBzaWduYWxzLCBpbiBM UyBtb2RlLgo+IFBDT04gbW9kZTogSXQgd29ya3MgYXMgYSBwcm90b2NvbCBjb252ZXJ0ZXIgYWN0 aXZlIGRvbmdsZQo+IGluIHBjb24gbW9kZSwgYnkgY29udmVydGluZyBEUCsrIG91dHB1dHMgdG8g SERNSSAyLjAgb3V0cHV0cy4KPiAKPiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbHNwY29u IGRldGVjdGlvbiBhbmQgbW9kZSBzZXQKPiBzd2l0Y2ggb3BlcmF0aW9ucywgYXMgYSBkcCBkdWFs IG1vZGUgZG9uZ2xlLgo+IAo+IHYyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmls bGUKPiAtIGFkZCBhZGFwdG9yIGlkIGZvciBsc3Bjb24gZGV2aWNlcyAoMHgwOCksIHVzZSBpdCB0 byBpZGVudGlmeSBsc3Bjb24KPiAtIGNoYW5nZSBmdW5jdGlvbiBuYW1lcwo+ICAgb2xkOiBkcm1f bHNwY29uX2dldF9jdXJyZW50X21vZGUvZHJtX2xzcGNvbl9jaGFuZ2VfbW9kZQo+ICAgbmV3OiBk cm1fbHNwY29uX2dldF9tb2RlL2RybV9sc3Bjb25fc2V0X21vZGUKPiAtIGNoYW5nZSBkcm1fbHNw Y29uX2dldF9tb2RlIHR5cGUgdG8gaW50LCB0byBtYXRjaAo+ICAgZHJtX2RwX2R1YWxfbW9kZV9n ZXRfdG1kc19vdXRwdXQKPiAtIGNoYW5nZSAnZXJyJyB0byAncmV0JyB0byBtYXRjaCB0aGUgcmVz dCBvZiB0aGUgZnVuY3Rpb25zCj4gLSByZW1vdmUgcG9pbnRsZXNzIHR5cGVjYXN0aW5nIGR1cmlu ZyBjYWxsIHRvIGR1YWxfbW9kZV9yZWFkCj4gLSBmaXggdGhlIGJ1dCB3aGlsZSBzZXR0aW5nIHZh bHVlIG9mIGRhdGEsIHdoaWxlIHdyaXRpbmcgbHNwY29uIG1vZGUKPiAtIGZpeCBpbmRlbnRhdGlv bgo+IC0gY2hhbmdlIG1kZWxheSgxMCkgLT4gbXNsZWVwKDEwKQo+IC0gcmV0dXJuIEVUSU1FRE9V VCBpbnN0ZWFkIG9mIEVGQVVMVCwgd2hlbiBsc3Bjb24gbW9kZSBjaGFuZ2UgdGltZXMgb3V0Cj4g LSBBZGQgYW4gZW1wdHkgbGluZSB0byBzZXBhcmF0ZSBzdGQgcmVncyBtYWNyb3MgYW5kIGxzcGNv biByZWdzIG1hY3Jvcwo+ICAgSW5kZW50IGJpdCBkZWZpbml0aW9uCj4gCj4gdjM6IEFkZHJlc3Nl ZCByZXZpZXcgY29tbWVudHMgZnJvbSBSb2RyaWdvCj4gLSBjaGFuZ2UgbWFjcm8gbmFtZSBmcm9t IERQX0RVQUxfTU9ERV9UWVBFX0xTUENPTiB0bwo+ICAgRFBfRFVBTF9NT0RFX1RZUEVfSEFTX0RQ Q0QgZm9yIGJldHRlciByZWFkYWJpbGl0eQo+IC0gY2hhbmdlIG1hY3JvIG5hbWUgZnJvbSBEUF9E VUFMX01PREVfTFNQQ09OX01PREVfUENPTiB0bwo+ICAgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RF X1BDT04gZm9yIGJldHRlciByZWFkYWJpbGl0eQo+IC0gYWRkIGNvbW1lbnQgZm9yIE1DQSBzcGVj aWZpYyBvZmZzZXRzIGxpa2UgMHg0MCBhbmQgMHg0MQo+IC0gcmVtb3ZlIERQX0RVQUxfTU9ERV9S RVZfVFlQRTIgY2hlY2sgd2hpbGUgY2hlY2tpbmcgbHNwY29uIGFkYXB0ZXIgaWQKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5jIHwgMTAzICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9t b2RlX2hlbHBlci5oICAgICB8ICAyNiArKysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDEyOSBp bnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfZHVh bF9tb2RlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVy LmMKPiBpbmRleCBhN2IyYTc1Li40Zjg5ZTBiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9k cF9kdWFsX21vZGVfaGVscGVyLmMKPiBAQCAtMTQ4LDYgKzE0OCwxNCBAQCBzdGF0aWMgYm9vbCBp c190eXBlMl9hZGFwdG9yKHVpbnQ4X3QgYWRhcHRvcl9pZCkKPiAgCQkJICAgICAgRFBfRFVBTF9N T0RFX1JFVl9UWVBFMik7Cj4gIH0KPiAgCj4gK2Jvb2wgaXNfbHNwY29uX2FkYXB0b3IoY29uc3Qg Y2hhciBoZG1pX2lkW0RQX0RVQUxfTU9ERV9IRE1JX0lEX0xFTl0sCj4gKwljb25zdCB1aW50OF90 IGFkYXB0b3JfaWQpCj4gK3sKPiArCXJldHVybiBpc19oZG1pX2FkYXB0b3IoaGRtaV9pZCkgJiYK PiArCQkoYWRhcHRvcl9pZCA9PSAoRFBfRFVBTF9NT0RFX1RZUEVfVFlQRTIgfAo+ICsJCQlEUF9E VUFMX01PREVfVFlQRV9IQVNfRFBDRCkpOwoKTG9va3MgbGlrZSBhbiBpbmRlbnQgZmFpbCBoZXJl LgoKPiArfQo+ICsKPiAgLyoqCj4gICAqIGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0IC0gSWRlbnRp ZnkgdGhlIERQIGR1YWwgbW9kZSBhZGFwdG9yCj4gICAqIEBhZGFwdGVyOiBJMkMgYWRhcHRlciBm b3IgdGhlIEREQyBidXMKPiBAQCAtMjAzLDYgKzIxMSw4IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9k ZV90eXBlIGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRl cikKPiAgCXJldCA9IGRybV9kcF9kdWFsX21vZGVfcmVhZChhZGFwdGVyLCBEUF9EVUFMX01PREVf QURBUFRPUl9JRCwKPiAgCQkJCSAgICAmYWRhcHRvcl9pZCwgc2l6ZW9mKGFkYXB0b3JfaWQpKTsK PiAgCWlmIChyZXQgPT0gMCkgewo+ICsJCWlmIChpc19sc3Bjb25fYWRhcHRvcihoZG1pX2lkLCBh ZGFwdG9yX2lkKSkKPiArCQkJcmV0dXJuIERSTV9EUF9EVUFMX01PREVfTFNQQ09OOwo+ICAJCWlm IChpc190eXBlMl9hZGFwdG9yKGFkYXB0b3JfaWQpKSB7Cj4gIAkJCWlmIChpc19oZG1pX2FkYXB0 b3IoaGRtaV9pZCkpCj4gIAkJCQlyZXR1cm4gRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JOwo+ IEBAIC0zNjQsMyArMzc0LDk2IEBAIGNvbnN0IGNoYXIgKmRybV9kcF9nZXRfZHVhbF9tb2RlX3R5 cGVfbmFtZShlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB0eXBlKQo+ICAJfQo+ICB9Cj4gIEVY UE9SVF9TWU1CT0woZHJtX2RwX2dldF9kdWFsX21vZGVfdHlwZV9uYW1lKTsKPiArCj4gKy8qKgo+ ICsgKiBkcm1fbHNwY29uX2dldF9jdXJyZW50X21vZGU6IEdldCBMU1BDT04ncyBjdXJyZW50IG1v ZGUgb2Ygb3BlcmF0aW9uIGJ5Cj4gKyAqIGJ5IHJlYWRpbmcgb2Zmc2V0ICgweDgwLCAweDQxKQo+ ICsgKiBAaTJjX2FkYXB0ZXI6IEkyQy1vdmVyLWF1eCBhZGFwdGVyCj4gKyAqIEBjdXJyZW50X21v ZGU6IG91dCB2YWlhYmxlLCBjdXJyZW50IGxzcGNvbiBtb2RlIG9mIG9wZXJhdGlvbgo+ICsgKgo+ ICsgKiBSZXR1cm5zOgo+ICsgKiAwIG9uIHN1Y2Nlc3MsIHNldHMgdGhlIGN1cnJlbnRfbW9kZSB2 YWx1ZSB0byBhcHByb3ByaWF0ZSBtb2RlCj4gKyAqIC1lcnJvciBvbiBmYWlsdXJlCj4gKyAqLwo+ ICtpbnQgZHJtX2xzcGNvbl9nZXRfbW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4g KwllbnVtIGRybV9sc3Bjb25fbW9kZSAqY3VycmVudF9tb2RlKQoKaW5kZW50IGZhaWwsIEkgd291 bGQganVzdCBjYWxsIGl0ICdtb2RlJwoKPiArewo+ICsJdTggZGF0YTsKPiArCWludCByZXQgPSAw Owo+ICsKPiArCWlmICghY3VycmVudF9tb2RlKSB7Cj4gKwkJRFJNX0VSUk9SKCJOVUxMIGlucHV0 XG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwkvKiBSZWFkIFN0YXR1czog aTJjIG92ZXIgYXV4ICovCj4gKwlyZXQgPSBkcm1fZHBfZHVhbF9tb2RlX3JlYWQoYWRhcHRlciwg RFBfRFVBTF9NT0RFX0xTUENPTl9DVVJSRU5UX01PREUsCj4gKwkJCSh2b2lkICopJmRhdGEsIHNp emVvZihkYXRhKSk7CgppbmRlbnQgZmFpbCwgdm9pZCogY2FzdCBub3QgbmVlZGVkLgoKPiArCWlm IChyZXQgPCAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJMU1BDT04gcmVhZCgweDgwLCAweDQxKSBmYWls ZWRcbiIpOwo+ICsJCXJldHVybiAtRUZBVUxUOwo+ICsJfQo+ICsKPiArCWlmIChkYXRhICYgRFBf RFVBTF9NT0RFX0xTUENPTl9NT0RFX1BDT04pCj4gKwkJKmN1cnJlbnRfbW9kZSA9IERSTV9MU1BD T05fTU9ERV9QQ09OOwo+ICsJZWxzZQo+ICsJCSpjdXJyZW50X21vZGUgPSBEUk1fTFNQQ09OX01P REVfTFM7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9sc3Bjb25fZ2V0 X21vZGUpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9sc3Bjb25fY2hhbmdlX21vZGU6IENoYW5nZSBM U1BDT04ncyBtb2RlIG9mIG9wZXJhdGlvbiBieQo+ICsgKiBieSB3cml0aW5nIG9mZnNldCAoMHg4 MCwgMHg0MCkKPiArICogQGkyY19hZGFwdGVyOiBJMkMtb3Zlci1hdXggYWRhcHRlcgo+ICsgKiBA cmVxZF9tb2RlOiByZXF1aXJlZCBtb2RlIG9mIG9wZXJhdGlvbgo+ICsgKgo+ICsgKiBSZXR1cm5z Ogo+ICsgKiAwIG9uIHN1Y2Nlc3MsIC1lcnJvciBvbiBmYWlsdXJlL3RpbWVvdXQKPiArICovCj4g K2ludCBkcm1fbHNwY29uX3NldF9tb2RlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwKPiAr CWVudW0gZHJtX2xzcGNvbl9tb2RlIHJlcWRfbW9kZSkKCmluZGVudCBmYWlsLCBJIHdvdWxkIGp1 c3QgY2FsbCBpdCAnbW9kZScKCj4gK3sKPiArCXU4IGRhdGEgPSAwOwo+ICsJaW50IHJldDsKPiAr CWludCB0aW1lX291dCA9IDIwMDsKPiArCWVudW0gZHJtX2xzcGNvbl9tb2RlIGNoYW5nZWRfbW9k ZTsKClRoaXMgSSBtaWdodCBjYWxsICdjdXJyZW50X21vZGUnLiBUaGUgZGVjbGFyYXRpb24gY2Fu IGJlIG1vdmVkIGluc2lkZQp0aGUgbG9vcC4KCj4gKwo+ICsJaWYgKHJlcWRfbW9kZSA9PSBEUk1f TFNQQ09OX01PREVfUENPTikKPiArCQlkYXRhID0gRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX1BD T047Cj4gKwo+ICsJLyogQ2hhbmdlIG1vZGUgKi8KPiArCXJldCA9IGRybV9kcF9kdWFsX21vZGVf d3JpdGUoYWRhcHRlciwgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX0NIQU5HRSwKPiArCQkJJmRh dGEsIHNpemVvZihkYXRhKSk7CgppbmRlbnQgZmFpbC4KCj4gKwlpZiAocmV0IDwgMCkgewo+ICsJ CURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIGZhaWxlZFxuIik7Cj4gKwkJcmV0dXJuIHJl dDsKPiArCX0KPiArCj4gKwkvKgo+ICsJICAqIENvbmZpcm0gbW9kZSBjaGFuZ2UgYnkgcmVhZGlu ZyB0aGUgc3RhdHVzIGJpdC4KPiArCSAgKiBTb21ldGltZXMsIGl0IHRha2VzIGEgd2hpbGUgdG8g Y2hhbmdlIHRoZSBtb2RlLAo+ICsJICAqIHNvIHdhaXQgYW5kIHJldHJ5IHVudGlsIHRpbWUgb3V0 IG9yIGRvbmUuCj4gKwkgICovCj4gKwlkbyB7Cj4gKwkJcmV0ID0gZHJtX2xzcGNvbl9nZXRfbW9k ZShhZGFwdGVyLCAmY2hhbmdlZF9tb2RlKTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCURSTV9FUlJP UigiY2FudCBjb25maXJtIExTUENPTiBtb2RlIGNoYW5nZVxuIik7Cj4gKwkJCXJldHVybiByZXQ7 Cj4gKwkJfSBlbHNlIHsKPiArCQkJaWYgKGNoYW5nZWRfbW9kZSAhPSByZXFkX21vZGUpIHsKPiAr CQkJCW1zbGVlcCgxMCk7Cj4gKwkJCQl0aW1lX291dCAtPSAxMDsKPiArCQkJfSBlbHNlIHsKPiAr CQkJCURSTV9ERUJVR19LTVMoIkxTUENPTiBtb2RlIGNoYW5nZWQgdG8gJXNcbiIsCj4gKwkJCQkJ cmVxZF9tb2RlID09IERSTV9MU1BDT05fTU9ERV9MUyA/Cj4gKwkJCQkJCSJMUyIgOiAiUENPTiIp Owo+ICsJCQkJcmV0dXJuIDA7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9IHdoaWxlICh0aW1lX291dCk7 Cj4gKwo+ICsJRFJNX0VSUk9SKCJMU1BDT04gbW9kZSBjaGFuZ2UgdGltZWQgb3V0XG4iKTsKPiAr CXJldHVybiAtRVRJTUVET1VUOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2xzcGNvbl9zZXRf bW9kZSk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVy LmggYi9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oCj4gaW5kZXggZThhOWRm ZC4uYTNjMWQwMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2RlX2hl bHBlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaAo+IEBA IC0yNCw2ICsyNCw3IEBACj4gICNkZWZpbmUgRFJNX0RQX0RVQUxfTU9ERV9IRUxQRVJfSAo+ICAK PiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4K CldoeT8KCj4gIAo+ICAvKgo+ICAgKiBPcHRpb25hbCBmb3IgdHlwZSAxIERWSSBhZGFwdG9ycwo+ IEBAIC00MCw2ICs0MSw3IEBACj4gICNkZWZpbmUgIERQX0RVQUxfTU9ERV9SRVZfVFlQRTIgMHgw MAo+ICAjZGVmaW5lICBEUF9EVUFMX01PREVfVFlQRV9NQVNLIDB4ZjAKPiAgI2RlZmluZSAgRFBf RFVBTF9NT0RFX1RZUEVfVFlQRTIgMHhhMAo+ICsjZGVmaW5lICBEUF9EVUFMX01PREVfVFlQRV9I QVNfRFBDRCAweDA4CgpNYXliZSBhZGQgYSBjb21tZW50IHRoYXQgdGhpcyBjYW1lIGZyb20gTFNQ Q09OLCBhbmQgaXQncyBtYXJrZWQKcmVzZXJ2ZWQgaW4gdGhlIG9mZmljaWFsIGR1YWwgbW9kZSBz cGVjLgoKPiAgI2RlZmluZSBEUF9EVUFMX01PREVfSUVFRV9PVUkgMHgxMSAvKiAxMS0xMyovCj4g ICNkZWZpbmUgIERQX0RVQUxfSUVFRV9PVUlfTEVOIDMKPiAgI2RlZmluZSBEUF9EVUFMX0RFVklD RV9JRCAweDE0IC8qIDE0LTE5ICovCj4gQEAgLTU1LDYgKzU3LDExIEBACj4gICNkZWZpbmUgIERQ X0RVQUxfTU9ERV9DRUNfRU5BQkxFIDB4MDEKPiAgI2RlZmluZSBEUF9EVUFMX01PREVfSTJDX1NQ RUVEX0NUUkwgMHgyMgo+ICAKPiArLyogTFNQQ09OIHNwZWNpZmljIHJlZ2lzdGVycywgZGVmaW5l ZCBieSBNQ0EgKi8KPiArI2RlZmluZSBEUF9EVUFMX01PREVfTFNQQ09OX01PREVfQ0hBTkdFCQkw eDQwCj4gKyNkZWZpbmUgRFBfRFVBTF9NT0RFX0xTUENPTl9DVVJSRU5UX01PREUJCTB4NDEKPiAr I2RlZmluZSAgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX1BDT04JCQkweDEKPiArCj4gIHN0cnVj dCBpMmNfYWRhcHRlcjsKPiAgCj4gIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV9yZWFkKHN0cnVj dCBpMmNfYWRhcHRlciAqYWRhcHRlciwKPiBAQCAtNjMsNiArNzAsMTkgQEAgc3NpemVfdCBkcm1f ZHBfZHVhbF9tb2RlX3dyaXRlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwKPiAgCQkJICAg ICAgIHU4IG9mZnNldCwgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7Cj4gIAo+ICAv KioKPiArKiBlbnVtIGRybV9sc3Bjb25fbW9kZQo+ICsqIEBsc3Bjb25fbW9kZV9sczogTGV2ZWwg c2hpZnRlciBtb2RlIG9mIExTUENPTgo+ICsqCXdoaWNoIGRyaXZlcyBEUCsrIHRvIEhETUkgMS40 IGNvbnZlcnNpb24uCj4gKyogQGxzcGNvbl9tb2RlX3Bjb246IFByb3RvY29sIGNvbnZlcnRlciBt b2RlIG9mIExTUENPTgo+ICsqCXdoaWNoIGRyaXZlcyBEUCsrIHRvIEhETUkgMi4wIGFjdGl2ZSBj b252ZXJzaW9uLgoKVGhlc2UgZG9uJ3QgbWF0Y2ggdGhlIGVudW0gYmVsb3cuCgo+ICsqLwo+ICtl bnVtIGRybV9sc3Bjb25fbW9kZSB7Cj4gKwlEUk1fTFNQQ09OX01PREVfSU5WQUxJRCwKCkRpZCB3 ZSBzdGlsbCBoYXZlIHNvbWUgbmVlZCBmb3IgdGhpcz8KCj4gKwlEUk1fTFNQQ09OX01PREVfTFMs Cj4gKwlEUk1fTFNQQ09OX01PREVfUENPTiwKPiArfTsKPiArCj4gKy8qKgo+ICAgKiBlbnVtIGRy bV9kcF9kdWFsX21vZGVfdHlwZSAtIFR5cGUgb2YgdGhlIERQIGR1YWwgbW9kZSBhZGFwdG9yCj4g ICAqIEBEUk1fRFBfRFVBTF9NT0RFX05PTkU6IE5vIERQIGR1YWwgbW9kZSBhZGFwdG9yCj4gICAq IEBEUk1fRFBfRFVBTF9NT0RFX1VOS05PV046IENvdWxkIGJlIGVpdGhlciBub25lIG9yIHR5cGUg MSBEVkkgYWRhcHRvcgo+IEBAIC03MCw2ICs5MCw3IEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9k ZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gICAqIEBEUk1fRFBfRFVBTF9N T0RFX1RZUEUxX0hETUk6IFR5cGUgMSBIRE1JIGFkYXB0b3IKPiAgICogQERSTV9EUF9EVUFMX01P REVfVFlQRTJfRFZJOiBUeXBlIDIgRFZJIGFkYXB0b3IKPiAgICogQERSTV9EUF9EVUFMX01PREVf VFlQRTJfSERNSTogVHlwZSAyIEhETUkgYWRhcHRvcgo+ICsgKiBARFJNX0RQX0RVQUxfTU9ERV9U WVBFMl9MU1BDT046IExldmVsIHNoaWZ0ZXIgL3Byb3RvY29sIGNvbnZlcnRlcgo+ICAgKi8KPiAg ZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgewo+ICAJRFJNX0RQX0RVQUxfTU9ERV9OT05FLAo+ IEBAIC03OCw2ICs5OSw3IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHsKPiAgCURSTV9E UF9EVUFMX01PREVfVFlQRTFfSERNSSwKPiAgCURSTV9EUF9EVUFMX01PREVfVFlQRTJfRFZJLAo+ ICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JLAo+ICsJRFJNX0RQX0RVQUxfTU9ERV9MU1BD T04sCj4gIH07Cj4gIAo+ICBlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBkcm1fZHBfZHVhbF9t b2RlX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpOwo+IEBAIC04OSw0ICsxMTEs OCBAQCBpbnQgZHJtX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoZW51bSBkcm1fZHBfZHVh bF9tb2RlX3R5cGUgdHlwZSwKPiAgCQkJCSAgICAgc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVy LCBib29sIGVuYWJsZSk7Cj4gIGNvbnN0IGNoYXIgKmRybV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVf bmFtZShlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB0eXBlKTsKPiAgCj4gK2ludCBkcm1fbHNw Y29uX2dldF9tb2RlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwKPiArCWVudW0gZHJtX2xz cGNvbl9tb2RlICpjdXJyZW50X21vZGUpOwo+ICtpbnQgZHJtX2xzcGNvbl9zZXRfbW9kZShzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gKwkJZW51bSBkcm1fbHNwY29uX21vZGUgcmVxZF9t b2RlKTsKCm1vcmUgaW5kZW50IGZhaWxzLgoKPiAgI2VuZGlmCj4gLS0gCj4gMS45LjEKCi0tIApW aWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=