From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH v3 5/5] drm/i915/dp/mst: Add support for upfront link training for DP MST Date: Mon, 19 Sep 2016 10:03:29 -0700 Message-ID: <20160919170329.GA2172@shiv> References: <1473815299-26961-1-git-send-email-manasi.d.navare@intel.com> <1473815299-26961-6-git-send-email-manasi.d.navare@intel.com> <1473962616.32398.5.camel@dk-H97M-D3H> <20160915192551.GB15527@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 ESMTPS id 797CE6E52C for ; Mon, 19 Sep 2016 17:04:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20160915192551.GB15527@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: "intel-gfx@lists.freedesktop.org" , "Pandiyan, Dhinakaran" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTUsIDIwMTYgYXQgMTI6MjU6NTFQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBUaHUsIFNlcCAxNSwgMjAxNiBhdCAxMDo0ODoxN0FNIC0wNzAwLCBQYW5kaXlh biwgRGhpbmFrYXJhbiB3cm90ZToKPiA+IE9uIFR1ZSwgMjAxNi0wOS0xMyBhdCAxODowOCAtMDcw MCwgTWFuYXNpIE5hdmFyZSB3cm90ZToKPiA+ID4gRnJvbTogSmltIEJyaWRlIDxqaW0uYnJpZGVA bGludXguaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gQWRkIHVwZnJvbnQgbGluayB0cmFpbmluZyB0 byBpbnRlbF9kcF9tc3RfbW9kZV92YWxpZCgpIHNvIHRoYXQgd2Uga25vdwo+ID4gPiB0b3BvbG9n eSBjb25zdHJhaW50cyBiZWZvcmUgd2UgdmFsaWRhdGUgdGhlIGxlZ2FsaXR5IG9mIG1vZGVzIHRv IGJlCj4gPiA+IGNoZWNrZWQuCj4gPiA+IAo+ID4gCj4gPiBUaGUgcGF0Y2ggc2VlbXMgdG8gZG8g YSBsb3QgbW9yZSB0aGluZ3MgdGhhbiBqdXN0IHdoYXQgaXMgZGVzY3JpYmVkCj4gPiBoZXJlLiBJ IGd1ZXNzLCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gc3BsaXQgdGhpcyBpbnRvIG11bHRpcGxlIHBh dGNoZXMgb3IKPiA+IGF0IGxlYXN0IHByb3ZpZGUgYWRlcXVhdGUgZGVzY3JpcHRpb24gaGVyZS4K PiA+IAo+IAo+IEkgdGhpbmsgdGhlIG9ubHkgb3RoZXIgdGhpbmcgaXRzIGRvaW5nIGlzIG1ha2lu ZyBzb21lIGZ1bmN0aW9ucwo+IG5vbiBzdGF0aWMgc28gdGhleSBjYW4gYmUgdXNlZCBmb3IgTVNU IHVwZnJvbnQgZW5hYmxpbmcuCj4gQnV0IEkgdGhpbmsgdGhhdCBjYW4gYmUgaW4gdGhlIHNhbWUg cGF0Y2ggc2luY2UgaXQgaXMgZG9uZSBpbiBvcmRlcgo+IHRvIGVuYWJsZSB1cGZyb250IGZvciBN U1QuCj4gSmltLCBhbnkgdGhvdWdodHM/CgpUaGlzIGlzIGV4YWN0bHkgdGhlIGNhc2UuCgpKaW0K Cj4gCj4gPiA+IHYzOgo+ID4gPiAqIFJlc2V0IHRoZSB1cGZyb250IHZhbHVlcyBidXQgZG9udCB1 bnNldCB0aGUgRURJRCBmb3IgTVNULiAoTWFuYXNpKQo+ID4gPiB2MjoKPiA+ID4gKiBSZWJhc2Vk IG9uIG5ldyByZXZpc2lvbiBvZiBsaW5rIHRyYWluaW5nIHBhdGNoLiAoTWFuYXNpKQo+ID4gPiAK PiA+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50 ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMg ICAgIHwgMTUgKysrKy0tLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21z dC5jIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ID4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgfCAgMyArKwo+ID4gPiAgMyBmaWxlcyBj aGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiBpbmRleCA5MDQyZDI4Li42MzU4MzBlIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gQEAgLTEzMSw3ICsxMzEsNyBAQCBz dGF0aWMgdm9pZCB2bHZfc3RlYWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gPiA+ICAJCQkJICAgICAgZW51bSBwaXBlIHBpcGUpOwo+ID4gPiAgc3RhdGljIHZvaWQg aW50ZWxfZHBfdW5zZXRfZWRpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ID4gIAo+ ID4gPiAtc3RhdGljIGludAo+ID4gPiAraW50Cj4gPiA+ICBpbnRlbF9kcF9tYXhfbGlua19idyhz dHJ1Y3QgaW50ZWxfZHAgICppbnRlbF9kcCkKPiA+ID4gIHsKPiA+ID4gIAlpbnQgbWF4X2xpbmtf YncgPSBpbnRlbF9kcC0+ZHBjZFtEUF9NQVhfTElOS19SQVRFXTsKPiA+ID4gQEAgLTE1MCw3ICsx NTAsNyBAQCBpbnRlbF9kcF9tYXhfbGlua19idyhzdHJ1Y3QgaW50ZWxfZHAgICppbnRlbF9kcCkK PiA+ID4gIAlyZXR1cm4gbWF4X2xpbmtfYnc7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRp YyB1OCBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ ID4gPiArdTggaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ID4gIAl1OCB0ZW1wLCBzb3VyY2Vf bWF4LCBzaW5rX21heDsKPiA+ID4gQEAgLTI5Niw4ICsyOTYsNyBAQCBzdGF0aWMgaW50IGludGVy c2VjdF9yYXRlcyhjb25zdCBpbnQgKnNvdXJjZV9yYXRlcywgaW50IHNvdXJjZV9sZW4sCj4gPiA+ ICAJcmV0dXJuIGs7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyBpbnQgaW50ZWxfZHBf Y29tbW9uX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+IC0JCQkJIGludCAq Y29tbW9uX3JhdGVzKQo+ID4gPiAraW50IGludGVsX2RwX2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCBpbnQgKmNvbW1vbl9yYXRlcykKPiA+ID4gIHsKPiA+ID4gIAljb25z dCBpbnQgKnNvdXJjZV9yYXRlcywgKnNpbmtfcmF0ZXM7Cj4gPiA+ICAJaW50IHNvdXJjZV9sZW4s IHNpbmtfbGVuOwo+ID4gPiBAQCAtMzIxLDcgKzMyMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBf Y29tbW9uX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJCQkgICAgICAg Y29tbW9uX3JhdGVzKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAtc3RhdGljIGJvb2wgaW50ZWxf ZHBfdXBmcm9udF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ICti b29sIGludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gPiAgCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+ID4gPiBAQCAtNDU0 NSwxMiArNDU0NCwxMiBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIG91dDoKPiA+ID4g LQlpZiAoKHN0YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkgJiYKPiA+ID4gLQkg ICAgKGludGVsX2RwLT5pc19tc3QgPT0gZmFsc2UpKSB7Cj4gPiA+IC0JCWludGVsX2RwX3Vuc2V0 X2VkaWQoaW50ZWxfZHApOwo+ID4gPiArCWlmIChzdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19j b25uZWN0ZWQpIHsKPiA+ID4gIAkJaW50ZWxfZHAtPnVwZnJvbnRfZG9uZSA9IGZhbHNlOwo+ID4g PiAgCQlpbnRlbF9kcC0+bWF4X2xhbmVzX3VwZnJvbnQgPSAwOwo+ID4gPiAgCQlpbnRlbF9kcC0+ bWF4X2xpbmtfcmF0ZV91cGZyb250ID0gMDsKPiA+ID4gKwkJaWYgKGludGVsX2RwLT5pc19tc3Qg PT0gZmFsc2UpCj4gPiA+ICsJCQlpbnRlbF9kcF91bnNldF9lZGlkKGludGVsX2RwKTsKPiA+ID4g IAl9Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dCh0b19pOTE1KGRldiks IHBvd2VyX2RvbWFpbik7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+ IGluZGV4IDU0YTlkNzYuLjk4ZDQ1YTQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX21zdC5jCj4gPiA+IEBAIC00MSwyMSArNDEsMzAgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g PiAgCWludCBicHA7Cj4gPiA+ICAJaW50IGxhbmVfY291bnQsIHNsb3RzOwo+ID4gPiAgCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7Cj4gPiA+IC0JaW50IG1zdF9wYm47Cj4gPiA+ICsJaW50IG1zdF9w Ym4sIGNvbW1vbl9sZW47Cj4gPiA+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVE X1JBVEVTXSA9IHt9Owo+ID4gPiAgCj4gPiA+ICAJcGlwZV9jb25maWctPmRwX2VuY29kZXJfaXNf bXN0ID0gdHJ1ZTsKPiA+ID4gIAlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gZmFsc2U7 Cj4gPiA+IC0JYnBwID0gMjQ7Cj4gPiA+ICsKPiA+ID4gIAkvKgo+ID4gPiAtCSAqIGZvciBNU1Qg d2UgYWx3YXlzIGNvbmZpZ3VyZSBtYXggbGluayBidyAtIHRoZSBzcGVjIGRvZXNuJ3QKPiA+ID4g LQkgKiBzZWVtIHRvIHN1Z2dlc3Qgd2Ugc2hvdWxkIGRvIG90aGVyd2lzZS4KPiA+ID4gKwkgKiBG b3IgTVNUIHdlIGFsd2F5cyBjb25maWd1cmUgZm9yIHRoZSBtYXhpbXVtIHRyYWluYWJsZSBsaW5r IGJ3IC0KPiA+ID4gKwkgKiB0aGUgc3BlYyBkb2Vzbid0IHNlZW0gdG8gc3VnZ2VzdCB3ZSBzaG91 bGQgZG8gb3RoZXJ3aXNlLiAgVGhlCj4gPiA+ICsJICogY2FsbHMgdG8gaW50ZWxfZHBfbWF4X2xh bmVfY291bnQoKSBhbmQgaW50ZWxfZHBfY29tbW9uX3JhdGVzKCkKPiA+ID4gKwkgKiBib3RoIHRh a2Ugc3VjY2Vzc2Z1bCB1cGZyb250IGxpbmsgdHJhaW5pbmcgaW50byBhY2NvdW50LCBhbmQKPiA+ ID4gKwkgKiByZXR1cm4gdGhlIERpc3BsYXlQb3J0IG1heCBzdXBwb3J0ZWQgdmFsdWVzIGluIHRo ZSBldmVudCB0aGF0Cj4gPiA+ICsJICogdXBmcm9udCBsaW5rIHRyYWluaW5nIHdhcyBub3QgZG9u ZS4KPiA+ID4gIAkgKi8KPiA+ID4gLQlsYW5lX2NvdW50ID0gZHJtX2RwX21heF9sYW5lX2NvdW50 KGludGVsX2RwLT5kcGNkKTsKPiA+ID4gKwlsYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4X2xhbmVf Y291bnQoaW50ZWxfZHApOwo+ID4gPiAgCj4gPiA+ICAJcGlwZV9jb25maWctPmxhbmVfY291bnQg PSBsYW5lX2NvdW50Owo+ID4gPiAgCj4gPiA+IC0JcGlwZV9jb25maWctPnBpcGVfYnBwID0gMjQ7 Cj4gPiA+IC0JcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBpbnRlbF9kcF9tYXhfbGlua19yYXRl KGludGVsX2RwKTsKPiA+ID4gKwlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBicHAgPSAyNDsKPiA+ ID4gKwljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25f cmF0ZXMpOwo+ID4gPiArCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gY29tbW9uX3JhdGVzW2Nv bW1vbl9sZW4gLSAxXTsKPiA+ID4gKwo+ID4gPiArCURSTV9ERUJVR19LTVMoIkRQIE1TVCBsaW5r IGNvbmZpZ3VyZWQgZm9yICVkIGxhbmVzIEAgJWQuXG4iLAo+ID4gPiArCQkgICAgICBwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2spOwo+ID4gPiAgCj4gPiA+ ICAJc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKPiA+ID4gIAo+ID4gPiBAQCAtMTM3 LDYgKzE0Niw4IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVfZW5hYmxlX2RwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGln X3BvcnQtPnBvcnQ7Cj4gPiA+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0K PiA+ID4gIAkJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gPiA+ ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBwaXBlX2NvbmZpZy0+c2hhcmVkX2Rw bGw7Cj4gPiA+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyB0bXBfcGxsX2NvbmZp ZzsKPiA+ID4gIAlpbnQgcmV0Owo+ID4gPiAgCXVpbnQzMl90IHRlbXA7Cj4gPiA+ICAJaW50IHNs b3RzOwo+ID4gPiBAQCAtMTUwLDIxICsxNjEsMjMgQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X3By ZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ICAJRFJNX0RF QlVHX0tNUygiJWRcbiIsIGludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+ID4gIAo+ID4g PiAgCWlmIChpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyA9PSAwKSB7Cj4gPiA+IC0JCWludGVs X2RkaV9jbGtfc2VsZWN0KCZpbnRlbF9kaWdfcG9ydC0+YmFzZSwKPiA+ID4gLQkJCQkgICAgIHBp cGVfY29uZmlnLT5zaGFyZWRfZHBsbCk7Cj4gPiA+IC0KPiA+ID4gLQkJaW50ZWxfcHJlcGFyZV9k cF9kZGlfYnVmZmVycygmaW50ZWxfZGlnX3BvcnQtPmJhc2UpOwo+ID4gPiAtCQlpbnRlbF9kcF9z ZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsCj4gPiA+IC0JCQkJCSBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jaywKPiA+ID4gLQkJCQkJIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiAtCQkJCQkg dHJ1ZSk7Cj4gPiA+IC0KPiA+ID4gLQkJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZygmaW50ZWxf ZGlnX3BvcnQtPmJhc2UpOwo+ID4gPiAgCj4gPiA+IC0JCWludGVsX2RwX3NpbmtfZHBtcyhpbnRl bF9kcCwgRFJNX01PREVfRFBNU19PTik7Cj4gPiA+ICsJCS8qIERpc2FibGUgdGhlIFBMTCBzaW5j ZSB3ZSBuZWVkIHRvIGFjcXVpcmUgdGhlIFBMTAo+ID4gPiArCQkgKiBiYXNlZCBvbiB0aGUgbGlu ayByYXRlIGluIHRoZSBsaW5rIHRyYWluaW5nIHNlcXVlbmNlCj4gPiA+ICsJCSAqLwo+ID4gPiAr CQl0bXBfcGxsX2NvbmZpZyA9IHBsbC0+Y29uZmlnOwo+ID4gPiArCQlwbGwtPmZ1bmNzLmRpc2Fi bGUoZGV2X3ByaXYsIHBsbCk7Cj4gPiA+ICsJCXBsbC0+Y29uZmlnLmNydGNfbWFzayA9IDA7Cj4g PiA+ICsKPiA+ID4gKwkJLyogSWYgTGluayBUcmFpbmluZyBmYWlscywgc2VuZCBhIHVldmVudCB0 byBnZW5lcmF0ZSBhCj4gPiA+ICsJCSAqaG90cGx1Zwo+ID4gPiArCQkgKi8KPiA+ID4gKwkJaWYg KCEoaW50ZWxfZGRpX2xpbmtfdHJhaW4oaW50ZWxfZHAsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LAo+ID4gPiArCQkJCQkgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgdHJ1ZSwKPiA+ID4gKwkJ CQkJICAgZmFsc2UpKSkKPiA+ID4gKwkJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ID4gPiArCQlwbGwtPmNvbmZpZyA9IHRtcF9wbGxfY29uZmlnOwo+ ID4gPiAgCj4gPiA+IC0JCWludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ID4g PiAtCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ID4gPiAgCX0KPiA+ID4g IAo+ID4gPiAgCXJldCA9IGRybV9kcF9tc3RfYWxsb2NhdGVfdmNwaSgmaW50ZWxfZHAtPm1zdF9t Z3IsCj4gPiA+IEBAIC0zMzYsNiArMzQ5LDI3IEBAIGludGVsX2RwX21zdF9tb2RlX3ZhbGlkKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ICAJCQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSkKPiA+ID4gIHsKPiA+ID4gIAlpbnQgbWF4X2RvdGNsayA9IHRvX2k5MTUo Y29ubmVjdG9yLT5kZXYpLT5tYXhfZG90Y2xrX2ZyZXE7Cj4gPiA+ICsJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7 Cj4gPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2Nvbm5lY3Rvci0+bXN0 X3BvcnQ7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoaW50ZWxfZHAtPnVwZnJvbnRfbGlua190cmFpbiAm JiAhaW50ZWxfZHAtPnVwZnJvbnRfZG9uZSkgewo+ID4gPiArCQlib29sIGRvX3VwZnJvbnRfbGlu a190cmFpbjsKPiA+ID4gKwo+ID4gPiArCQlkb191cGZyb250X2xpbmtfdHJhaW4gPSBpbnRlbF9k cC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgIT0KPiA+ID4gKwkJCURQX1RFU1RfTElOS19UUkFJTklO RzsKPiA+ID4gKwkJaWYgKGRvX3VwZnJvbnRfbGlua190cmFpbikgewo+ID4gPiArCQkJaW50ZWxf ZHAtPnVwZnJvbnRfZG9uZSA9Cj4gPiA+ICsJCQkJaW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWlu KGludGVsX2RwKTsKPiA+ID4gKwkJCWlmIChpbnRlbF9kcC0+dXBmcm9udF9kb25lKSB7Cj4gPiA+ ICsJCQkJRFJNX0RFQlVHX0tNUygiTVNUIHVwZnJvbnQgdHJhaW5lZCBhdCAiCj4gPiA+ICsJCQkJ CSAgICAgICIlZCBsYW5lcyBAICVkLiIsCj4gPiA+ICsJCQkJCSAgICAgIGludGVsX2RwLT5tYXhf bGFuZXNfdXBmcm9udCwKPiA+ID4gKwkJCQkJICAgICAgaW50ZWxfZHAtPm1heF9saW5rX3JhdGVf dXBmcm9udCk7Cj4gPiA+ICsJCQl9IGVsc2UKPiA+ID4gKwkJCQlEUk1fREVCVUdfS01TKCJNU1Qg dXBmcm9udCBsaW5rIHRyYWluaW5nICIKPiA+ID4gKwkJCQkJICAgICAgImZhaWxlZC4iKTsKPiA+ ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gIAo+ID4gPiAgCS8qIFRPRE8gLSB2YWxpZGF0ZSBtb2Rl IGFnYWluc3QgYXZhaWxhYmxlIFBCTiBmb3IgbGluayAqLwo+ID4gPiAgCWlmIChtb2RlLT5jbG9j ayA8IDEwMDAwKQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBpbmRleCBmYzJm MWJjLi5iNGJjMDAyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4g PiBAQCAtMTQxNiw2ICsxNDE2LDcgQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gPiAgdm9pZCBpbnRlbF9kcF9hZGRfcHJvcGVydGllcyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KTsKPiA+ID4gIHZvaWQgaW50ZWxfZHBfbXN0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gPiA+ICB2b2lkIGludGVsX2RwX21zdF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gPiA+ICt1OCBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKTsKPiA+ID4gIGludCBpbnRlbF9kcF9tYXhfbGlua19yYXRlKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApOwo+ID4gPiAgaW50IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBpbnQgKmNvbW1vbl9yYXRlcywKPiA+ID4gIAkJCSAgICAgaW50 IGxpbmtfcmF0ZSk7Cj4gPiA+IEBAIC0xNDQ2LDYgKzE0NDcsOCBAQCBpbnRlbF9kcF9wcmVfZW1w aGFzaXNfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFnZV9zd2lu Zyk7Cj4gPiA+ICB2b2lkIGludGVsX2RwX2NvbXB1dGVfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLCBpbnQgcG9ydF9jbG9jaywKPiA+ID4gIAkJCSAgIHVpbnQ4X3QgKmxpbmtfYncsIHVp bnQ4X3QgKnJhdGVfc2VsZWN0KTsKPiA+ID4gIGJvb2wgaW50ZWxfZHBfc291cmNlX3N1cHBvcnRz X2hicjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiA+ICtpbnQgaW50ZWxfZHBfY29t bW9uX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCAqY29tbW9uX3JhdGVzKTsK PiA+ID4gK2Jvb2wgaW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApOwo+ID4gPiAgYm9vbAo+ID4gPiAgaW50ZWxfZHBfZ2V0X2xpbmtfc3RhdHVzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFU VVNfU0laRV0pOwo+ID4gPiAgCj4gPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==