From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH 7/7] drm/i915/dp: Enable Upfront link training for typeC DP support on BXT Date: Mon, 4 Jan 2016 10:39:20 -0800 Message-ID: <20160104183920.GA3201@shiv> 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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id BFB32720BB for ; Mon, 4 Jan 2016 10:32:58 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Airlie Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBEZWMgMzAsIDIwMTUgYXQgMDk6NDg6NDNBTSArMTAwMCwgRGF2ZSBBaXJsaWUgd3Jv dGU6Cj4gT24gMTEgRGVjIDIwMTUgNzowOSBQTSwgIkR1cmdhZG9zcyBSIiA8ZHVyZ2Fkb3NzLnJA aW50ZWwuY29tPiB3cm90ZToKPiA+Cj4gPiBUbyBzdXBwb3J0IFVTQiB0eXBlIEMgYWx0ZXJuYXRl IERQIG1vZGUsIHRoZSBkaXNwbGF5IGRyaXZlciBuZWVkcyB0bwo+ID4ga25vdyB0aGUgbnVtYmVy IG9mIGxhbmVzIHJlcXVpcmVkIGJ5IHRoZSBEUCBwYW5lbCBhcyB3ZWxsIGFzIG51bWJlcgo+ID4g b2YgbGFuZXMgdGhhdCBjYW4gYmUgc3VwcG9ydGVkIGJ5IHRoZSB0eXBlLUMgY2FibGUuIFNvbWV0 aW1lcywgdGhlCj4gPiB0eXBlLUMgY2FibGUgbWF5IGxpbWl0IHRoZSBiYW5kd2lkdGggZXZlbiBp ZiBQYW5lbCBjYW4gc3VwcG9ydAo+ID4gbW9yZSBsYW5lcy4gVG8gYWRkcmVzcyB0aGVzZSBzY2Vu YXJpb3MsIHRoZSBkaXNwbGF5IGRyaXZlciB3aWxsCj4gPiBzdGFydCBsaW5rIHRyYWluaW5nIHdp dGggbWF4IGxhbmVzLCBhbmQgaWYgdGhhdCBmYWlscywgdGhlIGRyaXZlcgo+ID4gZmFsbHMgYmFj ayB0byB4MiBsYW5lczsgYW5kIHJlcGVhdHMgdGhpcyBwcm9jZWR1cmUgZm9yIGFsbAo+ID4gYmFu ZHdpZHRoL2xhbmUgY29uZmlndXJhdGlvbnMuCj4gPgo+ID4gKiBTaW5jZSBsaW5rIHRyYWluaW5n IGlzIGRvbmUgYmVmb3JlIG1vZGVzZXQgb25seSB0aGUgcG9ydAo+ID4gICAoYW5kIG5vdCBwaXBl L3BsYW5lcykgYW5kIGl0cyBhc3NvY2lhdGVkIFBMTHMgYXJlIGVuYWJsZWQuCj4gPiAqIE9uIERQ IGhvdHBsdWc6IERpcmVjdGx5IHN0YXJ0IGxpbmsgdHJhaW5pbmcgb24gdGhlIGNydGMKPiA+ICAg YXNzb2NpYXRlZCB3aXRoIHRoZSBEUCBlbmNvZGVyLgo+ID4gKiBPbiBDb25uZWN0ZWQgYm9vdCBz Y2VuYXJpb3M6IFdoZW4gYm9vdGVkIHdpdGggYW4gTEZQIGFuZCBhIERQLAo+ID4gICB0eXBpY2Fs bHksIEJJT1MgYnJpbmdzIHVwIERQLiBJbiB0aGVzZSBjYXNlcywgd2UgZGlzYWJsZSB0aGUKPiA+ ICAgY3J0YywgZG8gdXBmcm9udCBsaW5rIHRyYWluaW5nIGFuZCB0aGVuIHJlLWVuYWJsZSBpdCBi YWNrLgo+ID4gKiBBbGwgbG9jYWwgY2hhbmdlcyBtYWRlIGZvciB1cGZyb250IGxpbmsgdHJhaW5p bmcgYXJlIHJlc2V0Cj4gPiAgIHRvIHRoZWlyIHByZXZpb3VzIHZhbHVlcyBvbmNlIGl0IGlzIGRv bmU7IHNvIHRoYXQgdGhlCj4gPiAgIHN1YnNlcXVlbnQgbW9kZXNldCBpcyBub3QgYXdhcmUgb2Yg dGhlc2UgY2hhbmdlcy4KPiAKPiBUaGlzIGlzIGp1c3QgYW4gYXNpZGUgYnV0IGRvIHdlIGtub3cg aWYgb3RoZXIgT1NlcyBqdXN0IGFsd2F5cyBsaW5rIHRyYWluCj4gYXQgcGx1ZyB0aW1lLgo+IAo+ IEkgZG8gd29uZGVyIGlmIHdlIHNob3VsZCBtYWtlIGFuIE9TIGxldmVsIGRlY2lzaW9uIHRvIHJl cXVpcmUgZHJpdmVyIGRvCj4gdGhpcyBhbHdheXMuCgpCYXNlZCBvbiBjb252ZXJzYXRpb25zIEkn dmUgaGFkIHdpdGggZm9sa3MgaW4gVlBHLCBXaW5kb3dzIGFwcGVhcnMgdG8gZG8KdXBmcm9udCBs aW5rIHRyYWluaW5nIGF0IHBsdWcgdGltZS4KCkppbQoKCgo+IERhdmUuCj4gCj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogRHVyZ2Fkb3NzIFIgPGR1cmdhZG9zcy5yQGludGVsLmNvbT4KPiA+IC0tLQo+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgODEKPiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyAgfCA3Nwo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMiArCj4gPiAgMyBmaWxlcyBj aGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiA+IGluZGV4IDYzMjA0NGEuLjQzZWZjMjYgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC0zMjc0LDYgKzMyNzQsODcgQEAgaW50ZWxf ZGRpX2luaXRfaGRtaV9jb25uZWN0b3Ioc3RydWN0Cj4gaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCkKPiA+ICAgICAgICAgcmV0dXJuIGNvbm5lY3RvcjsKPiA+ICB9Cj4gPgo+ID4g K2Jvb2wgaW50ZWxfZGRpX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gKyAgICAgICBzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ ID4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5j b2RlcjsKPiA+ICsgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2Uu ZGV2Owo+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ID4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK PiA+ICsgICAgICAgc3RydWN0IGRybV9jcnRjICpkcm1fY3J0YyA9IE5VTEw7Cj4gPiArICAgICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICp0bXBfY3J0Y19jb25maWc7Cj4gPiArICAgICAgIHN0 cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIHRtcF9kcGxsX2h3X3N0YXRlOwo+ID4gKyAgICAgICB1 aW50OF90IGxpbmtfYncsIGxhbmVfY291bnQ7Cj4gPiArCj4gPiArICAgICAgIGlmICghY3J0Yykg ewo+ID4gKyAgICAgICAgICAgICAgIGRybV9jcnRjID0gaW50ZWxfZ2V0X3VudXNlZF9jcnRjKCZl bmNvZGVyLT5iYXNlKTsKPiA+ICsgICAgICAgICAgICAgICBpZiAoIWRybV9jcnRjKSB7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIk5vIGNydGMgZm9yIHVwZnJvbnQgbGlu ayB0cmFpbmluZ1xuIik7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 Cj4gPiArICAgICAgICAgICAgICAgfQo+ID4gKyAgICAgICAgICAgICAgIGVuY29kZXItPmJhc2Uu Y3J0YyA9IGRybV9jcnRjOwo+ID4gKyAgICAgICAgICAgICAgIGNydGMgPSB0b19pbnRlbF9jcnRj KGRybV9jcnRjKTsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAvKiBJbml0aWFsaXpl IHdpdGggTWF4IExpbmsgcmF0ZSAmIGxhbmUgY291bnQgc3VwcG9ydGVkIGJ5IHBhbmVsCj4gKi8K PiA+ICsgICAgICAgbGlua19idyA9ICBpbnRlbF9kcC0+ZHBjZFtEUF9NQVhfTElOS19SQVRFXTsK PiA+ICsgICAgICAgbGFuZV9jb3VudCA9IGRybV9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcC0+ ZHBjZCk7Cj4gPiArCj4gPiArICAgICAgIC8qIFNhdmUgdGhlIGNydGMtPmNvbmZpZyAqLwo+ID4g KyAgICAgICB0bXBfY3J0Y19jb25maWcgPSBjcnRjLT5jb25maWc7Cj4gPiArICAgICAgIHRtcF9k cGxsX2h3X3N0YXRlID0gY3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlOwo+ID4gKwo+ID4gKyAg ICAgICAvKiBTZWxlY3QgdGhlIHNoYXJlZCBEUExMIHRvIHVzZSBmb3IgdGhpcyBwb3J0ICovCj4g PiArICAgICAgIGludGVsX2dldF9kZGlfcGxsKGRldl9wcml2LCBkaWdfcG9ydC0+cG9ydCwgY3J0 Yy0+Y29uZmlnKTsKPiA+ICsgICAgICAgcGxsID0gaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChj cnRjKTsKPiA+ICsgICAgICAgaWYgKCFwbGwpIHsKPiA+ICsgICAgICAgICAgICAgICBEUk1fRVJS T1IoIkNvdWxkIG5vdCBnZXQgc2hhcmVkIERQTExcbiIpOwo+ID4gKyAgICAgICAgICAgICAgIGdv dG8gZXhpdDsKPiA+ICsgICAgICAgfQo+ID4gKyAgICAgICBEUk1fREVCVUdfS01TKCJVc2luZyAl cyBmb3IgcGlwZSAlY1xuIiwgcGxsLT5uYW1lLAo+IHBpcGVfbmFtZShjcnRjLT5waXBlKSk7Cj4g PiArCj4gPiArICAgICAgIGRvIHsKPiA+ICsgICAgICAgICAgICAgICBjcnRjLT5jb25maWctPnBv cnRfY2xvY2sgPQo+IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZShsaW5rX2J3KTsKPiA+ICsg ICAgICAgICAgICAgICBjcnRjLT5jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ID4g KyAgICAgICAgICAgICAgIGlmICghaW50ZWxfZGRpX3BsbF9zZWxlY3QoY3J0YywgY3J0Yy0+Y29u ZmlnLCBlbmNvZGVyLAo+IGZhbHNlKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8g ZXhpdDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICBwbGwtPmNvbmZpZy5jcnRjX21hc2sgfD0g KDEgPDwgY3J0Yy0+cGlwZSk7Cj4gPiArICAgICAgICAgICAgICAgcGxsLT5jb25maWcuaHdfc3Rh dGUgPSBjcnRjLT5jb25maWctPmRwbGxfaHdfc3RhdGU7Cj4gPiArCj4gPiArICAgICAgICAgICAg ICAgLyogRW5hYmxlIFBMTCBmb2xsb3dlZCBieSBwb3J0ICovCj4gPiArICAgICAgICAgICAgICAg aW50ZWxfZW5hYmxlX3NoYXJlZF9kcGxsKGNydGMpOwo+ID4gKyAgICAgICAgICAgICAgIGVuY29k ZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgLyogQ2hl Y2sgaWYgbGluayB0cmFpbmluZyBwYXNzZWQ7IGlmIHNvIHVwZGF0ZSBEUENEICovCj4gPiArICAg ICAgICAgICAgICAgaWYgKGludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQpCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBpbnRlbF9kcF91cGRhdGVfZHBjZF9wYXJhbXMoaW50ZWxfZHApOwo+ID4g Kwo+ID4gKyAgICAgICAgICAgICAgIC8qIERpc2FibGUgcG9ydCBmb2xsb3dlZCBieSBQTEwgZm9y IG5leHQgcmV0cnkvY2xlYW4gdXAgKi8KPiA+ICsgICAgICAgICAgICAgICBlbmNvZGVyLT5wb3N0 X2Rpc2FibGUoZW5jb2Rlcik7Cj4gPiArICAgICAgICAgICAgICAgaW50ZWxfZGlzYWJsZV9zaGFy ZWRfZHBsbChjcnRjKTsKPiA+ICsKPiA+ICsgICAgICAgfSB3aGlsZSAoIWludGVsX2RwLT50cmFp bl9zZXRfdmFsaWQgJiYKPiA+ICsgICAgICAgICAgICAgICAhaW50ZWxfZHBfZ2V0X2xpbmtfcmV0 cnlfcGFyYW1zKCZsYW5lX2NvdW50LCAmbGlua19idykpOwo+ID4gKwo+ID4gKyAgICAgICAvKiBS ZXNldCBwbGwgc3RhdGUgYXMgYmVmb3JlICovCj4gPiArICAgICAgIHBsbC0+Y29uZmlnLmNydGNf bWFzayAmPSB+KDEgPDwgY3J0Yy0+cGlwZSk7Cj4gPiArICAgICAgIHBsbC0+Y29uZmlnLmh3X3N0 YXRlID0gdG1wX2RwbGxfaHdfc3RhdGU7Cj4gPiArCj4gPiArZXhpdDoKPiA+ICsgICAgICAgLyog UmVzZXQgbG9jYWwgYXNzb2NpYXRpb25zIG1hZGUgKi8KPiA+ICsgICAgICAgaWYgKGRybV9jcnRj KQo+ID4gKyAgICAgICAgICAgICAgIGVuY29kZXItPmJhc2UuY3J0YyA9IE5VTEw7Cj4gPiArICAg ICAgIGNydGMtPmNvbmZpZyA9IHRtcF9jcnRjX2NvbmZpZzsKPiA+ICsKPiA+ICsgICAgICAgRFJN X0RFQlVHX0tNUygiVXBmcm9udCBsaW5rIHRyYWluICVzOiBsYW5lczolZCBidzolZFxuIiwKPiA+ ICsgICAgICAgaW50ZWxfZHAtPnRyYWluX3NldF92YWxpZCA/ICJQYXNzZWQiIDogIkZhaWxlZCIs IGxhbmVfY291bnQsCj4gbGlua19idyk7Cj4gPiArCj4gPiArICAgICAgIHJldHVybiBpbnRlbF9k cC0+dHJhaW5fc2V0X3ZhbGlkOwo+ID4gK30KPiA+ICsKPiA+ICB2b2lkIGludGVsX2RkaV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQo+ID4gIHsKPiA+ICAgICAg ICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBkOGY3ODMwLi40N2I2MjY2IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTQ2MjIsNiArNDYyMiw3MSBA QCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgICAg ICAgIGludGVsX2RwLT5oYXNfYXVkaW8gPSBmYWxzZTsKPiA+ICB9Cj4gPgo+ID4gK3N0YXRpYyB2 b2lkIGludGVsX2RwX3VwZnJvbnRfZHBtc19vZmYoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9tb2Rl c2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiA+ICsgICAgICAgc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsKPiA+ICsgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjID0gaW50ZWxfZGln X3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+ID4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRl Y3RfcGlwZSB0bXA7Cj4gPiArCj4gPiArICAgICAgIGlmIChpbnRlbF9nZXRfbG9hZF9kZXRlY3Rf cGlwZShjb25uZWN0b3IsIE5VTEwsICZ0bXAsIGN0eCkpIHsKPiA+ICsgICAgICAgICAgICAgICBj cnRjLT5hY3F1aXJlX2N0eCA9IGN0eDsKPiA+ICsgICAgICAgICAgICAgICB0bXAuZHBtc19tb2Rl ID0gRFJNX01PREVfRFBNU19PRkY7Cj4gPiArICAgICAgICAgICAgICAgaW50ZWxfcmVsZWFzZV9s b2FkX2RldGVjdF9waXBlKGNvbm5lY3RvciwgJnRtcCwgY3R4KTsKPiA+ICsgICAgICAgfQo+ID4g K30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF91cGZyb250X2RwbXNfb24oc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gPiArewo+ID4gKyAg ICAgICBzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB0bXA7Cj4gPiArCj4gPiArICAgICAg IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3RvciwgTlVMTCwgJnRtcCwgY3R4KTsK PiA+ICsKPiA+ICsgICAgICAgZHJtX21vZGVzZXRfZHJvcF9sb2NrcyhjdHgpOwo+ID4gKyAgICAg ICBkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoY3R4KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IGJvb2wgaW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g aW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiA+ICsgICAgICAgc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsK PiA+ICsgICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxf ZGlnX3BvcnQtPmJhc2U7Cj4gPiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRl bF9lbmNvZGVyLT5iYXNlLmRldjsKPiA+ICsgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjID0g aW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+ID4gKyAgICAgICBzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IGNydGMgPyB0b19pbnRlbF9jcnRjKGNydGMpIDogTlVMTDsKPiA+ ICsgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eCwgKm9sZF9jdHggPSBO VUxMOwo+ID4gKyAgICAgICBib29sIHJldCA9IHRydWUsIG5lZWRfZHBtc19vbiA9IGZhbHNlOwo+ ID4gKwo+ID4gKyAgICAgICBpZiAoIUlTX0JST1hUT04oZGV2KSkKPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKPiA+ICsgICAgICAgLyoKPiA+ICsgICAgICAgICogT24gaG90cGx1ZyBj YXNlcywgd2UgY2FsbCBfdXBmcm9udF9saW5rX3RyYWluIGRpcmVjdGx5Lgo+ID4gKyAgICAgICAg KiBJbiBjb25uZWN0ZWQgYm9vdCBzY2VuYXJpb3MgKGJvb3Qgd2l0aCB7TUlQSS9lRFB9ICsgRFAp LAo+ID4gKyAgICAgICAgKiBCSU9TIHR5cGljYWxseSBicmluZ3MgdXAgRFAuIEhlbmNlLCB3ZSBk aXNhYmxlIHRoZSBjcnRjCj4gPiArICAgICAgICAqIHRvIGRvIF91cGZyb250X2xpbmtfdHJhaW5p bmcgYW5kIHRoZW4gcmUtZW5hYmxlIGl0IGJhY2suCj4gPiArICAgICAgICAqLwo+ID4gKyAgICAg ICBpZiAoY3J0YyAmJiBjcnRjLT5lbmFibGVkICYmIGludGVsX2NydGMtPmFjdGl2ZSkgewo+ID4g KyAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkRpc2FibGluZyBwaXBlICVjXG4iLAo+IHBp cGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSk7Cj4gPiArICAgICAgICAgICAgICAgb2xkX2N0eCA9 IGNydGMtPmFjcXVpcmVfY3R4Owo+ID4gKyAgICAgICAgICAgICAgIGRybV9tb2Rlc2V0X2FjcXVp cmVfaW5pdCgmY3R4LCAwKTsKPiA+ICsgICAgICAgICAgICAgICBpbnRlbF9kcF91cGZyb250X2Rw bXNfb2ZmKGNvbm5lY3RvciwgJmN0eCk7Cj4gPiArICAgICAgICAgICAgICAgbmVlZF9kcG1zX29u ID0gdHJ1ZTsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBpZiAoSEFTX0RESShkZXYp KQo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IGludGVsX2RkaV91cGZyb250X2xpbmtfdHJhaW4o aW50ZWxfZHAsIGludGVsX2NydGMpOwo+ID4gKyAgICAgICAgICAgICAgIC8qIE90aGVyIHBsYXRm b3JtcyB1cGZyb250IGxpbmsgdHJhaW4gY2FsbCBnb2VzIGhlcmUuLiovCj4gPiArCj4gPiArICAg ICAgIGlmIChuZWVkX2RwbXNfb24pIHsKPiA+ICsgICAgICAgICAgICAgICBpbnRlbF9kcF91cGZy b250X2RwbXNfb24oY29ubmVjdG9yLCAmY3R4KTsKPiA+ICsgICAgICAgICAgICAgICBjcnRjLT5h Y3F1aXJlX2N0eCA9IG9sZF9jdHg7Cj4gPiArICAgICAgIH0KPiA+ICsgICAgICAgcmV0dXJuIHJl dDsKPiA+ICt9Cj4gPiArCj4gPiArCj4gPiAgc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0 dXMKPiA+ICBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Ym9vbCBmb3JjZSkKPiA+ICB7Cj4gPiBAQCAtNDYzMSw3ICs0Njk2LDcgQEAgaW50ZWxfZHBfZGV0 ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gYm9vbCBmb3JjZSkKPiA+ICAg ICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4gICAgICAg ICBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKPiA+ICAgICAgICAgZW51bSBpbnRl bF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4gPiAtICAgICAgIGJvb2wgcmV0 Owo+ID4gKyAgICAgICBib29sIHJldCwgZG9fdXBmcm9udF9saW5rX3RyYWluOwo+ID4gICAgICAg ICB1OCBzaW5rX2lycV92ZWN0b3I7Cj4gPgo+ID4gICAgICAgICBEUk1fREVCVUdfS01TKCJbQ09O TkVDVE9SOiVkOiVzXVxuIiwKPiA+IEBAIC00NzA1LDYgKzQ3NzAsMTYgQEAgaW50ZWxfZHBfZGV0 ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gYm9vbCBmb3JjZSkKPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoIkNQIG9yIHNpbmsgc3BlY2lm aWMgaXJxCj4gdW5oYW5kbGVkXG4iKTsKPiA+ICAgICAgICAgfQo+ID4KPiA+ICsgICAgICAgLyog RG8gbm90IGRvIHVwZnJvbnQgbGluayB0cmFpbiwgaWYgaXQgaXMgYSBjb21wbGlhbmNlIHJlcXVl c3QgKi8KPiA+ICsgICAgICAgZG9fdXBmcm9udF9saW5rX3RyYWluID0KPiA+ICsgICAgICAgICAg ICAgICBpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCAmJgo+ ID4gKyAgICAgICAgICAgICAgIGludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfdHlwZSAhPSBEUF9U RVNUX0xJTktfVFJBSU5JTkc7Cj4gPiArCj4gPiArICAgICAgIGlmIChkb191cGZyb250X2xpbmtf dHJhaW4pIHsKPiA+ICsgICAgICAgICAgICAgICByZXQgPSBpbnRlbF9kcF91cGZyb250X2xpbmtf dHJhaW4oY29ubmVjdG9yKTsKPiA+ICsgICAgICAgICAgICAgICBpZiAoIXJldCkKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVk Owo+ID4gKyAgICAgICB9Cj4gPiAgb3V0Ogo+ID4gICAgICAgICBpbnRlbF9kaXNwbGF5X3Bvd2Vy X3B1dCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gPiAgICAgICAgIHJldHVybiBzdGF0 dXM7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA1OTEyOTU1Li4zY2Zh YjIwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTAyNSw2ICsx MDI1LDggQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4g KmVuY29kZXIsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKTsKPiA+ICB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9h bGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgc3RhdGUpOwo+ID4gIHVpbnQzMl90IGRk aV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gK2Jvb2wgaW50 ZWxfZGRpX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7 Cj4gPgo+ID4gIC8qIGludGVsX2Zyb250YnVmZmVyLmMgKi8KPiA+ICB2b2lkIGludGVsX2ZiX29i al9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAtLQo+ID4g MS45LjEKPiA+Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAoKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK