From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH v2 14/14] drm/i915/dp/mst: Add support for upfront link training for DP MST Date: Wed, 7 Sep 2016 09:40:22 -0700 Message-ID: <20160907164022.GA29025@shiv> References: <1472767699-31211-15-git-send-email-manasi.d.navare@intel.com> <1473207238-3490-5-git-send-email-manasi.d.navare@intel.com> <1473245611.28727.25.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id CDBD06E1DC for ; Wed, 7 Sep 2016 16:41:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1473245611.28727.25.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kahola Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMDcsIDIwMTYgYXQgMDE6NTM6MzFQTSArMDMwMCwgTWlrYSBLYWhvbGEgd3Jv dGU6Cj4gT24gVHVlLCAyMDE2LTA5LTA2IGF0IDE3OjEzIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdy b3RlOgo+ID4gRnJvbTogSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50ZWwuY29tPgo+ID4g Cj4gPiBBZGQgdXBmcm9udCBsaW5rIHRyYWluaW5nIHRvIGludGVsX2RwX21zdF9tb2RlX3ZhbGlk KCkgc28gdGhhdCB3ZQo+ID4ga25vdwo+ID4gdG9wb2xvZ3kgY29uc3RyYWludHMgYmVmb3JlIHdl IHZhbGlkYXRlIHRoZSBsZWdhbGl0eSBvZiBtb2RlcyB0byBiZQo+ID4gY2hlY2tlZC4KPiA+IENh bGwgdGhlIGZ1bmN0aW9uIHRoYXQgbG9vcHMgdGhyb3VnaCB0aGUgbGluayByYXRlcyBhbmQgbGFu ZSBjb3VudHMKPiA+IHN0YXJ0aW5nIGZyb20gaGlnaGVzdCBzdXBwb3J0ZWQgbGluayByYXRlIGFu ZCBsYW5lIGNvdW50IGZvciB0cmFpbmluZwo+ID4gdGhlIGxpbmsgaW4gY29tcGxpYW5jZSB3aXRo IERQIHNwZWMKPiA+IAo+ID4gdjI6Cj4gPiAqIFJlYmFzZWQgb24gbmV3IHJldmlzaW9uIG9mIGxp bmsgdHJhaW5pbmcgcGF0Y2ggKE1hbmFzaSBOYXZhcmUpCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6 IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2Zm LWJ5OiBKaW0gQnJpZGUgPGppbS5icmlkZUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuY8KgwqDCoMKgwqB8wqDCoDkgKystLS0KPiA+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgfCA3NAo+ID4gKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaMKgwqDCoMKgfMKgwqAzICsrCj4gPiDCoDMgZmlsZXMgY2hhbmdlZCwgNjEgaW5z ZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiA+IGluZGV4IDc3OTQxODAuLjBjNzY3NGYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gPiBAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyB2b2lkIHZsdl9zdGVhbF9w b3dlcl9zZXF1ZW5jZXIoc3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYsCj4gPiDCoAkJCQnCoMKg wqDCoMKgwqBlbnVtIHBpcGUgcGlwZSk7Cj4gPiDCoHN0YXRpYyB2b2lkIGludGVsX2RwX3Vuc2V0 X2VkaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiDCoAo+ID4gLXN0YXRpYyBpbnQK PiA+ICtpbnQKPiA+IMKgaW50ZWxfZHBfbWF4X2xpbmtfYncoc3RydWN0IGludGVsX2RwwqDCoCpp bnRlbF9kcCkKPiA+IMKgewo+ID4gwqAJaW50IG1heF9saW5rX2J3ID0gaW50ZWxfZHAtPmRwY2Rb RFBfTUFYX0xJTktfUkFURV07Cj4gPiBAQCAtMTUwLDcgKzE1MCw3IEBAIGludGVsX2RwX21heF9s aW5rX2J3KHN0cnVjdCBpbnRlbF9kcMKgwqAqaW50ZWxfZHApCj4gPiDCoAlyZXR1cm4gbWF4X2xp bmtfYnc7Cj4gPiDCoH0KPiA+IMKgCj4gPiAtc3RhdGljIHU4IGludGVsX2RwX21heF9sYW5lX2Nv dW50KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiArdTggaW50ZWxfZHBfbWF4X2xhbmVf Y291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+IMKgewo+ID4gwqAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4gZHBfdG9fZGlnX3BvcnQoaW50 ZWxfZHApOwo+ID4gwqAJdTggdGVtcCwgc291cmNlX21heCwgc2lua19tYXg7Cj4gPiBAQCAtMzEy LDggKzMxMiw3IEBAIHN0YXRpYyBpbnQgaW50ZXJzZWN0X3JhdGVzKGNvbnN0IGludAo+ID4gKnNv dXJjZV9yYXRlcywgaW50IHNvdXJjZV9sZW4sCj4gPiDCoAlyZXR1cm4gazsKPiA+IMKgfQo+ID4g wqAKPiA+IC1zdGF0aWMgaW50IGludGVsX2RwX2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAo+ID4gLQkJCQnCoGludCAqY29tbW9uX3JhdGVzKQo+ID4gK2ludCBpbnRlbF9k cF9jb21tb25fcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50Cj4gPiAqY29tbW9u X3JhdGVzKQo+ID4gwqB7Cj4gPiDCoAljb25zdCBpbnQgKnNvdXJjZV9yYXRlcywgKnNpbmtfcmF0 ZXM7Cj4gPiDCoAlpbnQgc291cmNlX2xlbiwgc2lua19sZW47Cj4gPiBAQCAtMzM2LDcgKzMzNSw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tbW9uX3JhdGVzKHN0cnVjdCBpbnRlbF9kcAo+ID4g KmludGVsX2RwLAo+ID4gwqAJCQnCoMKgwqDCoMKgwqDCoGNvbW1vbl9yYXRlcyk7Cj4gPiDCoH0K PiA+IMKgCj4gPiAtc3RhdGljIGJvb2wgaW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiArYm9vbCBpbnRlbF9kcF91cGZyb250X2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+IMKgewo+ID4gwqAJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOwo+ID4gwqAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxf ZGlnX3BvcnQtPmJhc2U7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBfbXN0LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+ IGluZGV4IDU0YTlkNzYuLjk4ZDQ1YTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfbXN0LmMKPiA+IEBAIC00MSwyMSArNDEsMzAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0 X2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+IMKg CWludCBicHA7Cj4gPiDCoAlpbnQgbGFuZV9jb3VudCwgc2xvdHM7Cj4gPiDCoAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0KPiA+ID5i YXNlLmFkanVzdGVkX21vZGU7Cj4gPiAtCWludCBtc3RfcGJuOwo+ID4gKwlpbnQgbXN0X3Bibiwg Y29tbW9uX2xlbjsKPiA+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVT XSA9IHt9Owo+ID4gwqAKPiA+IMKgCXBpcGVfY29uZmlnLT5kcF9lbmNvZGVyX2lzX21zdCA9IHRy dWU7Cj4gPiDCoAlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gZmFsc2U7Cj4gPiAtCWJw cCA9IDI0Owo+ID4gKwo+ID4gwqAJLyoKPiA+IC0JwqAqIGZvciBNU1Qgd2UgYWx3YXlzIGNvbmZp Z3VyZSBtYXggbGluayBidyAtIHRoZSBzcGVjCj4gPiBkb2Vzbid0Cj4gPiAtCcKgKiBzZWVtIHRv IHN1Z2dlc3Qgd2Ugc2hvdWxkIGRvIG90aGVyd2lzZS4KPiA+ICsJwqAqIEZvciBNU1Qgd2UgYWx3 YXlzIGNvbmZpZ3VyZSBmb3IgdGhlIG1heGltdW0gdHJhaW5hYmxlCj4gPiBsaW5rIGJ3IC0KPiA+ ICsJwqAqIHRoZSBzcGVjIGRvZXNuJ3Qgc2VlbSB0byBzdWdnZXN0IHdlIHNob3VsZCBkbwo+ID4g b3RoZXJ3aXNlLsKgwqBUaGUKPiA+ICsJwqAqIGNhbGxzIHRvIGludGVsX2RwX21heF9sYW5lX2Nv dW50KCkgYW5kCj4gPiBpbnRlbF9kcF9jb21tb25fcmF0ZXMoKQo+ID4gKwnCoCogYm90aCB0YWtl IHN1Y2Nlc3NmdWwgdXBmcm9udCBsaW5rIHRyYWluaW5nIGludG8gYWNjb3VudCwKPiA+IGFuZAo+ ID4gKwnCoCogcmV0dXJuIHRoZSBEaXNwbGF5UG9ydCBtYXggc3VwcG9ydGVkIHZhbHVlcyBpbiB0 aGUgZXZlbnQKPiA+IHRoYXQKPiA+ICsJwqAqIHVwZnJvbnQgbGluayB0cmFpbmluZyB3YXMgbm90 IGRvbmUuCj4gPiDCoAnCoCovCj4gPiAtCWxhbmVfY291bnQgPSBkcm1fZHBfbWF4X2xhbmVfY291 bnQoaW50ZWxfZHAtPmRwY2QpOwo+ID4gKwlsYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4X2xhbmVf Y291bnQoaW50ZWxfZHApOwo+ID4gwqAKPiA+IMKgCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0g bGFuZV9jb3VudDsKPiA+IMKgCj4gPiAtCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IDI0Owo+ID4g LQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGludGVsX2RwX21heF9saW5rX3JhdGUoaW50ZWxf ZHApOwo+ID4gKwlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBicHAgPSAyNDsKPiA+ICsJY29tbW9u X2xlbiA9IGludGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKPiA+ ICsJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBjb21tb25fcmF0ZXNbY29tbW9uX2xlbiAtIDFd Owo+ID4gKwo+ID4gKwlEUk1fREVCVUdfS01TKCJEUCBNU1QgbGluayBjb25maWd1cmVkIGZvciAl ZCBsYW5lcyBAICVkLlxuIiwKPiA+ICsJCcKgwqDCoMKgwqDCoHBpcGVfY29uZmlnLT5sYW5lX2Nv dW50LCBwaXBlX2NvbmZpZy0KPiA+ID5wb3J0X2Nsb2NrKTsKPiA+IMKgCj4gPiDCoAlzdGF0ZSA9 IHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlOwo+ID4gwqAKPiA+IEBAIC0xMzcsNiArMTQ2LDggQEAg c3RhdGljIHZvaWQgaW50ZWxfbXN0X3ByZV9lbmFibGVfZHAoc3RydWN0Cj4gPiBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gwqAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9y dDsKPiA+IMKgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Cj4gPiDCoAkJdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gPiArCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqcGxsID0gcGlwZV9jb25maWctPnNoYXJlZF9kcGxsOwo+ID4gKwlzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ID4gwqAJaW50IHJl dDsKPiA+IMKgCXVpbnQzMl90IHRlbXA7Cj4gPiDCoAlpbnQgc2xvdHM7Cj4gPiBAQCAtMTUwLDIx ICsxNjEsMjMgQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X3ByZV9lbmFibGVfZHAoc3RydWN0Cj4g PiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gwqAJRFJNX0RFQlVHX0tNUygiJWRcbiIsIGlu dGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+IMKgCj4gPiDCoAlpZiAoaW50ZWxfZHAtPmFj dGl2ZV9tc3RfbGlua3MgPT0gMCkgewo+ID4gLQkJaW50ZWxfZGRpX2Nsa19zZWxlY3QoJmludGVs X2RpZ19wb3J0LT5iYXNlLAo+ID4gLQkJCQnCoMKgwqDCoMKgcGlwZV9jb25maWctPnNoYXJlZF9k cGxsKTsKPiA+IC0KPiA+IC0JCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoJmludGVsX2Rp Z19wb3J0LT5iYXNlKTsKPiA+IC0JCWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9kcCwK PiA+IC0JCQkJCcKgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiAtCQkJCQnCoHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50LAo+ID4gLQkJCQkJwqB0cnVlKTsKPiA+IC0KPiA+IC0JCWludGVsX2Rk aV9pbml0X2RwX2J1Zl9yZWcoJmludGVsX2RpZ19wb3J0LT5iYXNlKTsKPiA+IMKgCj4gPiAtCQlp bnRlbF9kcF9zaW5rX2RwbXMoaW50ZWxfZHAsIERSTV9NT0RFX0RQTVNfT04pOwo+ID4gKwkJLyog RGlzYWJsZSB0aGUgUExMIHNpbmNlIHdlIG5lZWQgdG8gYWNxdWlyZSB0aGUgUExMCj4gPiArCQnC oCogYmFzZWQgb24gdGhlIGxpbmsgcmF0ZSBpbiB0aGUgbGluayB0cmFpbmluZwo+ID4gc2VxdWVu Y2UKPiA+ICsJCcKgKi8KPiA+ICsJCXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gPiAr CQlwbGwtPmZ1bmNzLmRpc2FibGUoZGV2X3ByaXYsIHBsbCk7Cj4gPiArCQlwbGwtPmNvbmZpZy5j cnRjX21hc2sgPSAwOwo+ID4gKwo+ID4gKwkJLyogSWYgTGluayBUcmFpbmluZyBmYWlscywgc2Vu ZCBhIHVldmVudCB0byBnZW5lcmF0ZQo+ID4gYQo+ID4gKwkJwqAqaG90cGx1Zwo+ID4gKwkJwqAq Lwo+ID4gKwkJaWYgKCEoaW50ZWxfZGRpX2xpbmtfdHJhaW4oaW50ZWxfZHAsIHBpcGVfY29uZmln LQo+ID4gPnBvcnRfY2xvY2ssCj4gPiArCQkJCQnCoMKgwqBwaXBlX2NvbmZpZy0+bGFuZV9jb3Vu dCwKPiA+IHRydWUsCj4gPiArCQkJCQnCoMKgwqBmYWxzZSkpKQo+ID4gKwkJCWRybV9rbXNfaGVs cGVyX2hvdHBsdWdfZXZlbnQoZW5jb2Rlci0KPiA+ID5iYXNlLmRldik7Cj4gPiArCQlwbGwtPmNv bmZpZyA9IHRtcF9wbGxfY29uZmlnOwo+ID4gwqAKPiA+IC0JCWludGVsX2RwX3N0YXJ0X2xpbmtf dHJhaW4oaW50ZWxfZHApOwo+ID4gLQkJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2Rw KTsKPiA+IMKgCX0KPiA+IMKgCj4gPiDCoAlyZXQgPSBkcm1fZHBfbXN0X2FsbG9jYXRlX3ZjcGko JmludGVsX2RwLT5tc3RfbWdyLAo+ID4gQEAgLTMzNiw2ICszNDksMjcgQEAgaW50ZWxfZHBfbXN0 X21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IKPiA+ICpjb25uZWN0b3IsCj4gPiDCoAkJ CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ID4gwqB7Cj4gPiDCoAlpbnQgbWF4X2Rv dGNsayA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpLT5tYXhfZG90Y2xrX2ZyZXE7Cj4gPiArCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9Cj4gPiB0b19pbnRlbF9jb25u ZWN0b3IoY29ubmVjdG9yKTsKPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVs X2Nvbm5lY3Rvci0+bXN0X3BvcnQ7Cj4gPiArCj4gPiArCWlmIChpbnRlbF9kcC0+dXBmcm9udF9s aW5rX3RyYWluICYmICFpbnRlbF9kcC0+dXBmcm9udF9kb25lKSAKPiA+IHsKPiA+ICsJCWJvb2wg ZG9fdXBmcm9udF9saW5rX3RyYWluOwo+ID4gKwo+ID4gKwkJZG9fdXBmcm9udF9saW5rX3RyYWlu ID0gaW50ZWxfZHAtCj4gPiA+Y29tcGxpYW5jZV90ZXN0X3R5cGUgIT0KPiA+ICsJCQlEUF9URVNU X0xJTktfVFJBSU5JTkc7Cj4gPiArCQlpZiAoZG9fdXBmcm9udF9saW5rX3RyYWluKSB7Cj4gPiAr CQkJaW50ZWxfZHAtPnVwZnJvbnRfZG9uZSA9Cj4gPiArCQkJCWludGVsX2RwX3VwZnJvbnRfbGlu a190cmFpbihpbnRlbF9kcAo+ID4gKTsKPiA+ICsJCQlpZiAoaW50ZWxfZHAtPnVwZnJvbnRfZG9u ZSkgewo+ID4gKwkJCQlEUk1fREVCVUdfS01TKCJNU1QgdXBmcm9udCB0cmFpbmVkCj4gPiBhdCAi Cj4gPiArCQkJCQnCoMKgwqDCoMKgwqAiJWQgbGFuZXMgQCAlZC4iLAo+ID4gKwkJCQkJwqDCoMKg wqDCoMKgaW50ZWxfZHAtCj4gPiA+bWF4X2xhbmVzX3VwZnJvbnQsCj4gPiArCQkJCQnCoMKgwqDC oMKgwqBpbnRlbF9kcC0KPiA+ID5tYXhfbGlua19yYXRlX3VwZnJvbnQpOwo+ID4gKwkJCX0gZWxz ZQo+ID4gKwkJCQlEUk1fREVCVUdfS01TKCJNU1QgdXBmcm9udCBsaW5rCj4gPiB0cmFpbmluZyAi Cj4gPiArCQkJCQnCoMKgwqDCoMKgwqAiZmFpbGVkLiIpOwo+IExpbmsgdHJhaW5pbmcgaGFzIGZh aWxlZCBhbmQgd2UgaGF2ZSBhIGJsYW5rIHNjcmVlbi4gU2hvdWxkIHdlIHRocm93IGFuCj4gZXJy b3IgaGVyZT8gTWF5YmUKPiAKPiAJcmV0dXJuIE1PREVfRVJST1I7CgpUaGlzIGlzIG9ubHkgZm9y IHVwZnJvbnQgbGluayB0cmFpbmluZywgd2hpY2ggaXMgaGVscGZ1bCBidXQgbm90IGFic29sdXRl bHkKcmVxdWlyZWQuICBJZiB0aGlzIHdlcmUgYSBsaW5rIHRyYWluaW5nIGFzc29jaWF0ZWQgd2l0 aCBhIG1vZGUgc2V0IEknZAphZ3JlZS4gIEFzIGl0IGlzLCBJIHRoaW5rIGEgZGVidWcgbWVzc2Fn ZSBpcyBmaW5lIGZvciB0aGlzIGNhc2UuCgpKaW0KCgo+IAo+ID4gKwkJfQo+ID4gKwl9Cj4gPiDC oAo+ID4gwqAJLyogVE9ETyAtIHZhbGlkYXRlIG1vZGUgYWdhaW5zdCBhdmFpbGFibGUgUEJOIGZv ciBsaW5rICovCj4gPiDCoAlpZiAobW9kZS0+Y2xvY2sgPCAxMDAwMCkKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggYTJiYmY2OC4uMzRhZjNlOCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE0MTYsNiArMTQxNiw3IEBAIHZvaWQgaW50 ZWxfZWRwX3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxfZHAKPiA+ICppbnRlbF9kcCk7Cj4gPiDCoHZv aWQgaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3Ry dWN0Cj4gPiBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ID4gwqB2b2lkIGludGVsX2RwX21z dF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gwqB2b2lkIGludGVsX2RwX21z dF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiArdTggaW50ZWxfZHBfbWF4X2xh bmVfY291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiDCoGludCBpbnRlbF9kcF9t YXhfbGlua19yYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gwqBpbnQgaW50ZWxf ZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+ID4gKmNv bW1vbl9yYXRlcywKPiA+IMKgCQkJwqDCoMKgwqDCoGludCBsaW5rX3JhdGUpOwo+ID4gQEAgLTE0 NDgsNiArMTQ0OSw4IEBAIGludGVsX2RwX3ByZV9lbXBoYXNpc19tYXgoc3RydWN0IGludGVsX2Rw Cj4gPiAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFnZV9zd2luZyk7Cj4gPiDCoHZvaWQgaW50ZWxf ZHBfY29tcHV0ZV9yYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+ID4gcG9ydF9j bG9jaywKPiA+IMKgCQkJwqDCoMKgdWludDhfdCAqbGlua19idywgdWludDhfdCAqcmF0ZV9zZWxl Y3QpOwo+ID4gwqBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19oYnIyKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApOwo+ID4gK2ludCBpbnRlbF9kcF9jb21tb25fcmF0ZXMoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwgaW50Cj4gPiAqY29tbW9uX3JhdGVzKTsKPiA+ICtib29sIGludGVs X2RwX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+IMKg Ym9vbAo+ID4gwqBpbnRlbF9kcF9nZXRfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwgdWludDhfdAo+ID4gbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV0pOwo+ID4g wqAKPiAtLSAKPiBNaWthIEthaG9sYSAtIEludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK