From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v4 11/11] drm/i915: Implement Link Rate fallback on Link training failure Date: Thu, 13 Apr 2017 22:16:12 +0300 Message-ID: <87fuhc5dab.fsf@intel.com> References: <16ca48b1e74c618929245e9a085b9e3483c3a16d.1491485983.git.jani.nikula@intel.com> <20170413172522.GB9558@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 465D389AAD for ; Thu, 13 Apr 2017 19:16:33 +0000 (UTC) In-Reply-To: <20170413172522.GB9558@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dhinakaran.pandiyan@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxMyBBcHIgMjAxNywgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4gd3JvdGU6Cj4gSGkgSmFuaSwKPgo+IFRoaXMgcGF0Y2ggaGFzIHRoZSBuZWNlc3Nhcnkg QUNLcyBhbmQgUi1icywgYW55dGhpbmcgZWxzZQo+IGJsb2NraW5nIHRoaXMgZnJvbSBnZXR0aW5n IG1lcmdlZD8KClB1c2hlZCwgZmluYWxseSwgc29ycnkgZm9yIHRoZSBkZWxheS4KCkJSLApKYW5p LgoKPgo+IFJlZ2FyZHMKPiBNYW5hc2kKPgo+IE9uIFRodSwgQXByIDA2LCAyMDE3IGF0IDA0OjQ0 OjE5UE0gKzAzMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+PiBGcm9tOiBNYW5hc2kgTmF2YXJlIDxt YW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+PiAKPj4gSWYgbGluayB0cmFpbmluZyBhdCBhIGxp bmsgcmF0ZSBvcHRpbWFsIGZvciBhIHBhcnRpY3VsYXIKPj4gbW9kZSBmYWlscyBkdXJpbmcgbW9k ZXNldCdzIGF0b21pYyBjb21taXQgcGhhc2UsIHRoZW4gd2UKPj4gbGV0IHRoZSBtb2Rlc2V0IGNv bXBsZXRlIGFuZCB0aGVuIHJldHJ5LiBXZSBzYXZlIHRoZSBsaW5rIHJhdGUKPj4gdmFsdWUgYXQg d2hpY2ggbGluayB0cmFpbmluZyBmYWlsZWQsIHVwZGF0ZSB0aGUgbGluayBzdGF0dXMgcHJvcGVy dHkKPj4gdG8gIkJBRCIgYW5kIHVzZSBhIGxvd2VyIGxpbmsgcmF0ZSB0byBwcnVuZSB0aGUgbW9k ZXMuIEl0IHdpbGwgcmVkbwo+PiB0aGUgbW9kZXNldCBvbiB0aGUgY3VycmVudCBtb2RlIGF0IGxv d2VyIGxpbmsgcmF0ZSBvciBpZiB0aGUgY3VycmVudAo+PiBtb2RlIGdldHMgcHJ1bmVkIGR1ZSB0 byBsb3dlciBsaW5rIGNvbnN0cmFpbnRzIHRoZW4sIGl0IHdpbGwgc2VuZCBhCj4+IGhvdHBsdWcg dWV2ZW50IGZvciB1c2Vyc3BhY2UgdG8gaGFuZGxlIGl0Lgo+PiAKPj4gVGhpcyBpcyBhbHNvIHJl cXVpcmVkIHRvIHBhc3MgRFAgQ1RTIHRlc3RzIDQuMy4xLjMsIDQuMy4xLjQsCj4+IDQuMy4xLjYu Cj4+IAo+PiBUaGlzIHBhdGNoIGlzIGEgcmVzZW5kIG9mIHRoZSBvcmlnaW5hbCBjb21taXQgaWQg KDIzM2NlODgxZGQ5MWZiCj4+ICJkcm0vaTkxNTogSW1wbGVtZW50IExpbmsgUmF0ZSBmYWxsYmFj ayBvbiBMaW5rIHRyYWluaW5nIGZhaWx1cmUiKQo+PiB3aGljaCBnb3QgcmV2ZXJ0ZWQgaW4gdGhp cyBjb21taXQgaWQgKGFmYzFlYmY0NTYyYTE0IFJldmVydAo+PiAiZHJtL2k5MTU6IEltcGxlbWVu dCBMaW5rIFJhdGUgZmFsbGJhY2sgb24gTGluayB0cmFpbmluZyBmYWlsdXJlIikKPj4gZHVlIHRv IENJIGZhaWx1cmVzLgo+PiAKPj4gQWZ0ZXIgaW52ZXN0aWdhdGluZyB0aGUgQ0kgZmFpbHVyZXMg aXQgd2FzIGZvdW5kIHRoYXQgdGhlc2UKPj4gd2VyZSBlc3NlbnRpYWxseSB0aGUgZmFpbHVyZXMg d2hpY2ggd2VyZSBhbHdheXMgdGhlcmUgYnV0IGhpZGRlbiBiZWNhdXNlCj4+IHRoZXkgdXNlZCB0 byBiZSBEUk1fREVCVUdfS01TIG1lc3NhZ2VzIGZvciBsaW5rIGZhaWx1cmVzIHNvIG5ldmVyIGdv dAo+PiBjYXVnaHQgYnkgQ0kuIEJ1dCBub3cgdGhpcyBwYXRjaCBhY3R1YWxseSB0aHJvd3MgRFJN X0VSUk9SIGlmIHRoZSBsaW5rCj4+IHRyYWluaW5nIGZhaWxzIGF0IFJCUiBhbmQgMSBsYW5lLiBT byBpdCBjYXVnaHQgdGhlc2UgbGluayB0cmFpbiBmYWlsdXJlcy4KPj4gCj4+IFRoZXJlIHdlcmUg dHdvIGZhaWx1cmVzOgo+PiAxLiBPbiBTS0wgNjcwMGsgdGhpcyB3YXMgYmVjYXVzZSB0aGUgbWFj aGluZSBpbiBDSSBsYWIgaXMgYSBTS0wgZGVza3RvcAo+PiB3aXRob3V0IGVEUCBvbiBQb3J0IEEu IEJ1dCBvdXIgVkJUIGluaXRpYWxpemF0aW9uIGNvZGUgaW4gdGhlIGRyaXZlciB3cml0ZXMKPj4g VkJUIGRlZmF1bHRzIGluIGEgd2F5IHRoYXQgaXQgYWx3YXlzIHNldHMgRFAgZmxhZyBvbiBQb3J0 IEEgYW5kIHRoaXMgZG9lcwo+PiBub3QgZ2V0IGNsZWFyZWQgYWZ0ZXIgcGFyc2luZyB0aGUgVkJU IG91dHB1dHMuIFRoaXMgaGFzIGJlZW4gZml4ZWQgaW4KPj4gY29tbWl0IGlkIChiYjFkMTMyOTM1 YzJmOCAiZHJtL2k5MTUvdmJ0OiBzcGxpdCBvdXQgZGVmYXVsdHMgdGhhdCBhcmUgc2V0Cj4+IHdo ZW4gdGhlcmUgaXMgbm8gVkJUKSBhbmQgKDY2NTc4ODU3MmM2NDEwYiAiZHJtL2k5MTUvdmJ0OiBk b24ndCBwcm9wYWdhdGUKPj4gZXJyb3JzIGZyb20gaW50ZWxfYmlvc19pbml0KCkpCj4+IAo+PiAy LiBPbiBJTEstNjUwIGRlc2t0b3AgLSBUaGlzIHdhcyBoYXBwZW5pbmcgYmVjYXVzZSBvZiBhIGJh ZCBtb25pdG9yIGRlc2t0b3AKPj4gY29tYmluYXRpb24uIEkgc3dpdGNoZWQgdGhlIG1vbml0b3Ig aW4gdGhlIENJIGxhYiBhbmQgdGhhdCBoZWxwZWQgZ2V0IHJpZAo+PiBvZiB0aGUgbGluayBmYWls dXJlcyBvbiBJTEsgc3lzdGVtLgo+PiAKPj4gdjEwOgo+PiAqIFJlYmFzZSBvbiBkcm0tdGlwIGFu ZCByZXNlbmQgYWZ0ZXIgcmV2ZXJ0Cj4+IHY5Ogo+PiAqIFVzZSB0aGUgdHJpbW1lZCBtYXggdmFs dWVzIG9mIGxpbmsgcmF0ZS9sYW5lIGNvdW50IGJhc2VkIG9uCj4+IGxpbmsgdHJhaW4gZmFsbGJh Y2sgKERhbmllbCBWZXR0ZXIpCj4+IHY4Ogo+PiAqIFNldCBsaW5rX3N0YXR1cyB0byBCQUQgZmly c3QgYW5kIHRoZW4gY2FsbCBtb2RlX3ZhbGlkIChKYW5pIE5pa3VsYSkKPj4gdjc6Cj4+IFJlbW92 ZSB0aGUgcmVkdW5kYW50IHZhcmlhYmxlIGluIHByZXZpb3VzIHBhdGNoIGl0c2VsZgo+PiB2NjoK Pj4gKiBPYnRhaW4gbGluayByYXRlIGluZGV4IGZyb20gZmFsbGJhY2tfbGlua19yYXRlIHVzaW5n Cj4+IHRoZSBoZWxwZXIgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4IChKYW5pIE5pa3VsYSkKPj4g KiBJbmNsdWRlIGZhbGxiYWNrIHdpdGhpbiBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluIChKYW5p IE5pa3VsYSkKPj4gdjU6Cj4+ICogTW92ZSBzZXQgbGluayBzdGF0dXMgdG8gZHJtIGNvcmUgKERh bmllbCBWZXR0ZXIsIEphbmkgTmlrdWxhKQo+PiB2NDoKPj4gKiBBZGQgZmFsbGJhY2sgc3VwcG9y dCBmb3Igbm9uIERESSBwbGF0Zm9ybXMgdG9vCj4+ICogU2V0IGNvbm5lY3Rvci0+bGluayBzdGF0 dXMgaW5zaWRlIHNldF9saW5rX3N0YXR1cyBmdW5jdGlvbgo+PiAoSmFuaSBOaWt1bGEpCj4+IHYz Ogo+PiAqIFNldCBsaW5rIHN0YXR1cyBwcm9wZXJ0eSB0byBCQWQgdW5jb25kaXRpb25hbGx5IChK YW5pIE5pa3VsYSkKPj4gKiBEb250IHVzZSB0d28gc2VwYXJhdGUgdmFyaWFibGVzIGxpbmtfdHJh aW5fZmFpbGVkIGFuZCBsaW5rX3N0YXR1cwo+PiB0byBpbmRpY2F0ZSBzYW1lIHRoaW5nIChKYW5p IE5pa3VsYSkKPj4gdjI6Cj4+ICogU3F1YXNoZWQgYSBmZXcgcGF0Y2hlcyAoSmFuaSBOaWt1bGEp Cj4+IAo+PiBBY2tlZC1ieTogVG9ueSBDaGVuZyA8dG9ueS5jaGVuZ0BhbWQuY29tPgo+PiBBY2tl ZC1ieTogSGFycnkgV2VudGxhbmQgPEhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Cj4+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+PiBDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8 bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPj4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxq YW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYyAgICAgICAgICAgICAgIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfCAyMiArKysrKysr KysrKysrKysrKysrKy0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAg ICAgICAgICAgfCAgMyArKysKPj4gIDMgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBpbmRleCA2OTE1 ZDg5YTIzOGMuLmYyZDc5MmExYjE4ZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ IEBAIC01OTc3LDYgKzU5NzcsMjkgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3JfcG9ydF9pbmZv KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+PiAgCX0KPj4gIH0K Pj4gIAo+PiArc3RhdGljIHZvaWQgaW50ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpp bnRlbF9jb25uZWN0b3I7Cj4+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPj4g Kwo+PiArCWludGVsX2Nvbm5lY3RvciA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmludGVs X2Nvbm5lY3RvciksCj4+ICsJCQkJICAgICAgIG1vZGVzZXRfcmV0cnlfd29yayk7Cj4+ICsJY29u bmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPj4gKwlEUk1fREVCVUdfS01TKCJbQ09O TkVDVE9SOiVkOiVzXVxuIiwgY29ubmVjdG9yLT5iYXNlLmlkLAo+PiArCQkgICAgICBjb25uZWN0 b3ItPm5hbWUpOwo+PiArCj4+ICsJLyogR3JhYiB0aGUgbG9ja3MgYmVmb3JlIGNoYW5naW5nIGNv bm5lY3RvciBwcm9wZXJ0eSovCj4+ICsJbXV0ZXhfbG9jaygmY29ubmVjdG9yLT5kZXYtPm1vZGVf Y29uZmlnLm11dGV4KTsKPj4gKwkvKiBTZXQgY29ubmVjdG9yIGxpbmsgc3RhdHVzIHRvIEJBRCBh bmQgc2VuZCBhIFVldmVudCB0byBub3RpZnkKPj4gKwkgKiB1c2Vyc3BhY2UgdG8gZG8gYSBtb2Rl c2V0Lgo+PiArCSAqLwo+PiArCWRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJv cGVydHkoY29ubmVjdG9yLAo+PiArCQkJCQkJICAgIERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCk7 Cj4+ICsJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ PiArCS8qIFNlbmQgSG90cGx1ZyB1ZXZlbnQgc28gdXNlcnNwYWNlIGNhbiByZXByb2JlICovCj4+ ICsJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChjb25uZWN0b3ItPmRldik7Cj4+ICt9Cj4+ ICsKPj4gIGJvb2wKPj4gIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiAgCQkJc3RydWN0IGludGVsX2Nvbm5lY3RvciAq aW50ZWxfY29ubmVjdG9yKQo+PiBAQCAtNTk4OSw2ICs2MDEyLDEwIEBAIGludGVsX2RwX2luaXRf Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiAg CWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4+ICAJaW50IHR5cGU7Cj4+ ICAKPj4gKwkvKiBJbml0aWFsaXplIHRoZSB3b3JrIGZvciBtb2Rlc2V0IGluIGNhc2Ugb2YgbGlu ayB0cmFpbiBmYWlsdXJlICovCj4+ICsJSU5JVF9XT1JLKCZpbnRlbF9jb25uZWN0b3ItPm1vZGVz ZXRfcmV0cnlfd29yaywKPj4gKwkJICBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5X3dvcmtfZm4pOwo+ PiArCj4+ICAJaWYgKFdBUk4oaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA8IDEsCj4+ICAJCSAi Tm90IGVub3VnaCBsYW5lcyAoJWQpIGZvciBEUCBvbiBwb3J0ICVjXG4iLAo+PiAgCQkgaW50ZWxf ZGlnX3BvcnQtPm1heF9sYW5lcywgcG9ydF9uYW1lKHBvcnQpKSkKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+PiBpbmRleCA2OTRhZDBmZmI1MjMu LmI3OWMxYzBlNDA0YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfbGlua190cmFpbmluZy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw X2xpbmtfdHJhaW5pbmcuYwo+PiBAQCAtMzE0LDYgKzMxNCwyNCBAQCB2b2lkIGludGVsX2RwX3N0 b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiAgdm9pZAo+PiAgaW50 ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiAgewo+ PiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+PiAt CWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5h dHRhY2hlZF9jb25uZWN0b3I7Cj4+ICsKPj4gKwlpZiAoIWludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApKQo+PiArCQlnb3RvIGZhaWx1cmVfaGFuZGxpbmc7Cj4+ ICsJaWYgKCFpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVs X2RwKSkKPj4gKwkJZ290byBmYWlsdXJlX2hhbmRsaW5nOwo+PiArCj4+ICsJRFJNX0RFQlVHX0tN UygiTGluayBUcmFpbmluZyBQYXNzZWQgYXQgTGluayBSYXRlID0gJWQsIExhbmUgY291bnQgPSAl ZCIsCj4+ICsJCSAgICAgIGludGVsX2RwLT5saW5rX3JhdGUsIGludGVsX2RwLT5sYW5lX2NvdW50 KTsKPj4gKwlyZXR1cm47Cj4+ICsKPj4gKyBmYWlsdXJlX2hhbmRsaW5nOgo+PiArCURSTV9ERUJV R19LTVMoIkxpbmsgVHJhaW5pbmcgZmFpbGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50 ID0gJWQiLAo+PiArCQkgICAgICBpbnRlbF9kcC0+bGlua19yYXRlLCBpbnRlbF9kcC0+bGFuZV9j b3VudCk7Cj4+ICsJaWYgKCFpbnRlbF9kcF9nZXRfbGlua190cmFpbl9mYWxsYmFja192YWx1ZXMo aW50ZWxfZHAsCj4+ICsJCQkJCQkgICAgIGludGVsX2RwLT5saW5rX3JhdGUsCj4+ICsJCQkJCQkg ICAgIGludGVsX2RwLT5sYW5lX2NvdW50KSkKPj4gKwkJLyogU2NoZWR1bGUgYSBIb3RwbHVnIFVl dmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+PiArCQlzY2hlZHVsZV93b3Jr KCZpbnRlbF9jb25uZWN0b3ItPm1vZGVzZXRfcmV0cnlfd29yayk7Cj4+ICsJcmV0dXJuOwo+PiAg fQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBpbmRleCA1ZjZlMWFhZDkwOWQuLmQzNjAy NmVmZjdjZCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gQEAgLTMyMSw2ICsz MjEsOSBAQCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKPj4gIAl2b2lkICpwb3J0OyAvKiBzdG9y ZSB0aGlzIG9wYXF1ZSBhcyBpdHMgaWxsZWdhbCB0byBkZXJlZmVyZW5jZSBpdCAqLwo+PiAgCj4+ ICAJc3RydWN0IGludGVsX2RwICptc3RfcG9ydDsKPj4gKwo+PiArCS8qIFdvcmsgc3RydWN0IHRv IHNjaGVkdWxlIGEgdWV2ZW50IG9uIGxpbmsgdHJhaW4gZmFpbHVyZSAqLwo+PiArCXN0cnVjdCB3 b3JrX3N0cnVjdCBtb2Rlc2V0X3JldHJ5X3dvcms7Cj4+ICB9Owo+PiAgCj4+ICBzdHJ1Y3QgZHBs bCB7Cj4+IC0tIAo+PiAyLjEuNAo+PiAKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==