From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 7/7] drm/i915/dp: Enable Upfront link training for typeC DP support on BXT Date: Mon, 11 Jan 2016 17:15:36 +0200 Message-ID: <1452525336.2737.38.camel@gmail.com> References: <1449826768-19415-1-git-send-email-durgadoss.r@intel.com> <1449826768-19415-8-git-send-email-durgadoss.r@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-f195.google.com (mail-pf0-f195.google.com [209.85.192.195]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DAD56E399 for ; Mon, 11 Jan 2016 07:15:44 -0800 (PST) Received: by mail-pf0-f195.google.com with SMTP id 65so3710321pff.2 for ; Mon, 11 Jan 2016 07:15:44 -0800 (PST) In-Reply-To: <1449826768-19415-8-git-send-email-durgadoss.r@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Durgadoss R , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE1LTEyLTExIGF0IDE1OjA5ICswNTMwLCBEdXJnYWRvc3MgUiB3cm90ZToKPiBU byBzdXBwb3J0IFVTQiB0eXBlIEMgYWx0ZXJuYXRlIERQIG1vZGUsIHRoZSBkaXNwbGF5IGRyaXZl ciBuZWVkcyB0bwo+IGtub3cgdGhlIG51bWJlciBvZiBsYW5lcyByZXF1aXJlZCBieSB0aGUgRFAg cGFuZWwgYXMgd2VsbCBhcyBudW1iZXIKPiBvZiBsYW5lcyB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQg YnkgdGhlIHR5cGUtQyBjYWJsZS4gU29tZXRpbWVzLCB0aGUKPiB0eXBlLUMgY2FibGUgbWF5IGxp bWl0IHRoZSBiYW5kd2lkdGggZXZlbiBpZiBQYW5lbCBjYW4gc3VwcG9ydAo+IG1vcmUgbGFuZXMu IFRvIGFkZHJlc3MgdGhlc2Ugc2NlbmFyaW9zLCB0aGUgZGlzcGxheSBkcml2ZXIgd2lsbAo+IHN0 YXJ0IGxpbmsgdHJhaW5pbmcgd2l0aCBtYXggbGFuZXMsIGFuZCBpZiB0aGF0IGZhaWxzLCB0aGUg ZHJpdmVyCj4gZmFsbHMgYmFjayB0byB4MiBsYW5lczsgYW5kIHJlcGVhdHMgdGhpcyBwcm9jZWR1 cmUgZm9yIGFsbAo+IGJhbmR3aWR0aC9sYW5lIGNvbmZpZ3VyYXRpb25zLgo+IAo+ICogU2luY2Ug bGluayB0cmFpbmluZyBpcyBkb25lIGJlZm9yZSBtb2Rlc2V0IG9ubHkgdGhlIHBvcnQKPiAgIChh bmQgbm90IHBpcGUvcGxhbmVzKSBhbmQgaXRzIGFzc29jaWF0ZWQgUExMcyBhcmUgZW5hYmxlZC4K PiAqIE9uIERQIGhvdHBsdWc6IERpcmVjdGx5IHN0YXJ0IGxpbmsgdHJhaW5pbmcgb24gdGhlIGNy dGMKPiAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgRFAgZW5jb2Rlci4KPiAqIE9uIENvbm5lY3RlZCBi b290IHNjZW5hcmlvczogV2hlbiBib290ZWQgd2l0aCBhbiBMRlAgYW5kIGEgRFAsCj4gICB0eXBp Y2FsbHksIEJJT1MgYnJpbmdzIHVwIERQLiBJbiB0aGVzZSBjYXNlcywgd2UgZGlzYWJsZSB0aGUK PiAgIGNydGMsIGRvIHVwZnJvbnQgbGluayB0cmFpbmluZyBhbmQgdGhlbiByZS1lbmFibGUgaXQg YmFjay4KPiAqIEFsbCBsb2NhbCBjaGFuZ2VzIG1hZGUgZm9yIHVwZnJvbnQgbGluayB0cmFpbmlu ZyBhcmUgcmVzZXQKPiAgIHRvIHRoZWlyIHByZXZpb3VzIHZhbHVlcyBvbmNlIGl0IGlzIGRvbmU7 IHNvIHRoYXQgdGhlCj4gICBzdWJzZXF1ZW50IG1vZGVzZXQgaXMgbm90IGF3YXJlIG9mIHRoZXNl IGNoYW5nZXMuCj4gCj4gU2lnbmVkLW9mZi1ieTogRHVyZ2Fkb3NzIFIgPGR1cmdhZG9zcy5yQGlu dGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA4MQo+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAyICsKPiAgMyBm aWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA2MzIwNDRhLi40M2VmYzI2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMzI3NCw2ICszMjc0LDg3IEBAIGludGVsX2RkaV9p bml0X2hkbWlfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPiAqaW50ZWxfZGln X3BvcnQpCj4gIAlyZXR1cm4gY29ubmVjdG9yOwo+ICB9Cj4gIAo+ICtib29sIGludGVsX2RkaV91 cGZyb250X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiArCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKnBsbDsKPiArCXN0cnVjdCBkcm1fY3J0YyAqZHJtX2NydGMgPSBOVUxMOwo+ ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnRtcF9jcnRjX2NvbmZpZzsKPiArCXN0cnVjdCBp bnRlbF9kcGxsX2h3X3N0YXRlIHRtcF9kcGxsX2h3X3N0YXRlOwo+ICsJdWludDhfdCBsaW5rX2J3 LCBsYW5lX2NvdW50Owo+ICsKPiArCWlmICghY3J0Yykgewo+ICsJCWRybV9jcnRjID0gaW50ZWxf Z2V0X3VudXNlZF9jcnRjKCZlbmNvZGVyLT5iYXNlKTsKPiArCQlpZiAoIWRybV9jcnRjKSB7Cj4g KwkJCURSTV9FUlJPUigiTm8gY3J0YyBmb3IgdXBmcm9udCBsaW5rIHRyYWluaW5nXG4iKTsKPiAr CQkJcmV0dXJuIGZhbHNlOwo+ICsJCX0KPiArCQllbmNvZGVyLT5iYXNlLmNydGMgPSBkcm1fY3J0 YzsKPiArCQljcnRjID0gdG9faW50ZWxfY3J0Yyhkcm1fY3J0Yyk7Cj4gKwl9Cj4gKwo+ICsJLyog SW5pdGlhbGl6ZSB3aXRoIE1heCBMaW5rIHJhdGUgJiBsYW5lIGNvdW50IHN1cHBvcnRlZCBieSBw YW5lbCAqLwo+ICsJbGlua19idyA9ICBpbnRlbF9kcC0+ZHBjZFtEUF9NQVhfTElOS19SQVRFXTsK PiArCWxhbmVfY291bnQgPSBkcm1fZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAtPmRwY2QpOwo+ ICsKPiArCS8qIFNhdmUgdGhlIGNydGMtPmNvbmZpZyAqLwo+ICsJdG1wX2NydGNfY29uZmlnID0g Y3J0Yy0+Y29uZmlnOwo+ICsJdG1wX2RwbGxfaHdfc3RhdGUgPSBjcnRjLT5jb25maWctPmRwbGxf aHdfc3RhdGU7Cj4gKwo+ICsJLyogU2VsZWN0IHRoZSBzaGFyZWQgRFBMTCB0byB1c2UgZm9yIHRo aXMgcG9ydCAqLwo+ICsJaW50ZWxfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIGRpZ19wb3J0LT5wb3J0 LCBjcnRjLT5jb25maWcpOwo+ICsJcGxsID0gaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRj KTsKPiArCWlmICghcGxsKSB7Cj4gKwkJRFJNX0VSUk9SKCJDb3VsZCBub3QgZ2V0IHNoYXJlZCBE UExMXG4iKTsKPiArCQlnb3RvIGV4aXQ7Cj4gKwl9Cj4gKwlEUk1fREVCVUdfS01TKCJVc2luZyAl cyBmb3IgcGlwZSAlY1xuIiwgcGxsLT5uYW1lLCBwaXBlX25hbWUoY3J0Ywo+IC0+cGlwZSkpOwo+ ICsKPiArCWRvIHsKPiArCQljcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPQo+IGRybV9kcF9id19j b2RlX3RvX2xpbmtfcmF0ZShsaW5rX2J3KTsKPiArCQljcnRjLT5jb25maWctPmxhbmVfY291bnQg PSBsYW5lX2NvdW50Owo+ICsJCWlmICghaW50ZWxfZGRpX3BsbF9zZWxlY3QoY3J0YywgY3J0Yy0+ Y29uZmlnLCBlbmNvZGVyLAo+IGZhbHNlKSkKPiArCQkJZ290byBleGl0Owo+ICsKPiArCQlwbGwt PmNvbmZpZy5jcnRjX21hc2sgfD0gKDEgPDwgY3J0Yy0+cGlwZSk7Cj4gKwkJcGxsLT5jb25maWcu aHdfc3RhdGUgPSBjcnRjLT5jb25maWctPmRwbGxfaHdfc3RhdGU7Cj4gKwo+ICsJCS8qIEVuYWJs ZSBQTEwgZm9sbG93ZWQgYnkgcG9ydCAqLwo+ICsJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChj cnRjKTsKPiArCQllbmNvZGVyLT5wcmVfZW5hYmxlKGVuY29kZXIpOwo+ICsKPiArCQkvKiBDaGVj ayBpZiBsaW5rIHRyYWluaW5nIHBhc3NlZDsgaWYgc28gdXBkYXRlIERQQ0QgKi8KPiArCQlpZiAo aW50ZWxfZHAtPnRyYWluX3NldF92YWxpZCkKPiArCQkJaW50ZWxfZHBfdXBkYXRlX2RwY2RfcGFy YW1zKGludGVsX2RwKTsKPiArCj4gKwkJLyogRGlzYWJsZSBwb3J0IGZvbGxvd2VkIGJ5IFBMTCBm b3IgbmV4dCByZXRyeS9jbGVhbiB1cCAqLwo+ICsJCWVuY29kZXItPnBvc3RfZGlzYWJsZShlbmNv ZGVyKTsKPiArCQlpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKGNydGMpOwo+ICsKPiArCX0gd2hp bGUgKCFpbnRlbF9kcC0+dHJhaW5fc2V0X3ZhbGlkICYmCj4gKwkJIWludGVsX2RwX2dldF9saW5r X3JldHJ5X3BhcmFtcygmbGFuZV9jb3VudCwgJmxpbmtfYncpKTsKPiArCj4gKwkvKiBSZXNldCBw bGwgc3RhdGUgYXMgYmVmb3JlICovCj4gKwlwbGwtPmNvbmZpZy5jcnRjX21hc2sgJj0gfigxIDw8 IGNydGMtPnBpcGUpOwo+ICsJcGxsLT5jb25maWcuaHdfc3RhdGUgPSB0bXBfZHBsbF9od19zdGF0 ZTsKPiArCj4gK2V4aXQ6Cj4gKwkvKiBSZXNldCBsb2NhbCBhc3NvY2lhdGlvbnMgbWFkZSAqLwo+ ICsJaWYgKGRybV9jcnRjKQo+ICsJCWVuY29kZXItPmJhc2UuY3J0YyA9IE5VTEw7Cj4gKwljcnRj LT5jb25maWcgPSB0bXBfY3J0Y19jb25maWc7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiVXBmcm9u dCBsaW5rIHRyYWluICVzOiBsYW5lczolZCBidzolZFxuIiwKPiArCWludGVsX2RwLT50cmFpbl9z ZXRfdmFsaWQgPyAiUGFzc2VkIiA6ICJGYWlsZWQiLCBsYW5lX2NvdW50LAo+IGxpbmtfYncpOwo+ ICsKPiArCXJldHVybiBpbnRlbF9kcC0+dHJhaW5fc2V0X3ZhbGlkOwo+ICt9Cj4gKwo+ICB2b2lk IGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGQ4Zjc4MzAuLjQ3YjYyNjYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNDYyMiw2ICs0NjIyLDcxIEBAIGludGVs X2RwX3Vuc2V0X2VkaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWludGVsX2RwLT5o YXNfYXVkaW8gPSBmYWxzZTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfdXBmcm9u dF9kcG1zX29mZihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25uZWN0b3IpOwo+ICsJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7 Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmNy dGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB0bXA7Cj4gKwo+ICsJaWYgKGlu dGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3RvciwgTlVMTCwgJnRtcCwgY3R4KSkgewo+ ICsJCWNydGMtPmFjcXVpcmVfY3R4ID0gY3R4Owo+ICsJCXRtcC5kcG1zX21vZGUgPSBEUk1fTU9E RV9EUE1TX09GRjsKPiArCQlpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoY29ubmVjdG9y LCAmdG1wLCBjdHgpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF91cGZy b250X2RwbXNfb24oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCXN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfbG9h ZF9kZXRlY3RfcGlwZSB0bXA7Cj4gKwo+ICsJaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY29u bmVjdG9yLCBOVUxMLCAmdG1wLCBjdHgpOwo+ICsKPiArCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3Mo Y3R4KTsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaShjdHgpOwo+ICt9CgpBcmUgdGhlc2Ug c3VwcG9zZWQgdG8gZGlzYWJsZS9lbmFibGUgdGhlIGNydGMgc28gdGhhdCB0aGUgdXBmcm9udCBs aW5rIHRyYWluaW5nCmNhbiBiZSBwZXJmb3JtZWQ/IFRoZSBsb2FkIGRldGVjdCBwaXBlIHJlYWxs eSBkb2Vzbid0IGJlbG9uZyBoZXJlLCBpdHMgb25seQpwdXJwb3NlIGlzIHRvIGRldGVjdCB3aGV0 aGVyIHRoZXJlIGlzIGFuIG91dHB1dCBjb25uZWN0ZWQgaW4gcGxhdGZvcm1zIHRoYXQKZGlkbid0 IHN1cHBvcnQgaG90cGx1Zy4gWW91IHNob3VsZCBkbyBhIG5vcm1hbCBhdG9taWMgb3BlcmF0aW9u IGluc3RlYWQuCgpBbmRlcgoKPiArCj4gK3N0YXRpYyBib29sIGludGVsX2RwX3VwZnJvbnRfbGlu a190cmFpbihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50 ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZW5j b2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBpbnRlbF9kaWdfcG9y dC0+YmFzZS5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IGNy dGMgPyB0b19pbnRlbF9jcnRjKGNydGMpIDogTlVMTDsKPiArCXN0cnVjdCBkcm1fbW9kZXNldF9h Y3F1aXJlX2N0eCBjdHgsICpvbGRfY3R4ID0gTlVMTDsKPiArCWJvb2wgcmV0ID0gdHJ1ZSwgbmVl ZF9kcG1zX29uID0gZmFsc2U7Cj4gKwo+ICsJaWYgKCFJU19CUk9YVE9OKGRldikpCj4gKwkJcmV0 dXJuIHRydWU7Cj4gKwkvKgo+ICsJICogT24gaG90cGx1ZyBjYXNlcywgd2UgY2FsbCBfdXBmcm9u dF9saW5rX3RyYWluIGRpcmVjdGx5Lgo+ICsJICogSW4gY29ubmVjdGVkIGJvb3Qgc2NlbmFyaW9z IChib290IHdpdGgge01JUEkvZURQfSArIERQKSwKPiArCSAqIEJJT1MgdHlwaWNhbGx5IGJyaW5n cyB1cCBEUC4gSGVuY2UsIHdlIGRpc2FibGUgdGhlIGNydGMKPiArCSAqIHRvIGRvIF91cGZyb250 X2xpbmtfdHJhaW5pbmcgYW5kIHRoZW4gcmUtZW5hYmxlIGl0IGJhY2suCj4gKwkgKi8KPiArCWlm IChjcnRjICYmIGNydGMtPmVuYWJsZWQgJiYgaW50ZWxfY3J0Yy0+YWN0aXZlKSB7Cj4gKwkJRFJN X0RFQlVHX0tNUygiRGlzYWJsaW5nIHBpcGUgJWNcbiIsIHBpcGVfbmFtZShpbnRlbF9jcnRjCj4g LT5waXBlKSk7Cj4gKwkJb2xkX2N0eCA9IGNydGMtPmFjcXVpcmVfY3R4Owo+ICsJCWRybV9tb2Rl c2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKPiArCQlpbnRlbF9kcF91cGZyb250X2RwbXNfb2Zm KGNvbm5lY3RvciwgJmN0eCk7Cj4gKwkJbmVlZF9kcG1zX29uID0gdHJ1ZTsKPiArCX0KPiArCj4g KwlpZiAoSEFTX0RESShkZXYpKQo+ICsJCXJldCA9IGludGVsX2RkaV91cGZyb250X2xpbmtfdHJh aW4oaW50ZWxfZHAsIGludGVsX2NydGMpOwo+ICsJCS8qIE90aGVyIHBsYXRmb3JtcyB1cGZyb250 IGxpbmsgdHJhaW4gY2FsbCBnb2VzIGhlcmUuLiovCj4gKwo+ICsJaWYgKG5lZWRfZHBtc19vbikg ewo+ICsJCWludGVsX2RwX3VwZnJvbnRfZHBtc19vbihjb25uZWN0b3IsICZjdHgpOwo+ICsJCWNy dGMtPmFjcXVpcmVfY3R4ID0gb2xkX2N0eDsKPiArCX0KPiArCXJldHVybiByZXQ7Cj4gK30KPiAr Cj4gKwo+ICBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ICBpbnRlbF9kcF9kZXRl Y3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgewo+IEBA IC00NjMxLDcgKzQ2OTYsNyBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwgYm9vbAo+IGZvcmNlKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNv bm5lY3Rvci0+ZGV2Owo+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7Cj4gIAll bnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAtCWJvb2wgcmV0 Owo+ICsJYm9vbCByZXQsIGRvX3VwZnJvbnRfbGlua190cmFpbjsKPiAgCXU4IHNpbmtfaXJxX3Zl Y3RvcjsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiBAQCAt NDcwNSw2ICs0NzcwLDE2IEBAIGludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLCBib29sCj4gZm9yY2UpCj4gIAkJCURSTV9ERUJVR19EUklWRVIoIkNQIG9yIHNp bmsgc3BlY2lmaWMgaXJxCj4gdW5oYW5kbGVkXG4iKTsKPiAgCX0KPiAgCj4gKwkvKiBEbyBub3Qg ZG8gdXBmcm9udCBsaW5rIHRyYWluLCBpZiBpdCBpcyBhIGNvbXBsaWFuY2UgcmVxdWVzdCAqLwo+ ICsJZG9fdXBmcm9udF9saW5rX3RyYWluID0KPiArCQlpbnRlbF9lbmNvZGVyLT50eXBlID09IElO VEVMX09VVFBVVF9ESVNQTEFZUE9SVCAmJgo+ICsJCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3Rf dHlwZSAhPSBEUF9URVNUX0xJTktfVFJBSU5JTkc7Cj4gKwo+ICsJaWYgKGRvX3VwZnJvbnRfbGlu a190cmFpbikgewo+ICsJCXJldCA9IGludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihjb25uZWN0 b3IpOwo+ICsJCWlmICghcmV0KQo+ICsJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nv bm5lY3RlZDsKPiArCX0KPiAgb3V0Ogo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9faTkx NShkZXYpLCBwb3dlcl9kb21haW4pOwo+ICAJcmV0dXJuIHN0YXR1czsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggNTkxMjk1NS4uM2NmYWIyMCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gQEAgLTEwMjUsNiArMTAyNSw4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2Nr X2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2Fk X2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBzdGF0ZSk7Cj4gIHVpbnQzMl90IGRk aV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICtib29sIGludGVs X2RkaV91cGZyb250X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJ CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAgCj4gIC8qIGludGVsX2Zyb250YnVmZmVyLmMg Ki8KPiAgdm9pZCBpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=