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: Tue, 29 Dec 2015 15:22:27 -0200 Message-ID: <1451409747.2799.27.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-f177.google.com (mail-pf0-f177.google.com [209.85.192.177]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD25E6E168 for ; Tue, 29 Dec 2015 09:22:33 -0800 (PST) Received: by mail-pf0-f177.google.com with SMTP id q63so93995731pfb.0 for ; Tue, 29 Dec 2015 09:22:33 -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+Y29uZmlnOwoKPiArCXRtcF9kcGxsX2h3X3N0YXRlID0gY3J0Yy0+Y29uZmlnLT5kcGxs X2h3X3N0YXRlOwo+ICsKPiArCS8qIFNlbGVjdCB0aGUgc2hhcmVkIERQTEwgdG8gdXNlIGZvciB0 aGlzIHBvcnQgKi8KPiArCWludGVsX2dldF9kZGlfcGxsKGRldl9wcml2LCBkaWdfcG9ydC0+cG9y dCwgY3J0Yy0+Y29uZmlnKQoKVGhpcyByZWFkcyB0aGUgY3VycmVudCBwcm9ncmFtbWVkIERQTEwg ZnJvbSB0aGUgaGFyZHdhcmUuIElzIHRoZXJlIGFueSByZWFzb24gd2UKY2FuJ3QgdHJ1c3QgdGhl IHZhbHVlIHRoYXQgaXMgaW4gY3J0Yy0+Y29uZmlnIGFscmVhZHk/IEkgZG9uJ3QgdGhpbmsgdGhp cyBjb2RlCndvdWxkIHJ1biBiZWZvcmUgcmVhZGluZyBvdXQgYW5kIHNhbml0aXppbmcgdGhlIGhh cmR3YXJlIHN0YXRlLgoKPiA7Cj4gKwlwbGwgPSBpbnRlbF9jcnRjX3RvX3NoYXJlZF9kcGxsKGNy dGMpOwo+ICsJaWYgKCFwbGwpIHsKPiArCQlEUk1fRVJST1IoIkNvdWxkIG5vdCBnZXQgc2hhcmVk IERQTExcbiIpOwo+ICsJCWdvdG8gZXhpdDsKPiArCX0KPiArCURSTV9ERUJVR19LTVMoIlVzaW5n ICVzIGZvciBwaXBlICVjXG4iLCBwbGwtPm5hbWUsIHBpcGVfbmFtZShjcnRjCj4gLT5waXBlKSk7 Cj4gKwo+ICsJZG8gewo+ICsJCWNydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA9Cj4gZHJtX2RwX2J3 X2NvZGVfdG9fbGlua19yYXRlKGxpbmtfYncpOwo+ICsJCWNydGMtPmNvbmZpZy0+bGFuZV9jb3Vu dCA9IGxhbmVfY291bnQ7Cj4gKwkJaWYgKCFpbnRlbF9kZGlfcGxsX3NlbGVjdChjcnRjLCBjcnRj LT5jb25maWcsIGVuY29kZXIsCj4gZmFsc2UpKQoKCj4gKwkJCWdvdG8gZXhpdDsKPiArCj4gKwkJ cGxsLT5jb25maWcuY3J0Y19tYXNrIHw9ICgxIDw8IGNydGMtPnBpcGUpOwo+ICsJCXBsbC0+Y29u ZmlnLmh3X3N0YXRlID0gY3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlOwo+ICsKPiArCQkvKiBF bmFibGUgUExMIGZvbGxvd2VkIGJ5IHBvcnQgKi8KPiArCQlpbnRlbF9lbmFibGVfc2hhcmVkX2Rw bGwoY3J0Yyk7Cj4gKwkJZW5jb2Rlci0+cHJlX2VuYWJsZShlbmNvZGVyKTsKClRoZSBwbGwgaGFu ZGxpbmcgaGVyZSBzZWVtcyBkb2RneS4gSW5zdGVhZCBvZiB1c2luZyBpbnRlbF9nZXRfc2hhcmVk X2RwbGwoKSwKdGhpcyBmaWRkbGVzIHdpdGggcGxsIGludGVybmFscyBpdHNlbGYuIEkgdGhpbmsg dGhpcyB3aWxsIHdvcmsgZm9yIGJyb3h0b24sCnNpbmNlIGl0IGRvZXNuJ3QgYWN0dWFsbHkgaGF2 ZSBzaGFyZWQgRFBMTHMgKHRoZWlyIGNob3NlbiBiYXNlZCBvbiB0aGUgZW5jb2RlcikuCkl0IG1p Z2h0IGp1c3Qgd29yayBmb3IgaGFzd2VsbCB0b28gc2luY2UgdGhlIHBsbHMgdXNlZCBieSBEUCBh cmUgbm90IHNoYXJlZC4KCkJ1dCB0byBkbyB0aGlzIGNsZWFubHkgd2UgbmVlZCB0aGUgRFBMTCBp bnRlcmZhY2UgdG8ganVzdCBnaXZlIHVzIHRoZSByaWdodCBwbGwuCgpBbmRlcgoKCj4gKwo+ICsJ CS8qIENoZWNrIGlmIGxpbmsgdHJhaW5pbmcgcGFzc2VkOyBpZiBzbyB1cGRhdGUgRFBDRCAqLwo+ ICsJCWlmIChpbnRlbF9kcC0+dHJhaW5fc2V0X3ZhbGlkKQo+ICsJCQlpbnRlbF9kcF91cGRhdGVf ZHBjZF9wYXJhbXMoaW50ZWxfZHApOwo+ICsKPiArCQkvKiBEaXNhYmxlIHBvcnQgZm9sbG93ZWQg YnkgUExMIGZvciBuZXh0IHJldHJ5L2NsZWFuIHVwICovCj4gKwkJZW5jb2Rlci0+cG9zdF9kaXNh YmxlKGVuY29kZXIpOwo+ICsJCWludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY3J0Yyk7Cj4gKwo+ ICsJfSB3aGlsZSAoIWludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQgJiYKPiArCQkhaW50ZWxfZHBf Z2V0X2xpbmtfcmV0cnlfcGFyYW1zKCZsYW5lX2NvdW50LCAmbGlua19idykpOwo+ICsKPiArCS8q IFJlc2V0IHBsbCBzdGF0ZSBhcyBiZWZvcmUgKi8KPiArCXBsbC0+Y29uZmlnLmNydGNfbWFzayAm PSB+KDEgPDwgY3J0Yy0+cGlwZSk7Cj4gKwlwbGwtPmNvbmZpZy5od19zdGF0ZSA9IHRtcF9kcGxs X2h3X3N0YXRlOwo+ICsKPiArZXhpdDoKPiArCS8qIFJlc2V0IGxvY2FsIGFzc29jaWF0aW9ucyBt YWRlICovCj4gKwlpZiAoZHJtX2NydGMpCj4gKwkJZW5jb2Rlci0+YmFzZS5jcnRjID0gTlVMTDsK PiArCWNydGMtPmNvbmZpZyA9IHRtcF9jcnRjX2NvbmZpZzsKPiArCj4gKwlEUk1fREVCVUdfS01T KCJVcGZyb250IGxpbmsgdHJhaW4gJXM6IGxhbmVzOiVkIGJ3OiVkXG4iLAo+ICsJaW50ZWxfZHAt PnRyYWluX3NldF92YWxpZCA/ICJQYXNzZWQiIDogIkZhaWxlZCIsIGxhbmVfY291bnQsCj4gbGlu a19idyk7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQ7Cj4gK30KPiAr Cj4gIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0 IHBvcnQpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggZDhmNzgzMC4uNDdi NjI2NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC00NjIyLDYgKzQ2MjIsNzEg QEAgaW50ZWxfZHBfdW5zZXRfZWRpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJaW50 ZWxfZHAtPmhhc19hdWRpbyA9IGZhbHNlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBpbnRlbF9k cF91cGZyb250X2RwbXNfb2ZmKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJ CQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiArewo+ICsJc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGlu dGVsX2RwKTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGludGVsX2RpZ19wb3J0LT5iYXNl LmJhc2UuY3J0YzsKPiArCXN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlIHRtcDsKPiArCj4g KwlpZiAoaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY29ubmVjdG9yLCBOVUxMLCAmdG1wLCBj dHgpKSB7Cj4gKwkJY3J0Yy0+YWNxdWlyZV9jdHggPSBjdHg7Cj4gKwkJdG1wLmRwbXNfbW9kZSA9 IERSTV9NT0RFX0RQTVNfT0ZGOwo+ICsJCWludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZShj b25uZWN0b3IsICZ0bXAsIGN0eCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVs X2RwX3VwZnJvbnRfZHBtc19vbihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJ CQkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gK3sKPiArCXN0cnVjdCBp bnRlbF9sb2FkX2RldGVjdF9waXBlIHRtcDsKPiArCj4gKwlpbnRlbF9nZXRfbG9hZF9kZXRlY3Rf cGlwZShjb25uZWN0b3IsIE5VTEwsICZ0bXAsIGN0eCk7Cj4gKwo+ICsJZHJtX21vZGVzZXRfZHJv cF9sb2NrcyhjdHgpOwo+ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKGN0eCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBib29sIGludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g aW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICsJc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4g KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmNydGM7Cj4g KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IGNydGMgPyB0b19pbnRlbF9jcnRjKGNy dGMpIDogTlVMTDsKPiArCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHgsICpvbGRf Y3R4ID0gTlVMTDsKPiArCWJvb2wgcmV0ID0gdHJ1ZSwgbmVlZF9kcG1zX29uID0gZmFsc2U7Cj4g Kwo+ICsJaWYgKCFJU19CUk9YVE9OKGRldikpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwkvKgo+ICsJ ICogT24gaG90cGx1ZyBjYXNlcywgd2UgY2FsbCBfdXBmcm9udF9saW5rX3RyYWluIGRpcmVjdGx5 Lgo+ICsJICogSW4gY29ubmVjdGVkIGJvb3Qgc2NlbmFyaW9zIChib290IHdpdGgge01JUEkvZURQ fSArIERQKSwKPiArCSAqIEJJT1MgdHlwaWNhbGx5IGJyaW5ncyB1cCBEUC4gSGVuY2UsIHdlIGRp c2FibGUgdGhlIGNydGMKPiArCSAqIHRvIGRvIF91cGZyb250X2xpbmtfdHJhaW5pbmcgYW5kIHRo ZW4gcmUtZW5hYmxlIGl0IGJhY2suCj4gKwkgKi8KPiArCWlmIChjcnRjICYmIGNydGMtPmVuYWJs ZWQgJiYgaW50ZWxfY3J0Yy0+YWN0aXZlKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRGlzYWJsaW5n IHBpcGUgJWNcbiIsIHBpcGVfbmFtZShpbnRlbF9jcnRjCj4gLT5waXBlKSk7Cj4gKwkJb2xkX2N0 eCA9IGNydGMtPmFjcXVpcmVfY3R4Owo+ICsJCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4 LCAwKTsKPiArCQlpbnRlbF9kcF91cGZyb250X2RwbXNfb2ZmKGNvbm5lY3RvciwgJmN0eCk7Cj4g KwkJbmVlZF9kcG1zX29uID0gdHJ1ZTsKPiArCX0KPiArCj4gKwlpZiAoSEFTX0RESShkZXYpKQo+ ICsJCXJldCA9IGludGVsX2RkaV91cGZyb250X2xpbmtfdHJhaW4oaW50ZWxfZHAsIGludGVsX2Ny dGMpOwo+ICsJCS8qIE90aGVyIHBsYXRmb3JtcyB1cGZyb250IGxpbmsgdHJhaW4gY2FsbCBnb2Vz IGhlcmUuLiovCj4gKwo+ICsJaWYgKG5lZWRfZHBtc19vbikgewo+ICsJCWludGVsX2RwX3VwZnJv bnRfZHBtc19vbihjb25uZWN0b3IsICZjdHgpOwo+ICsJCWNydGMtPmFjcXVpcmVfY3R4ID0gb2xk X2N0eDsKPiArCX0KPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gKwo+ICBzdGF0aWMgZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cwo+ICBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgewo+IEBAIC00NjMxLDcgKzQ2OTYsNyBAQCBp bnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbAo+IGZv cmNlKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ICAJZW51 bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7Cj4gIAllbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAtCWJvb2wgcmV0Owo+ICsJYm9vbCByZXQsIGRvX3Vw ZnJvbnRfbGlua190cmFpbjsKPiAgCXU4IHNpbmtfaXJxX3ZlY3RvcjsKPiAgCj4gIAlEUk1fREVC VUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiBAQCAtNDcwNSw2ICs0NzcwLDE2IEBAIGlu dGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sCj4gZm9y Y2UpCj4gIAkJCURSTV9ERUJVR19EUklWRVIoIkNQIG9yIHNpbmsgc3BlY2lmaWMgaXJxCj4gdW5o YW5kbGVkXG4iKTsKPiAgCX0KPiAgCj4gKwkvKiBEbyBub3QgZG8gdXBmcm9udCBsaW5rIHRyYWlu LCBpZiBpdCBpcyBhIGNvbXBsaWFuY2UgcmVxdWVzdCAqLwo+ICsJZG9fdXBmcm9udF9saW5rX3Ry YWluID0KPiArCQlpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9ESVNQTEFZUE9S VCAmJgo+ICsJCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfdHlwZSAhPSBEUF9URVNUX0xJTktf VFJBSU5JTkc7Cj4gKwo+ICsJaWYgKGRvX3VwZnJvbnRfbGlua190cmFpbikgewo+ICsJCXJldCA9 IGludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihjb25uZWN0b3IpOwo+ICsJCWlmICghcmV0KQo+ ICsJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiArCX0KPiAgb3V0 Ogo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9faTkxNShkZXYpLCBwb3dlcl9kb21haW4p Owo+ICAJcmV0dXJuIHN0YXR1czsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXgg NTkxMjk1NS4uM2NmYWIyMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEw MjUsNiArMTAyNSw4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp Zyk7Cj4gIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywgYm9vbCBzdGF0ZSk7Cj4gIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICtib29sIGludGVsX2RkaV91cGZyb250X2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKTsKPiAgCj4gIC8qIGludGVsX2Zyb250YnVmZmVyLmMgKi8KPiAgdm9pZCBpbnRlbF9mYl9v YmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=