From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH v2 14/14] drm/i915/dp/mst: Add support for upfront link training for DP MST Date: Thu, 08 Sep 2016 13:21:22 +0300 Message-ID: <1473330082.28727.32.camel@intel.com> 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> <20160907164022.GA29025@shiv> Reply-To: mika.kahola@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 844186E230 for ; Thu, 8 Sep 2016 10:21:24 +0000 (UTC) In-Reply-To: <20160907164022.GA29025@shiv> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jim Bride Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE2LTA5LTA3IGF0IDA5OjQwIC0wNzAwLCBKaW0gQnJpZGUgd3JvdGU6Cj4gT24g V2VkLCBTZXAgMDcsIDIwMTYgYXQgMDE6NTM6MzFQTSArMDMwMCwgTWlrYSBLYWhvbGEgd3JvdGU6 Cj4gPiAKPiA+IE9uIFR1ZSwgMjAxNi0wOS0wNiBhdCAxNzoxMyAtMDcwMCwgTWFuYXNpIE5hdmFy ZSB3cm90ZToKPiA+ID4gCj4gPiA+IEZyb206IEppbSBCcmlkZSA8amltLmJyaWRlQGxpbnV4Lmlu dGVsLmNvbT4KPiA+ID4gCj4gPiA+IEFkZCB1cGZyb250IGxpbmsgdHJhaW5pbmcgdG8gaW50ZWxf ZHBfbXN0X21vZGVfdmFsaWQoKSBzbyB0aGF0IHdlCj4gPiA+IGtub3cKPiA+ID4gdG9wb2xvZ3kg Y29uc3RyYWludHMgYmVmb3JlIHdlIHZhbGlkYXRlIHRoZSBsZWdhbGl0eSBvZiBtb2RlcyB0bwo+ ID4gPiBiZQo+ID4gPiBjaGVja2VkLgo+ID4gPiBDYWxsIHRoZSBmdW5jdGlvbiB0aGF0IGxvb3Bz IHRocm91Z2ggdGhlIGxpbmsgcmF0ZXMgYW5kIGxhbmUKPiA+ID4gY291bnRzCj4gPiA+IHN0YXJ0 aW5nIGZyb20gaGlnaGVzdCBzdXBwb3J0ZWQgbGluayByYXRlIGFuZCBsYW5lIGNvdW50IGZvcgo+ ID4gPiB0cmFpbmluZwo+ID4gPiB0aGUgbGluayBpbiBjb21wbGlhbmNlIHdpdGggRFAgc3BlYwo+ ID4gPiAKPiA+ID4gdjI6Cj4gPiA+ICogUmViYXNlZCBvbiBuZXcgcmV2aXNpb24gb2YgbGluayB0 cmFpbmluZyBwYXRjaCAoTWFuYXNpIE5hdmFyZSkKPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6 IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+IFNpZ25lZC1v ZmYtYnk6IEppbSBCcmlkZSA8amltLmJyaWRlQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gLS0tCj4g PiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuY8KgwqDCoMKgwqB8wqDCoDkgKyst LS0KPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyB8IDc0Cj4gPiA+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiA+ID4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgfMKgwqAzICsrCj4gPiA+IMKgMyBmaWxlcyBj aGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiBpbmRleCA3Nzk0MTgwLi4wYzc2NzRmIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gQEAgLTEzMSw3ICsxMzEs NyBAQCBzdGF0aWMgdm9pZCB2bHZfc3RlYWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVjdAo+ID4gPiBk cm1fZGV2aWNlICpkZXYsCj4gPiA+IMKgCQkJCcKgwqDCoMKgwqDCoGVudW0gcGlwZSBwaXBlKTsK PiA+ID4gwqBzdGF0aWMgdm9pZCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApOwo+ID4gPiDCoAo+ID4gPiAtc3RhdGljIGludAo+ID4gPiAraW50Cj4gPiA+IMKg aW50ZWxfZHBfbWF4X2xpbmtfYncoc3RydWN0IGludGVsX2RwwqDCoCppbnRlbF9kcCkKPiA+ID4g wqB7Cj4gPiA+IMKgCWludCBtYXhfbGlua19idyA9IGludGVsX2RwLT5kcGNkW0RQX01BWF9MSU5L X1JBVEVdOwo+ID4gPiBAQCAtMTUwLDcgKzE1MCw3IEBAIGludGVsX2RwX21heF9saW5rX2J3KHN0 cnVjdAo+ID4gPiBpbnRlbF9kcMKgwqAqaW50ZWxfZHApCj4gPiA+IMKgCXJldHVybiBtYXhfbGlu a19idzsKPiA+ID4gwqB9Cj4gPiA+IMKgCj4gPiA+IC1zdGF0aWMgdTggaW50ZWxfZHBfbWF4X2xh bmVfY291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gK3U4IGludGVsX2RwX21h eF9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+IMKgewo+ID4gPiDC oAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gPiA+IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ID4gwqAJdTggdGVtcCwgc291cmNlX21heCwgc2lua19t YXg7Cj4gPiA+IEBAIC0zMTIsOCArMzEyLDcgQEAgc3RhdGljIGludCBpbnRlcnNlY3RfcmF0ZXMo Y29uc3QgaW50Cj4gPiA+ICpzb3VyY2VfcmF0ZXMsIGludCBzb3VyY2VfbGVuLAo+ID4gPiDCoAly ZXR1cm4gazsKPiA+ID4gwqB9Cj4gPiA+IMKgCj4gPiA+IC1zdGF0aWMgaW50IGludGVsX2RwX2Nv bW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiAtCQkJCcKgaW50ICpj b21tb25fcmF0ZXMpCj4gPiA+ICtpbnQgaW50ZWxfZHBfY29tbW9uX3JhdGVzKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsIGludAo+ID4gPiAqY29tbW9uX3JhdGVzKQo+ID4gPiDCoHsKPiA+ID4g wqAJY29uc3QgaW50ICpzb3VyY2VfcmF0ZXMsICpzaW5rX3JhdGVzOwo+ID4gPiDCoAlpbnQgc291 cmNlX2xlbiwgc2lua19sZW47Cj4gPiA+IEBAIC0zMzYsNyArMzM1LDcgQEAgc3RhdGljIGludCBp bnRlbF9kcF9jb21tb25fcmF0ZXMoc3RydWN0Cj4gPiA+IGludGVsX2RwCj4gPiA+ICppbnRlbF9k cCwKPiA+ID4gwqAJCQnCoMKgwqDCoMKgwqDCoGNvbW1vbl9yYXRlcyk7Cj4gPiA+IMKgfQo+ID4g PiDCoAo+ID4gPiAtc3RhdGljIGJvb2wgaW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKHN0cnVj dCBpbnRlbF9kcAo+ID4gPiAqaW50ZWxfZHApCj4gPiA+ICtib29sIGludGVsX2RwX3VwZnJvbnRf bGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiDCoHsKPiA+ID4gwqAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4gPiBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gPiA+IMKgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyID0gJmludGVsX2RpZ19wb3J0LQo+ID4gPiA+YmFzZTsKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+ID4gaW5kZXggNTRhOWQ3Ni4uOThkNDVhNCAxMDA2 NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+ID4gQEAgLTQxLDIx ICs0MSwzMCBAQCBzdGF0aWMgYm9vbAo+ID4gPiBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWco c3RydWN0Cj4gPiA+IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+IMKgCWludCBicHA7Cj4g PiA+IMKgCWludCBsYW5lX2NvdW50LCBzbG90czsKPiA+ID4gwqAJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ID4gPiAmcGlwZV9jb25maWctCj4gPiA+ID4g Cj4gPiA+ID4gYmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gPiAtCWludCBtc3RfcGJuOwo+ID4gPiAr CWludCBtc3RfcGJuLCBjb21tb25fbGVuOwo+ID4gPiArCWludCBjb21tb25fcmF0ZXNbRFBfTUFY X1NVUFBPUlRFRF9SQVRFU10gPSB7fTsKPiA+ID4gwqAKPiA+ID4gwqAJcGlwZV9jb25maWctPmRw X2VuY29kZXJfaXNfbXN0ID0gdHJ1ZTsKPiA+ID4gwqAJcGlwZV9jb25maWctPmhhc19wY2hfZW5j b2RlciA9IGZhbHNlOwo+ID4gPiAtCWJwcCA9IDI0Owo+ID4gPiArCj4gPiA+IMKgCS8qCj4gPiA+ IC0JwqAqIGZvciBNU1Qgd2UgYWx3YXlzIGNvbmZpZ3VyZSBtYXggbGluayBidyAtIHRoZSBzcGVj Cj4gPiA+IGRvZXNuJ3QKPiA+ID4gLQnCoCogc2VlbSB0byBzdWdnZXN0IHdlIHNob3VsZCBkbyBv dGhlcndpc2UuCj4gPiA+ICsJwqAqIEZvciBNU1Qgd2UgYWx3YXlzIGNvbmZpZ3VyZSBmb3IgdGhl IG1heGltdW0gdHJhaW5hYmxlCj4gPiA+IGxpbmsgYncgLQo+ID4gPiArCcKgKiB0aGUgc3BlYyBk b2Vzbid0IHNlZW0gdG8gc3VnZ2VzdCB3ZSBzaG91bGQgZG8KPiA+ID4gb3RoZXJ3aXNlLsKgwqBU aGUKPiA+ID4gKwnCoCogY2FsbHMgdG8gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoKSBhbmQKPiA+ ID4gaW50ZWxfZHBfY29tbW9uX3JhdGVzKCkKPiA+ID4gKwnCoCogYm90aCB0YWtlIHN1Y2Nlc3Nm dWwgdXBmcm9udCBsaW5rIHRyYWluaW5nIGludG8KPiA+ID4gYWNjb3VudCwKPiA+ID4gYW5kCj4g PiA+ICsJwqAqIHJldHVybiB0aGUgRGlzcGxheVBvcnQgbWF4IHN1cHBvcnRlZCB2YWx1ZXMgaW4g dGhlCj4gPiA+IGV2ZW50Cj4gPiA+IHRoYXQKPiA+ID4gKwnCoCogdXBmcm9udCBsaW5rIHRyYWlu aW5nIHdhcyBub3QgZG9uZS4KPiA+ID4gwqAJwqAqLwo+ID4gPiAtCWxhbmVfY291bnQgPSBkcm1f ZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAtPmRwY2QpOwo+ID4gPiArCWxhbmVfY291bnQgPSBp bnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gPiA+IMKgCj4gPiA+IMKgCXBpcGVf Y29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ID4gwqAKPiA+ID4gLQlwaXBlX2Nv bmZpZy0+cGlwZV9icHAgPSAyNDsKPiA+ID4gLQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9Cj4g PiA+IGludGVsX2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+ID4gPiArCXBpcGVfY29uZmln LT5waXBlX2JwcCA9IGJwcCA9IDI0Owo+ID4gPiArCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21t b25fcmF0ZXMoaW50ZWxfZHAsCj4gPiA+IGNvbW1vbl9yYXRlcyk7Cj4gPiA+ICsJcGlwZV9jb25m aWctPnBvcnRfY2xvY2sgPSBjb21tb25fcmF0ZXNbY29tbW9uX2xlbiAtIDFdOwo+ID4gPiArCj4g PiA+ICsJRFJNX0RFQlVHX0tNUygiRFAgTVNUIGxpbmsgY29uZmlndXJlZCBmb3IgJWQgbGFuZXMg QAo+ID4gPiAlZC5cbiIsCj4gPiA+ICsJCcKgwqDCoMKgwqDCoHBpcGVfY29uZmlnLT5sYW5lX2Nv dW50LCBwaXBlX2NvbmZpZy0KPiA+ID4gPiAKPiA+ID4gPiBwb3J0X2Nsb2NrKTsKPiA+ID4gwqAK PiA+ID4gwqAJc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKPiA+ID4gwqAKPiA+ID4g QEAgLTEzNyw2ICsxNDYsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2VuYWJsZV9kcChz dHJ1Y3QKPiA+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gwqAJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPiA+ID4gwqAJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yID0KPiA+ID4gwqAJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpOwo+ID4gPiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gcGlwZV9j b25maWctCj4gPiA+ID5zaGFyZWRfZHBsbDsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ID4gPiDCoAlpbnQgcmV0Owo+ID4gPiDCoAl1aW50 MzJfdCB0ZW1wOwo+ID4gPiDCoAlpbnQgc2xvdHM7Cj4gPiA+IEBAIC0xNTAsMjEgKzE2MSwyMyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2VuYWJsZV9kcChzdHJ1Y3QKPiA+ID4gaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gwqAJRFJNX0RFQlVHX0tNUygiJWRcbiIsIGludGVsX2Rw LT5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+ID4gwqAKPiA+ID4gwqAJaWYgKGludGVsX2RwLT5hY3Rp dmVfbXN0X2xpbmtzID09IDApIHsKPiA+ID4gLQkJaW50ZWxfZGRpX2Nsa19zZWxlY3QoJmludGVs X2RpZ19wb3J0LT5iYXNlLAo+ID4gPiAtCQkJCcKgwqDCoMKgwqBwaXBlX2NvbmZpZy0+c2hhcmVk X2RwbGwpOwo+ID4gPiAtCj4gPiA+IC0JCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoJmlu dGVsX2RpZ19wb3J0LQo+ID4gPiA+YmFzZSk7Cj4gPiA+IC0JCWludGVsX2RwX3NldF9saW5rX3Bh cmFtcyhpbnRlbF9kcCwKPiA+ID4gLQkJCQkJwqBwaXBlX2NvbmZpZy0KPiA+ID4gPnBvcnRfY2xv Y2ssCj4gPiA+IC0JCQkJCcKgcGlwZV9jb25maWctCj4gPiA+ID5sYW5lX2NvdW50LAo+ID4gPiAt CQkJCQnCoHRydWUpOwo+ID4gPiAtCj4gPiA+IC0JCWludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWco JmludGVsX2RpZ19wb3J0LQo+ID4gPiA+YmFzZSk7Cj4gPiA+IMKgCj4gPiA+IC0JCWludGVsX2Rw X3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7Cj4gPiA+ICsJCS8qIERpc2Fi bGUgdGhlIFBMTCBzaW5jZSB3ZSBuZWVkIHRvIGFjcXVpcmUgdGhlCj4gPiA+IFBMTAo+ID4gPiAr CQnCoCogYmFzZWQgb24gdGhlIGxpbmsgcmF0ZSBpbiB0aGUgbGluayB0cmFpbmluZwo+ID4gPiBz ZXF1ZW5jZQo+ID4gPiArCQnCoCovCj4gPiA+ICsJCXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25m aWc7Cj4gPiA+ICsJCXBsbC0+ZnVuY3MuZGlzYWJsZShkZXZfcHJpdiwgcGxsKTsKPiA+ID4gKwkJ cGxsLT5jb25maWcuY3J0Y19tYXNrID0gMDsKPiA+ID4gKwo+ID4gPiArCQkvKiBJZiBMaW5rIFRy YWluaW5nIGZhaWxzLCBzZW5kIGEgdWV2ZW50IHRvCj4gPiA+IGdlbmVyYXRlCj4gPiA+IGEKPiA+ ID4gKwkJwqAqaG90cGx1Zwo+ID4gPiArCQnCoCovCj4gPiA+ICsJCWlmICghKGludGVsX2RkaV9s aW5rX3RyYWluKGludGVsX2RwLAo+ID4gPiBwaXBlX2NvbmZpZy0KPiA+ID4gPiAKPiA+ID4gPiBw b3J0X2Nsb2NrLAo+ID4gPiArCQkJCQnCoMKgwqBwaXBlX2NvbmZpZy0KPiA+ID4gPmxhbmVfY291 bnQsCj4gPiA+IHRydWUsCj4gPiA+ICsJCQkJCcKgwqDCoGZhbHNlKSkpCj4gPiA+ICsJCQlkcm1f a21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGVuY29kZXItCj4gPiA+ID4gCj4gPiA+ID4gYmFzZS5k ZXYpOwo+ID4gPiArCQlwbGwtPmNvbmZpZyA9IHRtcF9wbGxfY29uZmlnOwo+ID4gPiDCoAo+ID4g PiAtCQlpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKPiA+ID4gLQkJaW50ZWxf ZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiA+ID4gwqAJfQo+ID4gPiDCoAo+ID4gPiDC oAlyZXQgPSBkcm1fZHBfbXN0X2FsbG9jYXRlX3ZjcGkoJmludGVsX2RwLT5tc3RfbWdyLAo+ID4g PiBAQCAtMzM2LDYgKzM0OSwyNyBAQCBpbnRlbF9kcF9tc3RfbW9kZV92YWxpZChzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcgo+ID4gPiAqY29ubmVjdG9yLAo+ID4gPiDCoAkJCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlKQo+ID4gPiDCoHsKPiA+ID4gwqAJaW50IG1heF9kb3RjbGsgPSB0b19pOTE1 KGNvbm5lY3Rvci0+ZGV2KS0KPiA+ID4gPm1heF9kb3RjbGtfZnJlcTsKPiA+ID4gKwlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPQo+ID4gPiB0b19pbnRlbF9jb25uZWN0 b3IoY29ubmVjdG9yKTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxf Y29ubmVjdG9yLT5tc3RfcG9ydDsKPiA+ID4gKwo+ID4gPiArCWlmIChpbnRlbF9kcC0+dXBmcm9u dF9saW5rX3RyYWluICYmICFpbnRlbF9kcC0KPiA+ID4gPnVwZnJvbnRfZG9uZSnCoAo+ID4gPiB7 Cj4gPiA+ICsJCWJvb2wgZG9fdXBmcm9udF9saW5rX3RyYWluOwo+ID4gPiArCj4gPiA+ICsJCWRv X3VwZnJvbnRfbGlua190cmFpbiA9IGludGVsX2RwLQo+ID4gPiA+IAo+ID4gPiA+IGNvbXBsaWFu Y2VfdGVzdF90eXBlICE9Cj4gPiA+ICsJCQlEUF9URVNUX0xJTktfVFJBSU5JTkc7Cj4gPiA+ICsJ CWlmIChkb191cGZyb250X2xpbmtfdHJhaW4pIHsKPiA+ID4gKwkJCWludGVsX2RwLT51cGZyb250 X2RvbmUgPQo+ID4gPiArCQkJCWludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihpbnRlCj4gPiA+ IGxfZHAKPiA+ID4gKTsKPiA+ID4gKwkJCWlmIChpbnRlbF9kcC0+dXBmcm9udF9kb25lKSB7Cj4g PiA+ICsJCQkJRFJNX0RFQlVHX0tNUygiTVNUIHVwZnJvbnQKPiA+ID4gdHJhaW5lZAo+ID4gPiBh dCAiCj4gPiA+ICsJCQkJCcKgwqDCoMKgwqDCoCIlZCBsYW5lcyBAICVkLiIsCj4gPiA+ICsJCQkJ CcKgwqDCoMKgwqDCoGludGVsX2RwLQo+ID4gPiA+IAo+ID4gPiA+IG1heF9sYW5lc191cGZyb250 LAo+ID4gPiArCQkJCQnCoMKgwqDCoMKgwqBpbnRlbF9kcC0KPiA+ID4gPiAKPiA+ID4gPiBtYXhf bGlua19yYXRlX3VwZnJvbnQpOwo+ID4gPiArCQkJfSBlbHNlCj4gPiA+ICsJCQkJRFJNX0RFQlVH X0tNUygiTVNUIHVwZnJvbnQgbGluawo+ID4gPiB0cmFpbmluZyAiCj4gPiA+ICsJCQkJCcKgwqDC oMKgwqDCoCJmYWlsZWQuIik7Cj4gPiBMaW5rIHRyYWluaW5nIGhhcyBmYWlsZWQgYW5kIHdlIGhh dmUgYSBibGFuayBzY3JlZW4uIFNob3VsZCB3ZQo+ID4gdGhyb3cgYW4KPiA+IGVycm9yIGhlcmU/ IE1heWJlCj4gPiAKPiA+IAlyZXR1cm4gTU9ERV9FUlJPUjsKPiBUaGlzIGlzIG9ubHkgZm9yIHVw ZnJvbnQgbGluayB0cmFpbmluZywgd2hpY2ggaXMgaGVscGZ1bCBidXQgbm90Cj4gYWJzb2x1dGVs eQo+IHJlcXVpcmVkLsKgwqBJZiB0aGlzIHdlcmUgYSBsaW5rIHRyYWluaW5nIGFzc29jaWF0ZWQg d2l0aCBhIG1vZGUgc2V0Cj4gSSdkCj4gYWdyZWUuwqDCoEFzIGl0IGlzLCBJIHRoaW5rIGEgZGVi dWcgbWVzc2FnZSBpcyBmaW5lIGZvciB0aGlzIGNhc2UuCj4gCj4gSmltCk9rLCBzbyBhdCB0aGlz IHBvaW50IHdlIGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBtb2RlIHNvIEkgdGhpbmsKZGVi dWcgbWVzc2FnZSBpcyBqdXN0IGZpbmUgaGVyZS4KCj4gCj4gCj4gPiAKPiA+IAo+ID4gPiAKPiA+ ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gwqAKPiA+ID4gwqAJLyogVE9ETyAtIHZhbGlkYXRlIG1v ZGUgYWdhaW5zdCBhdmFpbGFibGUgUEJOIGZvciBsaW5rCj4gPiA+ICovCj4gPiA+IMKgCWlmICht b2RlLT5jbG9jayA8IDEwMDAwKQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ID4gPiBpbmRleCBhMmJiZjY4Li4zNGFmM2U4IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gPiBAQCAtMTQxNiw2ICsxNDE2LDcgQEAgdm9pZCBpbnRlbF9lZHBfcGFu ZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcAo+ID4gPiAqaW50ZWxfZHApOwo+ID4gPiDCoHZvaWQgaW50 ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0Cj4g PiA+IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPiA+IMKgdm9pZCBpbnRlbF9kcF9tc3Rf c3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ID4gwqB2b2lkIGludGVsX2RwX21z dF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiA+ICt1OCBpbnRlbF9kcF9tYXhf bGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ID4gwqBpbnQgaW50ZWxf ZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ID4gwqBpbnQg aW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+ ID4gPiAqY29tbW9uX3JhdGVzLAo+ID4gPiDCoAkJCcKgwqDCoMKgwqBpbnQgbGlua19yYXRlKTsK PiA+ID4gQEAgLTE0NDgsNiArMTQ0OSw4IEBAIGludGVsX2RwX3ByZV9lbXBoYXNpc19tYXgoc3Ry dWN0IGludGVsX2RwCj4gPiA+ICppbnRlbF9kcCwgdWludDhfdCB2b2x0YWdlX3N3aW5nKTsKPiA+ ID4gwqB2b2lkIGludGVsX2RwX2NvbXB1dGVfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LCBpbnQKPiA+ID4gcG9ydF9jbG9jaywKPiA+ID4gwqAJCQnCoMKgwqB1aW50OF90ICpsaW5rX2J3 LCB1aW50OF90Cj4gPiA+ICpyYXRlX3NlbGVjdCk7Cj4gPiA+IMKgYm9vbCBpbnRlbF9kcF9zb3Vy Y2Vfc3VwcG9ydHNfaGJyMihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ID4gK2ludCBp bnRlbF9kcF9jb21tb25fcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50Cj4gPiA+ ICpjb21tb25fcmF0ZXMpOwo+ID4gPiArYm9vbCBpbnRlbF9kcF91cGZyb250X2xpbmtfdHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiA+IMKgYm9vbAo+ID4gPiDCoGludGVsX2Rw X2dldF9saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90Cj4gPiA+ IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdKTsKPiA+ID4gwqAKLS0gCk1pa2EgS2Fo b2xhIC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK