From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 1/5] drm/i915: Add support for DP link training compliance Date: Wed, 23 Nov 2016 15:33:12 -0800 Message-ID: <20161123233311.GA9178@intel.com> References: <1479850766-32748-1-git-send-email-manasi.d.navare@intel.com> <1479850766-32748-2-git-send-email-manasi.d.navare@intel.com> <87fumiwdil.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <87fumiwdil.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBOb3YgMjMsIDIwMTYgYXQgMDM6MDc6MzBQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAyMiBOb3YgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJl QGludGVsLmNvbT4gd3JvdGU6Cj4gPiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBoYW5kbGUg YXV0b21hdGVkIERQIGNvbXBsaWFuY2UKPiA+IGxpbmsgdHJhaW5pbmcgdGVzdCByZXF1ZXN0cy4g VGhpcyBwYXRjaCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aAo+ID4gVW5pZ3JhZiBEUFItMTIwIERQIENv bXBsaWFuY2UgZGV2aWNlIGZvciB0ZXN0aW5nIExpbmsKPiA+IFRyYWluaW5nIENvbXBsaWFuY2Uu Cj4gPiBBZnRlciB3ZSBnZXQgYSBzaG9ydCBwdWxzZSBDb21wbGlhbmNlIHRlc3QgcmVxdWVzdCwg dGVzdAo+ID4gcmVxdWVzdCB2YWx1ZXMgYXJlIHJlYWQgYW5kIGhvdHBsdWcgdWV2ZW50IGlzIHNl bnQgaW4gb3JkZXIKPiA+IHRvIHRyaWdnZXIgYW5vdGhlciBtb2Rlc2V0IGR1cmluZyB3aGljaCB0 aGUgcGlwZSBpcyBjb25maWd1cmVkCj4gPiBhbmQgbGluayBpcyByZXRyYWluZWQgYW5kIGVuYWJs ZWQgZm9yIGxpbmsgcGFyYW1ldGVycyByZXF1ZXN0ZWQKPiA+IGJ5IHRoZSB0ZXN0Lgo+ID4KPiA+ IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENj OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+IENjOiBWaWxsZSBT eXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwg IDIgKysKPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCA5MDI4M2VkLi42OTk0 NGQxIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTI4OCw2ICsyODgs MjEgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21tb25fcmF0ZXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiA+ICAJCQkgICAgICAgY29tbW9uX3JhdGVzKTsKPiA+ICB9Cj4gPiAgCj4gPiAr c3RhdGljIGludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKPiA+ICsJCQkJICAgIGludCAqY29tbW9uX3JhdGVzLCBpbnQgbGlua19yYXRlKQo+ID4g K3sKPiA+ICsJaW50IGNvbW1vbl9sZW47Cj4gPiArCWludCBpbmRleDsKPiA+ICsKPiA+ICsJY29t bW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsK PiA+ICsJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY29tbW9uX2xlbjsgaW5kZXgrKykgewo+ID4g KwkJaWYgKGxpbmtfcmF0ZSA9PSBjb21tb25fcmF0ZXNbY29tbW9uX2xlbiAtIGluZGV4IC0gMV0p Cj4gPiArCQkJcmV0dXJuIGNvbW1vbl9sZW4gLSBpbmRleCAtIDE7Cj4gPiArCX0KPiA+ICsKPiA+ ICsJcmV0dXJuIC0xOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0 dXMKPiA+ICBpbnRlbF9kcF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gPiAgCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gPiBAQCAtMTU1 NCw2ICsxNTY5LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkvKiBDb252ZW5pZW50bHksIHRoZSBsaW5rIEJXIGNvbnN0 YW50cyBiZWNvbWUgaW5kaWNlcyB3aXRoIGEgc2hpZnQuLi4qLwo+ID4gIAlpbnQgbWluX2Nsb2Nr ID0gMDsKPiA+ICAJaW50IG1heF9jbG9jazsKPiA+ICsJaW50IGxpbmtfcmF0ZV9pbmRleDsKPiA+ ICAJaW50IGJwcCwgbW9kZV9yYXRlOwo+ID4gIAlpbnQgbGlua19hdmFpbCwgbGlua19jbG9jazsK PiA+ICAJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9Owo+ID4g QEAgLTE1OTUsNiArMTYxMSwxNiBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAm IERSTV9NT0RFX0ZMQUdfREJMQ0xLKQo+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gIAo+ID4gKwkv KiBVc2UgdmFsdWVzIHJlcXVlc3RlZCBieSBDb21wbGlhbmNlIFRlc3QgUmVxdWVzdCAqLwo+ID4g KwlpZiAoaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJ TklORykgewo+ID4gKwkJCWxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRl eChpbnRlbF9kcCwKPiA+ICsJCQkJCQkJCSAgIGNvbW1vbl9yYXRlcywKPiA+ICsJCQkJCQkJCSAg IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZShpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2xp bmtfcmF0ZSkpOwo+ID4gKwkJCWlmIChsaW5rX3JhdGVfaW5kZXggPj0gMCkKPiA+ICsJCQkJbWlu X2Nsb2NrID0gbWF4X2Nsb2NrID0gbGlua19yYXRlX2luZGV4Owo+ID4gKwkJCW1pbl9sYW5lX2Nv dW50ID0gbWF4X2xhbmVfY291bnQgPSBpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2xhbmVfY291 bnQ7Cj4gCj4gWW91IG5lZWQgdG8gYmUgbW9yZSBzdHJpY3QgYWJvdXQgdmFsaWRhdGluZwo+IGNv bXBsaWFuY2VfdGVzdF9sYW5lX2NvdW50LiBZb3UgZG8gbWFzayBpdCB3aXRoIERQX01BWF9MQU5F X0NPVU5UX01BU0ssCj4gYnV0IHRoYXQncyAweDFmLCBxdWl0ZSBhIGZldyBtb3JlIGxhbmVzIHRo YW4gd2UgaGF2ZS4uLgo+CgpTbyB0aGUgcmVhc29uIEkgZGlkbnQgYWRkIHZhbGlkYXRpb24gaGVy ZSBpcyBiZWNhdXNlIHdlIGVudGVyIHRoZSBEVVQgY2FwYWJpbGl0aWVzIGludG8KRFBSLTEyMCBi ZWZvcmUgc3RhcnRpbmcgdGhlIHRlc3QsIHNvIHRoZSB0ZXN0IGxhbmUgY291bnQgaXRzIGdvbm5h IHJlcXVlc3Qgd2lsbCBub3QKZXhjZWVkIHRoZSBEVVQgbWF4IGxhbmUgY291bnQuCkJ1dCB3ZSBj YW4gc3RpbGwgdGFrZSBzYWZlIGFwcHJvYWNoIGFuZCB0YWtlIHRoZSBtaW4gYmV0d2VlbiB0aGUg Y29tcGxpYW5jZV9sYW5lX2NvdW50IGFuZAptYXggc291cmNlIGxhbmUgY291bnQuCgogCj4gPiAr CX0KPiA+ICsKPiA+ICAJRFJNX0RFQlVHX0tNUygiRFAgbGluayBjb21wdXRhdGlvbiB3aXRoIG1h eCBsYW5lIGNvdW50ICVpICIKPiA+ICAJCSAgICAgICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlL SHpcbiIsCj4gPiAgCQkgICAgICBtYXhfbGFuZV9jb3VudCwgY29tbW9uX3JhdGVzW21heF9jbG9j a10sCj4gPiBAQCAtMTY0Miw2ICsxNjY4LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRl X2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCQl9Cj4gPiAgCQkJfQo+ID4g IAkJfQo+ID4gKwo+IAo+IFBsZWFzZSBwYXkgYXR0ZW50aW9uIHRvIG5vdCBtYWtpbmcgdW5yZWxh dGVkIGNoYW5nZXMuCj4gCj4gPiAgCX0KPiA+ICAKPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gQEAg LTM4MDQsNiArMzgzMSwyOSBAQCBpbnQgaW50ZWxfZHBfc2lua19jcmMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwgdTggKmNyYykKPiA+ICBzdGF0aWMgdWludDhfdCBpbnRlbF9kcF9hdXRvdGVz dF9saW5rX3RyYWluaW5nKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gIAl1 aW50OF90IHRlc3RfcmVzdWx0ID0gRFBfVEVTVF9BQ0s7Cj4gPiArCWludCBzdGF0dXMgPSAwOwo+ ID4gKwkvKiAoRFAgQ1RTIDEuMikKPiA+ICsJICogNC4zLjEuMTEKPiA+ICsJICovCj4gPiArCS8q IFJlYWQgdGhlIFRFU1RfTEFORV9DT1VOVCBhbmQgVEVTVF9MSU5LX1JUQUUgZmllbGRzIChEUCBD VFMgMy4xLjQpICovCj4gPiArCXN0YXR1cyA9IGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+ YXV4LCBEUF9URVNUX0xBTkVfQ09VTlQsCj4gPiArCQkJCSAgJmludGVsX2RwLT5jb21wbGlhbmNl X3Rlc3RfbGFuZV9jb3VudCk7Cj4gPiArCj4gPiArCWlmIChzdGF0dXMgPD0gMCkgewo+ID4gKwkJ RFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHJlYWQgdGVzdCBsYW5lIGNvdW50IGZyb20gIgo+ID4g KwkJCSAgICAgICJyZWZlcmVuY2Ugc2lua1xuIik7Cj4gCj4gTm8gbmVlZCB0byBiZSBzbyB2ZXJi b3NlLCBEUk1fREVCVUdfS01TIHdpbGwgaW5jbHVkZSB0aGUgZnVuY3Rpb24gbmFtZSwKPiBzbyBh IHNpbXBsZSAiTGFuZSBjb3VudCByZWFkIGZhaWxlZCIgb3Igc29tZXRoaW5nIHdpbGwgc3VmZmlj ZS4KPiAKPiA+ICsJCXJldHVybiAwOwo+IAo+IFNob3VsZCB0aGVzZSByZXR1cm4gRFBfVEVTVF9O QUsgb24gZXJyb3JzIG9yIHdoYXQ/Cj4KCk5vIGluIHRoaXMgY2FzZSBpdCBzaG91bGQganVzdCBy ZXR1cm4gd2hpY2ggd2lsbCBub3Qgc2VuZCBhbnkgdGVzdApyZXNwb25zZSBhbmQgdGhlIHRlc3Qg d2lsbCB0aW1lb3V0IGFmdGVyIDUgcmV0cmllcyBhbmQgc3RvcC4KVEVTVF9OQUsgaXMgdXN1YWxs eSBpZiB0aGUgdGVzdCBpcyBub3Qgc3VwcG9ydGVkLgoKCj4gPiArCX0KPiA+ICsJaW50ZWxfZHAt PmNvbXBsaWFuY2VfdGVzdF9sYW5lX2NvdW50ICY9IERQX01BWF9MQU5FX0NPVU5UX01BU0s7Cj4g PiArCj4gPiArCXN0YXR1cyA9IGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LCBEUF9U RVNUX0xJTktfUkFURSwKPiA+ICsJCQkJICAgJmludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfbGlu a19yYXRlKTsKPiA+ICsJaWYgKHN0YXR1cyA8PSAwKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJD b3VsZCBub3QgcmVhZCB0ZXN0IGxpbmsgcmF0ZSBmcm9tICIKPiA+ICsJCQkgICAgICAicmVmZXJu Y2Ugc2lua1xuIik7Cj4gCj4gRGl0dG8uCj4gCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsJfQo+ID4g Kwo+ID4gIAlyZXR1cm4gdGVzdF9yZXN1bHQ7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTM5MDgsNyAr Mzk1OCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3Qoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJCQkJICAgRFBfVEVTVF9SRVNQT05TRSwKPiA+ICAJ CQkJICAgJnJlc3BvbnNlLCAxKTsKPiA+ICAJaWYgKHN0YXR1cyA8PSAwKQo+ID4gLQkJRFJNX0RF QlVHX0tNUygiQ291bGQgbm90IHdyaXRlIHRlc3QgcmVzcG9uc2UgdG8gc2lua1xuIik7Cj4gPiAr CQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3Qgd3JpdGUgdGVzdCByZXNwb25zZSAiCj4gPiArCQkJ ICAgICAgInRvIHNpbmtcbiIpOwo+IAo+IFVucmVsYXRlZCBjaGFuZ2UsIGFuZCBvbmUgd2UgZG9u J3Qgd2FudC4KPiAKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludAo+ID4gQEAgLTQwMTgsOSAr NDA2OSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3Qoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJaWYgKFdBUk5fT05fT05DRSghaW50ZWxfZHAtPmxh bmVfY291bnQpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQkvKiBpZiBsaW5rIHRyYWluaW5n IGlzIHJlcXVlc3RlZCB3ZSBzaG91bGQgcGVyZm9ybSBpdCBhbHdheXMgKi8KPiA+IC0JaWYgKChp bnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPT0gRFBfVEVTVF9MSU5LX1RSQUlOSU5HKSB8 fAo+ID4gLQkgICAgKCFkcm1fZHBfY2hhbm5lbF9lcV9vayhsaW5rX3N0YXR1cywgaW50ZWxfZHAt PmxhbmVfY291bnQpKSkgewo+ID4gKwkvKiBSZXRyYWluIGlmIENoYW5uZWwgRVEgb3IgQ1Igbm90 IG9rICovCj4gPiArCWlmICgoIWRybV9kcF9jaGFubmVsX2VxX29rKGxpbmtfc3RhdHVzLCBpbnRl bF9kcC0+bGFuZV9jb3VudCkpKSB7Cj4gCj4gVG9vIG1hbnkgYnJhY2VzLgo+IAo+ID4gIAkJRFJN X0RFQlVHX0tNUygiJXM6IGNoYW5uZWwgRVEgbm90IG9rLCByZXRyYWluaW5nXG4iLAo+ID4gIAkJ CSAgICAgIGludGVsX2VuY29kZXItPmJhc2UubmFtZSk7Cj4gPiAgCj4gPiBAQCAtNDA0NSw2ICs0 MDk1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIGludGVsX2RwX3Nob3J0X3B1bHNlKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50 ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ID4gIAl1OCBzaW5r X2lycV92ZWN0b3IgPSAwOwo+ID4gIAl1OCBvbGRfc2lua19jb3VudCA9IGludGVsX2RwLT5zaW5r X2NvdW50Owo+ID4gIAlib29sIHJldDsKPiA+IEBAIC00MDU2LDYgKzQxMDcsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kcF9oYW5kbGVfdGVzdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPiAgCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfYWN0aXZlID0gMDsKPiA+ICAJaW50 ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlID0gMDsKPiA+ICAJaW50ZWxfZHAtPmNvbXBsaWFu Y2VfdGVzdF9kYXRhID0gMDsKPiA+ICsJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9sYW5lX2Nv dW50ID0gMDsKPiA+ICsJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9saW5rX3JhdGUgPSAwOwo+ IAo+IExvb2tzIGxpa2UgY29tcGxpYW5jZSBzdHVmZiBzaG91bGQgYmUgYSBzdWIgc3RydWN0IGlu IGludGVsX2RwLCBhbmQgeW91Cj4gY291bGQganVzdCBtZW1zZXQgaXQgdG8gMC4KPgoKWWVzIEkg Y2FuIGFkZCBhIHN0cnVjdCBmb3IgdGhpcy4KIAo+ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBOb3cg cmVhZCB0aGUgRFBDRCB0byBzZWUgaWYgaXQncyBhY3R1YWxseSBydW5uaW5nCj4gPiBAQCAtNDA3 OSw4ICs0MTMyLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkJCQkgICBEUF9ERVZJQ0VfU0VSVklDRV9J UlFfVkVDVE9SLAo+ID4gIAkJCQkgICBzaW5rX2lycV92ZWN0b3IpOwo+ID4gIAo+ID4gLQkJaWYg KHNpbmtfaXJxX3ZlY3RvciAmIERQX0FVVE9NQVRFRF9URVNUX1JFUVVFU1QpCj4gPiAtCQkJRFJN X0RFQlVHX0RSSVZFUigiVGVzdCByZXF1ZXN0IGluIHNob3J0IHB1bHNlIG5vdCBoYW5kbGVkXG4i KTsKPiA+ICsJCWlmIChzaW5rX2lycV92ZWN0b3IgJiBEUF9BVVRPTUFURURfVEVTVF9SRVFVRVNU KSB7Cj4gPiArCQkJaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChpbnRlbF9kcCk7Cj4gPiAr CQl9Cj4gCj4gVW5uZWNlc3NhcnkgY3VybHkgYnJhY2VzLgo+IAo+ID4gIAkJaWYgKHNpbmtfaXJx X3ZlY3RvciAmIChEUF9DUF9JUlEgfCBEUF9TSU5LX1NQRUNJRklDX0lSUSkpCj4gPiAgCQkJRFJN X0RFQlVHX0RSSVZFUigiQ1Agb3Igc2luayBzcGVjaWZpYyBpcnEgdW5oYW5kbGVkXG4iKTsKPiA+ ICAJfQo+ID4gQEAgLTQwODgsNiArNDE0MiwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9oYW5k bGVfdGVzdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgCWRybV9tb2Rl c2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7Cj4gPiAg CWludGVsX2RwX2NoZWNrX2xpbmtfc3RhdHVzKGludGVsX2RwKTsKPiA+ICAJZHJtX21vZGVzZXRf dW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwo+ID4gKwlpZiAoKGlu dGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfdHlwZSA9PSBEUF9URVNUX0xJTktfVFJBSU5JTkcpKSB7 Cj4gCj4gVG9vIG1hbnkgYnJhY2VzLgo+IAo+ID4gKwkJRFJNX0RFQlVHX0tNUygiTGluayBUcmFp bmluZyBDb21wbGlhbmNlIFRlc3QgcmVxdWVzdGVkXG4iKTsKPiA+ICsJCS8qIFNlbmQgYSBIb3Rw bHVnIFVldmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+ID4gKwkJZHJtX2tt c19oZWxwZXJfaG90cGx1Z19ldmVudChpbnRlbF9lbmNvZGVyLT5iYXNlLmRldik7Cj4gPiArCX0K PiA+ICAKPiA+ICAJcmV0dXJuIHRydWU7Cj4gPiAgfQo+ID4gQEAgLTQzNzUsNiArNDQzNCw4IEBA IHN0YXRpYyBib29sIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9hY3Rp dmUgPSAwOwo+ID4gIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlID0gMDsKPiA+ICAJ CWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfZGF0YSA9IDA7Cj4gPiArCQlpbnRlbF9kcC0+Y29t cGxpYW5jZV90ZXN0X2xhbmVfY291bnQgPSAwOwo+ID4gKwkJaW50ZWxfZHAtPmNvbXBsaWFuY2Vf dGVzdF9saW5rX3JhdGUgPSAwOwo+IAo+IFNhbWUgdGhpbmcgYWJvdXQgbWFraW5nIGNvbXBsaWFu Y2Ugc3ViIHN0cnVjdC4KPiAKPiA+ICAKPiA+ICAJCWlmIChpbnRlbF9kcC0+aXNfbXN0KSB7Cj4g PiAgCQkJRFJNX0RFQlVHX0tNUygiTVNUIGRldmljZSBtYXkgaGF2ZSBkaXNhcHBlYXJlZCAlZCB2 cyAlZFxuIiwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBjZDEzMmMyLi4x ZTg4Mjg4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtOTU4LDYg Kzk1OCw4IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4gPiAgCXVuc2lnbmVkIGxvbmcgY29tcGxpYW5j ZV90ZXN0X3R5cGU7Cj4gPiAgCXVuc2lnbmVkIGxvbmcgY29tcGxpYW5jZV90ZXN0X2RhdGE7Cj4g PiAgCWJvb2wgY29tcGxpYW5jZV90ZXN0X2FjdGl2ZTsKPiA+ICsJdTggY29tcGxpYW5jZV90ZXN0 X2xhbmVfY291bnQ7Cj4gPiArCXU4IGNvbXBsaWFuY2VfdGVzdF9saW5rX3JhdGU7Cj4gPiAgfTsK PiA+ICAKPiA+ICBzdHJ1Y3QgaW50ZWxfbHNwY29uIHsKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwg SW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==