From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/5] drm/i915: Add support for DP link training compliance Date: Wed, 23 Nov 2016 15:07:30 +0200 Message-ID: <87fumiwdil.fsf@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1479850766-32748-2-git-send-email-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Manasi Navare , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMiBOb3YgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4gd3JvdGU6Cj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gaGFuZGxlIGF1dG9tYXRl ZCBEUCBjb21wbGlhbmNlCj4gbGluayB0cmFpbmluZyB0ZXN0IHJlcXVlc3RzLiBUaGlzIHBhdGNo IGhhcyBiZWVuIHRlc3RlZCB3aXRoCj4gVW5pZ3JhZiBEUFItMTIwIERQIENvbXBsaWFuY2UgZGV2 aWNlIGZvciB0ZXN0aW5nIExpbmsKPiBUcmFpbmluZyBDb21wbGlhbmNlLgo+IEFmdGVyIHdlIGdl dCBhIHNob3J0IHB1bHNlIENvbXBsaWFuY2UgdGVzdCByZXF1ZXN0LCB0ZXN0Cj4gcmVxdWVzdCB2 YWx1ZXMgYXJlIHJlYWQgYW5kIGhvdHBsdWcgdWV2ZW50IGlzIHNlbnQgaW4gb3JkZXIKPiB0byB0 cmlnZ2VyIGFub3RoZXIgbW9kZXNldCBkdXJpbmcgd2hpY2ggdGhlIHBpcGUgaXMgY29uZmlndXJl ZAo+IGFuZCBsaW5rIGlzIHJldHJhaW5lZCBhbmQgZW5hYmxlZCBmb3IgbGluayBwYXJhbWV0ZXJz IHJlcXVlc3RlZAo+IGJ5IHRoZSB0ZXN0Lgo+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFy ZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBp bnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDczICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggfCAgMiArKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCA5MDI4 M2VkLi42OTk0NGQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTI4OCw2ICsy ODgsMjEgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21tb25fcmF0ZXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiAgCQkJICAgICAgIGNvbW1vbl9yYXRlcyk7Cj4gIH0KPiAgCj4gK3N0YXRp YyBpbnQgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gKwkJCQkgICAgaW50ICpjb21tb25fcmF0ZXMsIGludCBsaW5rX3JhdGUpCj4gK3sKPiArCWlu dCBjb21tb25fbGVuOwo+ICsJaW50IGluZGV4Owo+ICsKPiArCWNvbW1vbl9sZW4gPSBpbnRlbF9k cF9jb21tb25fcmF0ZXMoaW50ZWxfZHAsIGNvbW1vbl9yYXRlcyk7Cj4gKwlmb3IgKGluZGV4ID0g MDsgaW5kZXggPCBjb21tb25fbGVuOyBpbmRleCsrKSB7Cj4gKwkJaWYgKGxpbmtfcmF0ZSA9PSBj b21tb25fcmF0ZXNbY29tbW9uX2xlbiAtIGluZGV4IC0gMV0pCj4gKwkJCXJldHVybiBjb21tb25f bGVuIC0gaW5kZXggLSAxOwo+ICsJfQo+ICsKPiArCXJldHVybiAtMTsKPiArfQo+ICsKPiAgc3Rh dGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4gIGludGVsX2RwX21vZGVfdmFsaWQoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUpCj4gQEAgLTE1NTQsNiArMTU2OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0 ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCS8qIENvbnZlbmllbnRseSwgdGhl IGxpbmsgQlcgY29uc3RhbnRzIGJlY29tZSBpbmRpY2VzIHdpdGggYSBzaGlmdC4uLiovCj4gIAlp bnQgbWluX2Nsb2NrID0gMDsKPiAgCWludCBtYXhfY2xvY2s7Cj4gKwlpbnQgbGlua19yYXRlX2lu ZGV4Owo+ICAJaW50IGJwcCwgbW9kZV9yYXRlOwo+ICAJaW50IGxpbmtfYXZhaWwsIGxpbmtfY2xv Y2s7Cj4gIAlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4g QEAgLTE1OTUsNiArMTYxMSwxNiBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0RCTENMSykKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICsJLyogVXNlIHZh bHVlcyByZXF1ZXN0ZWQgYnkgQ29tcGxpYW5jZSBUZXN0IFJlcXVlc3QgKi8KPiArCWlmIChpbnRl bF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPT0gRFBfVEVTVF9MSU5LX1RSQUlOSU5HKSB7Cj4g KwkJCWxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwK PiArCQkJCQkJCQkgICBjb21tb25fcmF0ZXMsCj4gKwkJCQkJCQkJICAgZHJtX2RwX2J3X2NvZGVf dG9fbGlua19yYXRlKGludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfbGlua19yYXRlKSk7Cj4gKwkJ CWlmIChsaW5rX3JhdGVfaW5kZXggPj0gMCkKPiArCQkJCW1pbl9jbG9jayA9IG1heF9jbG9jayA9 IGxpbmtfcmF0ZV9pbmRleDsKPiArCQkJbWluX2xhbmVfY291bnQgPSBtYXhfbGFuZV9jb3VudCA9 IGludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfbGFuZV9jb3VudDsKCllvdSBuZWVkIHRvIGJlIG1v cmUgc3RyaWN0IGFib3V0IHZhbGlkYXRpbmcKY29tcGxpYW5jZV90ZXN0X2xhbmVfY291bnQuIFlv dSBkbyBtYXNrIGl0IHdpdGggRFBfTUFYX0xBTkVfQ09VTlRfTUFTSywKYnV0IHRoYXQncyAweDFm LCBxdWl0ZSBhIGZldyBtb3JlIGxhbmVzIHRoYW4gd2UgaGF2ZS4uLgoKPiArCX0KPiArCj4gIAlE Uk1fREVCVUdfS01TKCJEUCBsaW5rIGNvbXB1dGF0aW9uIHdpdGggbWF4IGxhbmUgY291bnQgJWkg Igo+ICAJCSAgICAgICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlLSHpcbiIsCj4gIAkJICAgICAg bWF4X2xhbmVfY291bnQsIGNvbW1vbl9yYXRlc1ttYXhfY2xvY2tdLAo+IEBAIC0xNjQyLDYgKzE2 NjgsNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gIAkJCQl9Cj4gIAkJCX0KPiAgCQl9Cj4gKwoKUGxlYXNlIHBheSBhdHRlbnRp b24gdG8gbm90IG1ha2luZyB1bnJlbGF0ZWQgY2hhbmdlcy4KCj4gIAl9Cj4gIAo+ICAJcmV0dXJu IGZhbHNlOwo+IEBAIC0zODA0LDYgKzM4MzEsMjkgQEAgaW50IGludGVsX2RwX3NpbmtfY3JjKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHU4ICpjcmMpCj4gIHN0YXRpYyB1aW50OF90IGludGVs X2RwX2F1dG90ZXN0X2xpbmtfdHJhaW5pbmcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAg ewo+ICAJdWludDhfdCB0ZXN0X3Jlc3VsdCA9IERQX1RFU1RfQUNLOwo+ICsJaW50IHN0YXR1cyA9 IDA7Cj4gKwkvKiAoRFAgQ1RTIDEuMikKPiArCSAqIDQuMy4xLjExCj4gKwkgKi8KPiArCS8qIFJl YWQgdGhlIFRFU1RfTEFORV9DT1VOVCBhbmQgVEVTVF9MSU5LX1JUQUUgZmllbGRzIChEUCBDVFMg My4xLjQpICovCj4gKwlzdGF0dXMgPSBkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwg RFBfVEVTVF9MQU5FX0NPVU5ULAo+ICsJCQkJICAmaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9s YW5lX2NvdW50KTsKPiArCj4gKwlpZiAoc3RhdHVzIDw9IDApIHsKPiArCQlEUk1fREVCVUdfS01T KCJDb3VsZCBub3QgcmVhZCB0ZXN0IGxhbmUgY291bnQgZnJvbSAiCj4gKwkJCSAgICAgICJyZWZl cmVuY2Ugc2lua1xuIik7CgpObyBuZWVkIHRvIGJlIHNvIHZlcmJvc2UsIERSTV9ERUJVR19LTVMg d2lsbCBpbmNsdWRlIHRoZSBmdW5jdGlvbiBuYW1lLApzbyBhIHNpbXBsZSAiTGFuZSBjb3VudCBy ZWFkIGZhaWxlZCIgb3Igc29tZXRoaW5nIHdpbGwgc3VmZmljZS4KCj4gKwkJcmV0dXJuIDA7CgpT aG91bGQgdGhlc2UgcmV0dXJuIERQX1RFU1RfTkFLIG9uIGVycm9ycyBvciB3aGF0PwoKPiArCX0K PiArCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfbGFuZV9jb3VudCAmPSBEUF9NQVhfTEFORV9D T1VOVF9NQVNLOwo+ICsKPiArCXN0YXR1cyA9IGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+ YXV4LCBEUF9URVNUX0xJTktfUkFURSwKPiArCQkJCSAgICZpbnRlbF9kcC0+Y29tcGxpYW5jZV90 ZXN0X2xpbmtfcmF0ZSk7Cj4gKwlpZiAoc3RhdHVzIDw9IDApIHsKPiArCQlEUk1fREVCVUdfS01T KCJDb3VsZCBub3QgcmVhZCB0ZXN0IGxpbmsgcmF0ZSBmcm9tICIKPiArCQkJICAgICAgInJlZmVy bmNlIHNpbmtcbiIpOwoKRGl0dG8uCgo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsKPiAgCXJldHVy biB0ZXN0X3Jlc3VsdDsKPiAgfQo+ICAKPiBAQCAtMzkwOCw3ICszOTU4LDggQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICAJCQkJICAgRFBfVEVTVF9SRVNQT05TRSwKPiAgCQkJCSAgICZyZXNwb25zZSwgMSk7Cj4g IAlpZiAoc3RhdHVzIDw9IDApCj4gLQkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHdyaXRlIHRl c3QgcmVzcG9uc2UgdG8gc2lua1xuIik7Cj4gKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHdy aXRlIHRlc3QgcmVzcG9uc2UgIgo+ICsJCQkgICAgICAidG8gc2lua1xuIik7CgpVbnJlbGF0ZWQg Y2hhbmdlLCBhbmQgb25lIHdlIGRvbid0IHdhbnQuCgo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50Cj4g QEAgLTQwMTgsOSArNDA2OSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3Jl cXVlc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWlmIChXQVJOX09OX09OQ0UoIWlu dGVsX2RwLT5sYW5lX2NvdW50KSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JLyogaWYgbGluayB0cmFp bmluZyBpcyByZXF1ZXN0ZWQgd2Ugc2hvdWxkIHBlcmZvcm0gaXQgYWx3YXlzICovCj4gLQlpZiAo KGludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfdHlwZSA9PSBEUF9URVNUX0xJTktfVFJBSU5JTkcp IHx8Cj4gLQkgICAgKCFkcm1fZHBfY2hhbm5lbF9lcV9vayhsaW5rX3N0YXR1cywgaW50ZWxfZHAt PmxhbmVfY291bnQpKSkgewo+ICsJLyogUmV0cmFpbiBpZiBDaGFubmVsIEVRIG9yIENSIG5vdCBv ayAqLwo+ICsJaWYgKCghZHJtX2RwX2NoYW5uZWxfZXFfb2sobGlua19zdGF0dXMsIGludGVsX2Rw LT5sYW5lX2NvdW50KSkpIHsKClRvbyBtYW55IGJyYWNlcy4KCj4gIAkJRFJNX0RFQlVHX0tNUygi JXM6IGNoYW5uZWwgRVEgbm90IG9rLCByZXRyYWluaW5nXG4iLAo+ICAJCQkgICAgICBpbnRlbF9l bmNvZGVyLT5iYXNlLm5hbWUpOwo+ICAKPiBAQCAtNDA0NSw2ICs0MDk1LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICBpbnRlbF9kcF9zaG9ydF9wdWxzZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsK PiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKS0+YmFzZTsKPiAgCXU4IHNpbmtfaXJxX3ZlY3RvciA9IDA7Cj4gIAl1OCBvbGRf c2lua19jb3VudCA9IGludGVsX2RwLT5zaW5rX2NvdW50Owo+ICAJYm9vbCByZXQ7Cj4gQEAgLTQw NTYsNiArNDEwNyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3Qo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3Rf YWN0aXZlID0gMDsKPiAgCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfdHlwZSA9IDA7Cj4gIAlp bnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2RhdGEgPSAwOwo+ICsJaW50ZWxfZHAtPmNvbXBsaWFu Y2VfdGVzdF9sYW5lX2NvdW50ID0gMDsKPiArCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfbGlu a19yYXRlID0gMDsKCkxvb2tzIGxpa2UgY29tcGxpYW5jZSBzdHVmZiBzaG91bGQgYmUgYSBzdWIg c3RydWN0IGluIGludGVsX2RwLCBhbmQgeW91CmNvdWxkIGp1c3QgbWVtc2V0IGl0IHRvIDAuCgo+ ICAKPiAgCS8qCj4gIAkgKiBOb3cgcmVhZCB0aGUgRFBDRCB0byBzZWUgaWYgaXQncyBhY3R1YWxs eSBydW5uaW5nCj4gQEAgLTQwNzksOCArNDEzMiw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2hh bmRsZV90ZXN0X3JlcXVlc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQkJCSAgIERQ X0RFVklDRV9TRVJWSUNFX0lSUV9WRUNUT1IsCj4gIAkJCQkgICBzaW5rX2lycV92ZWN0b3IpOwo+ ICAKPiAtCQlpZiAoc2lua19pcnFfdmVjdG9yICYgRFBfQVVUT01BVEVEX1RFU1RfUkVRVUVTVCkK PiAtCQkJRFJNX0RFQlVHX0RSSVZFUigiVGVzdCByZXF1ZXN0IGluIHNob3J0IHB1bHNlIG5vdCBo YW5kbGVkXG4iKTsKPiArCQlpZiAoc2lua19pcnFfdmVjdG9yICYgRFBfQVVUT01BVEVEX1RFU1Rf UkVRVUVTVCkgewo+ICsJCQlpbnRlbF9kcF9oYW5kbGVfdGVzdF9yZXF1ZXN0KGludGVsX2RwKTsK PiArCQl9CgpVbm5lY2Vzc2FyeSBjdXJseSBicmFjZXMuCgo+ICAJCWlmIChzaW5rX2lycV92ZWN0 b3IgJiAoRFBfQ1BfSVJRIHwgRFBfU0lOS19TUEVDSUZJQ19JUlEpKQo+ICAJCQlEUk1fREVCVUdf RFJJVkVSKCJDUCBvciBzaW5rIHNwZWNpZmljIGlycSB1bmhhbmRsZWRcbiIpOwo+ICAJfQo+IEBA IC00MDg4LDYgKzQxNDIsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVx dWVzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJZHJtX21vZGVzZXRfbG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKPiAgCWludGVsX2RwX2NoZWNr X2xpbmtfc3RhdHVzKGludGVsX2RwKTsKPiAgCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2Rl X2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKPiArCWlmICgoaW50ZWxfZHAtPmNvbXBsaWFuY2Vf dGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJTklORykpIHsKClRvbyBtYW55IGJyYWNlcy4K Cj4gKwkJRFJNX0RFQlVHX0tNUygiTGluayBUcmFpbmluZyBDb21wbGlhbmNlIFRlc3QgcmVxdWVz dGVkXG4iKTsKPiArCQkvKiBTZW5kIGEgSG90cGx1ZyBVZXZlbnQgdG8gdXNlcnNwYWNlIHRvIHN0 YXJ0IG1vZGVzZXQgKi8KPiArCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGludGVsX2Vu Y29kZXItPmJhc2UuZGV2KTsKPiArCX0KPiAgCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+IEBAIC00 Mzc1LDYgKzQ0MzQsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlpbnRlbF9kcC0+Y29tcGxp YW5jZV90ZXN0X2FjdGl2ZSA9IDA7Cj4gIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBl ID0gMDsKPiAgCQlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2RhdGEgPSAwOwo+ICsJCWludGVs X2RwLT5jb21wbGlhbmNlX3Rlc3RfbGFuZV9jb3VudCA9IDA7Cj4gKwkJaW50ZWxfZHAtPmNvbXBs aWFuY2VfdGVzdF9saW5rX3JhdGUgPSAwOwoKU2FtZSB0aGluZyBhYm91dCBtYWtpbmcgY29tcGxp YW5jZSBzdWIgc3RydWN0LgoKPiAgCj4gIAkJaWYgKGludGVsX2RwLT5pc19tc3QpIHsKPiAgCQkJ RFJNX0RFQlVHX0tNUygiTVNUIGRldmljZSBtYXkgaGF2ZSBkaXNhcHBlYXJlZCAlZCB2cyAlZFxu IiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGNkMTMyYzIuLjFlODgyODggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC05NTgsNiArOTU4LDggQEAgc3RydWN0 IGludGVsX2RwIHsKPiAgCXVuc2lnbmVkIGxvbmcgY29tcGxpYW5jZV90ZXN0X3R5cGU7Cj4gIAl1 bnNpZ25lZCBsb25nIGNvbXBsaWFuY2VfdGVzdF9kYXRhOwo+ICAJYm9vbCBjb21wbGlhbmNlX3Rl c3RfYWN0aXZlOwo+ICsJdTggY29tcGxpYW5jZV90ZXN0X2xhbmVfY291bnQ7Cj4gKwl1OCBjb21w bGlhbmNlX3Rlc3RfbGlua19yYXRlOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2xzcGNvbiB7 CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=