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 16:45:24 +0300 Message-ID: <20160811134524.GN4329@intel.com> References: <1467723950-14093-1-git-send-email-shashank.sharma@intel.com> <1467723950-14093-2-git-send-email-shashank.sharma@intel.com> <20160811064909.GY4329@intel.com> <9ef6b116-51c7-e7cd-6972-3f0ef9fd1512@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 999A66E851 for ; Thu, 11 Aug 2016 13:45:32 +0000 (UTC) Content-Disposition: inline In-Reply-To: <9ef6b116-51c7-e7cd-6972-3f0ef9fd1512@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: intel-gfx@lists.freedesktop.org, paulo.r.zanoni@intel.com, rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTEsIDIwMTYgYXQgMDI6MTQ6MTBQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBUaGFua3MgZm9yIHRoZSByZXZpZXcsIFZpbGxlLgo+IAo+IE15IGNvbW1lbnRz LCBpbmxpbmUuCj4gCj4gUmVnYXJkcwo+IAo+IFNoYXNoYW5rCj4gCj4gCj4gT24gOC8xMS8yMDE2 IDEyOjE5IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUdWUsIEp1bCAwNSwgMjAx NiBhdCAwNjozNTo0N1BNICswNTMwLCBTaGFzaGFuayBTaGFybWEgd3JvdGU6Cj4gPj4gVGhpcyBw YXRjaCBhZGRzIGxzcGNvbiBzdXBwb3J0IGluIGRwX2R1YWxfbW9kZSBoZWxwZXIuCj4gPj4gbHNw Y29uIGlzIGVzc2VudGlhbGx5IGEgZHAtPmhkbWkgZG9uZ2xlIHdpdGggZHVhbCBwZXJzb25hbGl0 eS4KPiA+Pgo+ID4+IExTIG1vZGU6IEl0IHdvcmtzIGFzIGEgcGFzc2l2ZSBkb25nbGUsIGJ5IGxl dmVsIHNoaWZ0aW5nIERQKysKPiA+PiBzaWduYWxzIHRvIEhETUkgc2lnbmFscywgaW4gTFMgbW9k ZS4KPiA+PiBQQ09OIG1vZGU6IEl0IHdvcmtzIGFzIGEgcHJvdG9jb2wgY29udmVydGVyIGFjdGl2 ZSBkb25nbGUKPiA+PiBpbiBwY29uIG1vZGUsIGJ5IGNvbnZlcnRpbmcgRFArKyBvdXRwdXRzIHRv IEhETUkgMi4wIG91dHB1dHMuCj4gPj4KPiA+PiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Ig bHNwY29uIGRldGVjdGlvbiBhbmQgbW9kZSBzZXQKPiA+PiBzd2l0Y2ggb3BlcmF0aW9ucywgYXMg YSBkcCBkdWFsIG1vZGUgZG9uZ2xlLgo+ID4+Cj4gPj4gdjI6IEFkZHJlc3NlZCByZXZpZXcgY29t bWVudHMgZnJvbSBWaWxsZQo+ID4+IC0gYWRkIGFkYXB0b3IgaWQgZm9yIGxzcGNvbiBkZXZpY2Vz ICgweDA4KSwgdXNlIGl0IHRvIGlkZW50aWZ5IGxzcGNvbgo+ID4+IC0gY2hhbmdlIGZ1bmN0aW9u IG5hbWVzCj4gPj4gICAgb2xkOiBkcm1fbHNwY29uX2dldF9jdXJyZW50X21vZGUvZHJtX2xzcGNv bl9jaGFuZ2VfbW9kZQo+ID4+ICAgIG5ldzogZHJtX2xzcGNvbl9nZXRfbW9kZS9kcm1fbHNwY29u X3NldF9tb2RlCj4gPj4gLSBjaGFuZ2UgZHJtX2xzcGNvbl9nZXRfbW9kZSB0eXBlIHRvIGludCwg dG8gbWF0Y2gKPiA+PiAgICBkcm1fZHBfZHVhbF9tb2RlX2dldF90bWRzX291dHB1dAo+ID4+IC0g Y2hhbmdlICdlcnInIHRvICdyZXQnIHRvIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbnMK PiA+PiAtIHJlbW92ZSBwb2ludGxlc3MgdHlwZWNhc3RpbmcgZHVyaW5nIGNhbGwgdG8gZHVhbF9t b2RlX3JlYWQKPiA+PiAtIGZpeCB0aGUgYnV0IHdoaWxlIHNldHRpbmcgdmFsdWUgb2YgZGF0YSwg d2hpbGUgd3JpdGluZyBsc3Bjb24gbW9kZQo+ID4+IC0gZml4IGluZGVudGF0aW9uCj4gPj4gLSBj aGFuZ2UgbWRlbGF5KDEwKSAtPiBtc2xlZXAoMTApCj4gPj4gLSByZXR1cm4gRVRJTUVET1VUIGlu c3RlYWQgb2YgRUZBVUxULCB3aGVuIGxzcGNvbiBtb2RlIGNoYW5nZSB0aW1lcyBvdXQKPiA+PiAt IEFkZCBhbiBlbXB0eSBsaW5lIHRvIHNlcGFyYXRlIHN0ZCByZWdzIG1hY3JvcyBhbmQgbHNwY29u IHJlZ3MgbWFjcm9zCj4gPj4gICAgSW5kZW50IGJpdCBkZWZpbml0aW9uCj4gPj4KPiA+PiB2Mzog QWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFJvZHJpZ28KPiA+PiAtIGNoYW5nZSBtYWNy byBuYW1lIGZyb20gRFBfRFVBTF9NT0RFX1RZUEVfTFNQQ09OIHRvCj4gPj4gICAgRFBfRFVBTF9N T0RFX1RZUEVfSEFTX0RQQ0QgZm9yIGJldHRlciByZWFkYWJpbGl0eQo+ID4+IC0gY2hhbmdlIG1h Y3JvIG5hbWUgZnJvbSBEUF9EVUFMX01PREVfTFNQQ09OX01PREVfUENPTiB0bwo+ID4+ICAgIERQ X0RVQUxfTU9ERV9MU1BDT05fTU9ERV9QQ09OIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKPiA+PiAt IGFkZCBjb21tZW50IGZvciBNQ0Egc3BlY2lmaWMgb2Zmc2V0cyBsaWtlIDB4NDAgYW5kIDB4NDEK PiA+PiAtIHJlbW92ZSBEUF9EVUFMX01PREVfUkVWX1RZUEUyIGNoZWNrIHdoaWxlIGNoZWNraW5n IGxzcGNvbiBhZGFwdGVyIGlkCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFy bWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gICBkcml2ZXJzL2dw dS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYyB8IDEwMyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiA+PiAgIGluY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmgg ICAgIHwgIDI2ICsrKysrKysrCj4gPj4gICAyIGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25z KCspCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21v ZGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYwo+ ID4+IGluZGV4IGE3YjJhNzUuLjRmODllMGIgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYwo+ID4+IEBAIC0xNDgsNiArMTQ4LDE0IEBAIHN0YXRp YyBib29sIGlzX3R5cGUyX2FkYXB0b3IodWludDhfdCBhZGFwdG9yX2lkKQo+ID4+ICAgCQkJICAg ICAgRFBfRFVBTF9NT0RFX1JFVl9UWVBFMik7Cj4gPj4gICB9Cj4gPj4gICAKPiA+PiArYm9vbCBp c19sc3Bjb25fYWRhcHRvcihjb25zdCBjaGFyIGhkbWlfaWRbRFBfRFVBTF9NT0RFX0hETUlfSURf TEVOXSwKPiA+PiArCWNvbnN0IHVpbnQ4X3QgYWRhcHRvcl9pZCkKPiA+PiArewo+ID4+ICsJcmV0 dXJuIGlzX2hkbWlfYWRhcHRvcihoZG1pX2lkKSAmJgo+ID4+ICsJCShhZGFwdG9yX2lkID09IChE UF9EVUFMX01PREVfVFlQRV9UWVBFMiB8Cj4gPj4gKwkJCURQX0RVQUxfTU9ERV9UWVBFX0hBU19E UENEKSk7Cj4gPiBMb29rcyBsaWtlIGFuIGluZGVudCBmYWlsIGhlcmUuCj4gQ2FuIHlvdSBwbGVh c2UgbGV0IG1lIGtub3csIHdoeSBkbyB3ZSBjYWxsIGl0IGluZGVudCBmYWlsID8gY2hlY2twYXRj aCAKPiBkb2Vzbid0IGNvbXBsYWludCBhYm91dCB0aGlzLgoKU3R1ZmYgc2hvdWxkIGxpbmUgdXAg YWZ0ZXIgdGhlIG9wZW5pbmcgJygnCgo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAgLyoqCj4gPj4gICAg KiBkcm1fZHBfZHVhbF9tb2RlX2RldGVjdCAtIElkZW50aWZ5IHRoZSBEUCBkdWFsIG1vZGUgYWRh cHRvcgo+ID4+ICAgICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyIGZvciB0aGUgRERDIGJ1cwo+ID4+ IEBAIC0yMDMsNiArMjExLDggQEAgZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgZHJtX2RwX2R1 YWxfbW9kZV9kZXRlY3Qoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKQo+ID4+ICAgCXJldCA9 IGRybV9kcF9kdWFsX21vZGVfcmVhZChhZGFwdGVyLCBEUF9EVUFMX01PREVfQURBUFRPUl9JRCwK PiA+PiAgIAkJCQkgICAgJmFkYXB0b3JfaWQsIHNpemVvZihhZGFwdG9yX2lkKSk7Cj4gPj4gICAJ aWYgKHJldCA9PSAwKSB7Cj4gPj4gKwkJaWYgKGlzX2xzcGNvbl9hZGFwdG9yKGhkbWlfaWQsIGFk YXB0b3JfaWQpKQo+ID4+ICsJCQlyZXR1cm4gRFJNX0RQX0RVQUxfTU9ERV9MU1BDT047Cj4gPj4g ICAJCWlmIChpc190eXBlMl9hZGFwdG9yKGFkYXB0b3JfaWQpKSB7Cj4gPj4gICAJCQlpZiAoaXNf aGRtaV9hZGFwdG9yKGhkbWlfaWQpKQo+ID4+ICAgCQkJCXJldHVybiBEUk1fRFBfRFVBTF9NT0RF X1RZUEUyX0hETUk7Cj4gPj4gQEAgLTM2NCwzICszNzQsOTYgQEAgY29uc3QgY2hhciAqZHJtX2Rw X2dldF9kdWFsX21vZGVfdHlwZV9uYW1lKGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHR5cGUp Cj4gPj4gICAJfQo+ID4+ICAgfQo+ID4+ICAgRVhQT1JUX1NZTUJPTChkcm1fZHBfZ2V0X2R1YWxf bW9kZV90eXBlX25hbWUpOwo+ID4+ICsKPiA+PiArLyoqCj4gPj4gKyAqIGRybV9sc3Bjb25fZ2V0 X2N1cnJlbnRfbW9kZTogR2V0IExTUENPTidzIGN1cnJlbnQgbW9kZSBvZiBvcGVyYXRpb24gYnkK PiA+PiArICogYnkgcmVhZGluZyBvZmZzZXQgKDB4ODAsIDB4NDEpCj4gPj4gKyAqIEBpMmNfYWRh cHRlcjogSTJDLW92ZXItYXV4IGFkYXB0ZXIKPiA+PiArICogQGN1cnJlbnRfbW9kZTogb3V0IHZh aWFibGUsIGN1cnJlbnQgbHNwY29uIG1vZGUgb2Ygb3BlcmF0aW9uCj4gPj4gKyAqCj4gPj4gKyAq IFJldHVybnM6Cj4gPj4gKyAqIDAgb24gc3VjY2Vzcywgc2V0cyB0aGUgY3VycmVudF9tb2RlIHZh bHVlIHRvIGFwcHJvcHJpYXRlIG1vZGUKPiA+PiArICogLWVycm9yIG9uIGZhaWx1cmUKPiA+PiAr ICovCj4gPj4gK2ludCBkcm1fbHNwY29uX2dldF9tb2RlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRh cHRlciwKPiA+PiArCWVudW0gZHJtX2xzcGNvbl9tb2RlICpjdXJyZW50X21vZGUpCj4gPiBpbmRl bnQgZmFpbCwgSSB3b3VsZCBqdXN0IGNhbGwgaXQgJ21vZGUnCj4gSSB3YW50ZWQgdG8gYmUgbW9y ZSBpbmZvcm1hdGl2ZSBhYm91dCB3aGF0IGlzIHRoZSBvdXQgcGFyYW1ldGVyLCBJIAo+IHRob3Vn aCBpdCBtYWtlcyBpdCBtb3JlIHJlYWRhYmxlCj4gdGhhdCBpdHMgcmV0dXJuaW5nIGN1cnJlbnQg bW9kZSBvZiBsc3Bjb24uICBXb3VsZCB5b3Ugc3RpbGwgcHJlZmVyIHRvIAo+IGNhbGwgaXQgbW9k ZSBvbmx5ID8KClllcywgdGhlIGZhY3QgdGhhdCBpdCdzIHRoZSBjdXJyZW50IG1vZGUgaXMgcHJl dHR5IG9idmlvdXMuCgo+ID4+ICt7Cj4gPj4gKwl1OCBkYXRhOwo+ID4+ICsJaW50IHJldCA9IDA7 Cj4gPj4gKwo+ID4+ICsJaWYgKCFjdXJyZW50X21vZGUpIHsKPiA+PiArCQlEUk1fRVJST1IoIk5V TEwgaW5wdXRcbiIpOwo+ID4+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4+ICsJfQo+ID4+ICsKPiA+ PiArCS8qIFJlYWQgU3RhdHVzOiBpMmMgb3ZlciBhdXggKi8KPiA+PiArCXJldCA9IGRybV9kcF9k dWFsX21vZGVfcmVhZChhZGFwdGVyLCBEUF9EVUFMX01PREVfTFNQQ09OX0NVUlJFTlRfTU9ERSwK PiA+PiArCQkJKHZvaWQgKikmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKPiA+IGluZGVudCBmYWlsLCB2 b2lkKiBjYXN0IG5vdCBuZWVkZWQuCj4gU3VyZSwgd2lsbCByZW1vdmUgdm9pZCwgc2FtZSBxdWVz dGlvbiBvbiBpbmRlbnQgYXMgYWJvdmUuCj4gPj4gKwlpZiAocmV0IDwgMCkgewo+ID4+ICsJCURS TV9FUlJPUigiTFNQQ09OIHJlYWQoMHg4MCwgMHg0MSkgZmFpbGVkXG4iKTsKPiA+PiArCQlyZXR1 cm4gLUVGQVVMVDsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwlpZiAoZGF0YSAmIERQX0RVQUxfTU9E RV9MU1BDT05fTU9ERV9QQ09OKQo+ID4+ICsJCSpjdXJyZW50X21vZGUgPSBEUk1fTFNQQ09OX01P REVfUENPTjsKPiA+PiArCWVsc2UKPiA+PiArCQkqY3VycmVudF9tb2RlID0gRFJNX0xTUENPTl9N T0RFX0xTOwo+ID4+ICsJcmV0dXJuIDA7Cj4gPj4gK30KPiA+PiArRVhQT1JUX1NZTUJPTChkcm1f bHNwY29uX2dldF9tb2RlKTsKPiA+PiArCj4gPj4gKy8qKgo+ID4+ICsgKiBkcm1fbHNwY29uX2No YW5nZV9tb2RlOiBDaGFuZ2UgTFNQQ09OJ3MgbW9kZSBvZiBvcGVyYXRpb24gYnkKPiA+PiArICog Ynkgd3JpdGluZyBvZmZzZXQgKDB4ODAsIDB4NDApCj4gPj4gKyAqIEBpMmNfYWRhcHRlcjogSTJD LW92ZXItYXV4IGFkYXB0ZXIKPiA+PiArICogQHJlcWRfbW9kZTogcmVxdWlyZWQgbW9kZSBvZiBv cGVyYXRpb24KPiA+PiArICoKPiA+PiArICogUmV0dXJuczoKPiA+PiArICogMCBvbiBzdWNjZXNz LCAtZXJyb3Igb24gZmFpbHVyZS90aW1lb3V0Cj4gPj4gKyAqLwo+ID4+ICtpbnQgZHJtX2xzcGNv bl9zZXRfbW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gPj4gKwllbnVtIGRybV9s c3Bjb25fbW9kZSByZXFkX21vZGUpCj4gPiBpbmRlbnQgZmFpbCwgSSB3b3VsZCBqdXN0IGNhbGwg aXQgJ21vZGUnCj4gU2FtZSBhcyBhYm92ZSBjb21tZW50cyBhYm91dCBpbmRlbnQuCj4gTm93LCB0 aGlzIGZ1bmN0aW9uIGRlYWxzIHdpdGggdHdvIG1vZGVzOgo+IG9uZSB3aGljaCB3ZSB3aXNoIHRv IG1vdmUgdG8sIGFuZCBvbmUgd2hpY2ggd2UgZ2V0IGFmdGVyIG1vZGUgY2hhbmdlIAo+IG9wZXJh dGlvbi4KPiBUaGUgbW9kZSBhZnRlciBtb2RlIGNoYW5nZSBvcGVyYXRpb24gbWlnaHQgbm90IGJl IHRoZSBzYW1lIGFzIHRoZSBvbmUgd2UgCj4gd2lzaGVkIGZvci4KPiBTbyB3b3VsZG4ndCBpdCBi ZSBiZXR0ZXIgdG8gbWFrZSBpdCBjbGVhciBieSBjYWxsaW5nIGluIHJlcWRfbW9kZSA/CgpyZXFk XyBsb29rcyBsaW5lIG5vaXNlIHRvIG1lLiBZb3UgY291bGQgc3BlbGwgaXQgb3V0IHByb3Blcmx5 LCBidXQgc3RpbGwKbG9va3MgbGlrZSBzdXBlcmZsdW91cyBpbmZyb21hdGlvbiB0byBtZS4gSXQn cyBwcmV0dHkgY2xlYXIgZnJvbSB0aGUKY29udGV4dC4KCj4gPj4gK3sKPiA+PiArCXU4IGRhdGEg PSAwOwo+ID4+ICsJaW50IHJldDsKPiA+PiArCWludCB0aW1lX291dCA9IDIwMDsKPiA+PiArCWVu dW0gZHJtX2xzcGNvbl9tb2RlIGNoYW5nZWRfbW9kZTsKPiA+IFRoaXMgSSBtaWdodCBjYWxsICdj dXJyZW50X21vZGUnLiBUaGUgZGVjbGFyYXRpb24gY2FuIGJlIG1vdmVkIGluc2lkZQo+ID4gdGhl IGxvb3AuCj4gU3VyZSwgd2lsbCBkbyB0aGF0Lgo+ID4+ICsKPiA+PiArCWlmIChyZXFkX21vZGUg PT0gRFJNX0xTUENPTl9NT0RFX1BDT04pCj4gPj4gKwkJZGF0YSA9IERQX0RVQUxfTU9ERV9MU1BD T05fTU9ERV9QQ09OOwo+ID4+ICsKPiA+PiArCS8qIENoYW5nZSBtb2RlICovCj4gPj4gKwlyZXQg PSBkcm1fZHBfZHVhbF9tb2RlX3dyaXRlKGFkYXB0ZXIsIERQX0RVQUxfTU9ERV9MU1BDT05fTU9E RV9DSEFOR0UsCj4gPj4gKwkJCSZkYXRhLCBzaXplb2YoZGF0YSkpOwo+ID4gaW5kZW50IGZhaWwu Cj4gU2FtZSBhcyBhYm92ZS4KPiA+PiArCWlmIChyZXQgPCAwKSB7Cj4gPj4gKwkJRFJNX0VSUk9S KCJMU1BDT04gbW9kZSBjaGFuZ2UgZmFpbGVkXG4iKTsKPiA+PiArCQlyZXR1cm4gcmV0Owo+ID4+ ICsJfQo+ID4+ICsKPiA+PiArCS8qCj4gPj4gKwkgICogQ29uZmlybSBtb2RlIGNoYW5nZSBieSBy ZWFkaW5nIHRoZSBzdGF0dXMgYml0Lgo+ID4+ICsJICAqIFNvbWV0aW1lcywgaXQgdGFrZXMgYSB3 aGlsZSB0byBjaGFuZ2UgdGhlIG1vZGUsCj4gPj4gKwkgICogc28gd2FpdCBhbmQgcmV0cnkgdW50 aWwgdGltZSBvdXQgb3IgZG9uZS4KPiA+PiArCSAgKi8KPiA+PiArCWRvIHsKPiA+PiArCQlyZXQg PSBkcm1fbHNwY29uX2dldF9tb2RlKGFkYXB0ZXIsICZjaGFuZ2VkX21vZGUpOwo+ID4+ICsJCWlm IChyZXQpIHsKPiA+PiArCQkJRFJNX0VSUk9SKCJjYW50IGNvbmZpcm0gTFNQQ09OIG1vZGUgY2hh bmdlXG4iKTsKPiA+PiArCQkJcmV0dXJuIHJldDsKPiA+PiArCQl9IGVsc2Ugewo+ID4+ICsJCQlp ZiAoY2hhbmdlZF9tb2RlICE9IHJlcWRfbW9kZSkgewo+ID4+ICsJCQkJbXNsZWVwKDEwKTsKPiA+ PiArCQkJCXRpbWVfb3V0IC09IDEwOwo+ID4+ICsJCQl9IGVsc2Ugewo+ID4+ICsJCQkJRFJNX0RF QlVHX0tNUygiTFNQQ09OIG1vZGUgY2hhbmdlZCB0byAlc1xuIiwKPiA+PiArCQkJCQlyZXFkX21v ZGUgPT0gRFJNX0xTUENPTl9NT0RFX0xTID8KPiA+PiArCQkJCQkJIkxTIiA6ICJQQ09OIik7Cj4g Pj4gKwkJCQlyZXR1cm4gMDsKPiA+PiArCQkJfQo+ID4+ICsJCX0KPiA+PiArCX0gd2hpbGUgKHRp bWVfb3V0KTsKPiA+PiArCj4gPj4gKwlEUk1fRVJST1IoIkxTUENPTiBtb2RlIGNoYW5nZSB0aW1l ZCBvdXRcbiIpOwo+ID4+ICsJcmV0dXJuIC1FVElNRURPVVQ7Cj4gPj4gK30KPiA+PiArRVhQT1JU X1NZTUJPTChkcm1fbHNwY29uX3NldF9tb2RlKTsKPiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21v ZGVfaGVscGVyLmgKPiA+PiBpbmRleCBlOGE5ZGZkLi5hM2MxZDAzIDEwMDY0NAo+ID4+IC0tLSBh L2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmgKPiA+PiArKysgYi9pbmNsdWRl L2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oCj4gPj4gQEAgLTI0LDYgKzI0LDcgQEAKPiA+ PiAgICNkZWZpbmUgRFJNX0RQX0RVQUxfTU9ERV9IRUxQRVJfSAo+ID4+ICAgCj4gPj4gICAjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KPiA+PiArI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+ID4g V2h5Pwo+IFNvcnJ5LCBsZWZ0b3Zlci4gVGhpcyB3YXMgcmVxdWlyZWQgaW4gcHJldmlvdXMgcGF0 Y2ggc2V0IHRvIGdldCB0aGUgCj4gRERDX0FERFIgbWFjcm8gd2hlbiB3ZSBoYWQgc2VwYXJhdGUg RURJRCByZWFkIGZ1bmN0aW9uIGZvciBMU1BDT04uCj4gV2lsbCByZW1vdmUgdGhpcy4KPiA+PiAg IAo+ID4+ICAgLyoKPiA+PiAgICAqIE9wdGlvbmFsIGZvciB0eXBlIDEgRFZJIGFkYXB0b3JzCj4g Pj4gQEAgLTQwLDYgKzQxLDcgQEAKPiA+PiAgICNkZWZpbmUgIERQX0RVQUxfTU9ERV9SRVZfVFlQ RTIgMHgwMAo+ID4+ICAgI2RlZmluZSAgRFBfRFVBTF9NT0RFX1RZUEVfTUFTSyAweGYwCj4gPj4g ICAjZGVmaW5lICBEUF9EVUFMX01PREVfVFlQRV9UWVBFMiAweGEwCj4gPj4gKyNkZWZpbmUgIERQ X0RVQUxfTU9ERV9UWVBFX0hBU19EUENEIDB4MDgKPiA+IE1heWJlIGFkZCBhIGNvbW1lbnQgdGhh dCB0aGlzIGNhbWUgZnJvbSBMU1BDT04sIGFuZCBpdCdzIG1hcmtlZAo+ID4gcmVzZXJ2ZWQgaW4g dGhlIG9mZmljaWFsIGR1YWwgbW9kZSBzcGVjLgo+IE9rLCBnb3QgaXQuCj4gPj4gICAjZGVmaW5l IERQX0RVQUxfTU9ERV9JRUVFX09VSSAweDExIC8qIDExLTEzKi8KPiA+PiAgICNkZWZpbmUgIERQ X0RVQUxfSUVFRV9PVUlfTEVOIDMKPiA+PiAgICNkZWZpbmUgRFBfRFVBTF9ERVZJQ0VfSUQgMHgx NCAvKiAxNC0xOSAqLwo+ID4+IEBAIC01NSw2ICs1NywxMSBAQAo+ID4+ICAgI2RlZmluZSAgRFBf RFVBTF9NT0RFX0NFQ19FTkFCTEUgMHgwMQo+ID4+ICAgI2RlZmluZSBEUF9EVUFMX01PREVfSTJD X1NQRUVEX0NUUkwgMHgyMgo+ID4+ICAgCj4gPj4gKy8qIExTUENPTiBzcGVjaWZpYyByZWdpc3Rl cnMsIGRlZmluZWQgYnkgTUNBICovCj4gPj4gKyNkZWZpbmUgRFBfRFVBTF9NT0RFX0xTUENPTl9N T0RFX0NIQU5HRQkJMHg0MAo+ID4+ICsjZGVmaW5lIERQX0RVQUxfTU9ERV9MU1BDT05fQ1VSUkVO VF9NT0RFCQkweDQxCj4gPj4gKyNkZWZpbmUgIERQX0RVQUxfTU9ERV9MU1BDT05fTU9ERV9QQ09O CQkJMHgxCj4gPj4gKwo+ID4+ICAgc3RydWN0IGkyY19hZGFwdGVyOwo+ID4+ICAgCj4gPj4gICBz c2l6ZV90IGRybV9kcF9kdWFsX21vZGVfcmVhZChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIs Cj4gPj4gQEAgLTYzLDYgKzcwLDE5IEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV93cml0ZShz dHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gPj4gICAJCQkgICAgICAgdTggb2Zmc2V0LCBj b25zdCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsKPiA+PiAgIAo+ID4+ICAgLyoqCj4gPj4g KyogZW51bSBkcm1fbHNwY29uX21vZGUKPiA+PiArKiBAbHNwY29uX21vZGVfbHM6IExldmVsIHNo aWZ0ZXIgbW9kZSBvZiBMU1BDT04KPiA+PiArKgl3aGljaCBkcml2ZXMgRFArKyB0byBIRE1JIDEu NCBjb252ZXJzaW9uLgo+ID4+ICsqIEBsc3Bjb25fbW9kZV9wY29uOiBQcm90b2NvbCBjb252ZXJ0 ZXIgbW9kZSBvZiBMU1BDT04KPiA+PiArKgl3aGljaCBkcml2ZXMgRFArKyB0byBIRE1JIDIuMCBh Y3RpdmUgY29udmVyc2lvbi4KPiA+IFRoZXNlIGRvbid0IG1hdGNoIHRoZSBlbnVtIGJlbG93Lgo+ IE9rLCB3aWxsIGZpeCBpdC4KPiA+PiArKi8KPiA+PiArZW51bSBkcm1fbHNwY29uX21vZGUgewo+ ID4+ICsJRFJNX0xTUENPTl9NT0RFX0lOVkFMSUQsCj4gPiBEaWQgd2Ugc3RpbGwgaGF2ZSBzb21l IG5lZWQgZm9yIHRoaXM/Cj4gWWVzLCBsc3Bjb24gcHJvYmUgZmFpbHVyZSBjYXNlIGlzIHVzaW5n IHRoaXMuCgpUaGF0J3MgYWxyZWFkeSBzaWduYWxsZWQgdmlhIHRoZSByZXR1cm4gdmFsdWUsIHNv IG5vdCBzdXJlIHdoYXQgZXh0cmEKdGhpcyBnaXZlcyB1cy4KCj4gPj4gKwlEUk1fTFNQQ09OX01P REVfTFMsCj4gPj4gKwlEUk1fTFNQQ09OX01PREVfUENPTiwKPiA+PiArfTsKPiA+PiArCj4gPj4g Ky8qKgo+ID4+ICAgICogZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgLSBUeXBlIG9mIHRoZSBE UCBkdWFsIG1vZGUgYWRhcHRvcgo+ID4+ICAgICogQERSTV9EUF9EVUFMX01PREVfTk9ORTogTm8g RFAgZHVhbCBtb2RlIGFkYXB0b3IKPiA+PiAgICAqIEBEUk1fRFBfRFVBTF9NT0RFX1VOS05PV046 IENvdWxkIGJlIGVpdGhlciBub25lIG9yIHR5cGUgMSBEVkkgYWRhcHRvcgo+ID4+IEBAIC03MCw2 ICs5MCw3IEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0 ZXIgKmFkYXB0ZXIsCj4gPj4gICAgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMV9IRE1JOiBUeXBl IDEgSERNSSBhZGFwdG9yCj4gPj4gICAgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9EVkk6IFR5 cGUgMiBEVkkgYWRhcHRvcgo+ID4+ICAgICogQERSTV9EUF9EVUFMX01PREVfVFlQRTJfSERNSTog VHlwZSAyIEhETUkgYWRhcHRvcgo+ID4+ICsgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9MU1BD T046IExldmVsIHNoaWZ0ZXIgL3Byb3RvY29sIGNvbnZlcnRlcgo+ID4+ICAgICovCj4gPj4gICBl bnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB7Cj4gPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9OT05F LAo+ID4+IEBAIC03OCw2ICs5OSw3IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHsKPiA+ PiAgIAlEUk1fRFBfRFVBTF9NT0RFX1RZUEUxX0hETUksCj4gPj4gICAJRFJNX0RQX0RVQUxfTU9E RV9UWVBFMl9EVkksCj4gPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JLAo+ID4+ICsJ RFJNX0RQX0RVQUxfTU9ERV9MU1BDT04sCj4gPj4gICB9Owo+ID4+ICAgCj4gPj4gICBlbnVtIGRy bV9kcF9kdWFsX21vZGVfdHlwZSBkcm1fZHBfZHVhbF9tb2RlX2RldGVjdChzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIpOwo+ID4+IEBAIC04OSw0ICsxMTEsOCBAQCBpbnQgZHJtX2RwX2R1YWxf bW9kZV9zZXRfdG1kc19vdXRwdXQoZW51bSBkcm1fZHBfZHVhbF9tb2RlX3R5cGUgdHlwZSwKPiA+ PiAgIAkJCQkgICAgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGUpOwo+ ID4+ICAgY29uc3QgY2hhciAqZHJtX2RwX2dldF9kdWFsX21vZGVfdHlwZV9uYW1lKGVudW0gZHJt X2RwX2R1YWxfbW9kZV90eXBlIHR5cGUpOwo+ID4+ICAgCj4gPj4gK2ludCBkcm1fbHNwY29uX2dl dF9tb2RlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwKPiA+PiArCWVudW0gZHJtX2xzcGNv bl9tb2RlICpjdXJyZW50X21vZGUpOwo+ID4+ICtpbnQgZHJtX2xzcGNvbl9zZXRfbW9kZShzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gPj4gKwkJZW51bSBkcm1fbHNwY29uX21vZGUgcmVx ZF9tb2RlKTsKPiA+IG1vcmUgaW5kZW50IGZhaWxzLgo+IFNhbWUgcXVlcnkgYXMgcHJldmlvdXMK PiAKPiBSZWdhcmRzCj4gU2hhc2hhbmsKPiA+PiAgICNlbmRpZgo+ID4+IC0tIAo+ID4+IDEuOS4x CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK