From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH] drm/i915: Calculate common rates and max lane count in Long pulse handler Date: Wed, 7 Dec 2016 13:44:04 -0800 Message-ID: <20161207214404.GB5673@intel.com> References: <1480651329-21578-1-git-send-email-manasi.d.navare@intel.com> <87mvg7l9di.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 23B966E63C for ; Wed, 7 Dec 2016 21:41:17 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87mvg7l9di.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 List-Id: intel-gfx@lists.freedesktop.org SGkgSmFuaSwKCkFjdHVhbGx5IHRoaXMgcGF0Y2ggaXMgbm8gbG9uZ2VyIHZhbGlkLCBJIGhhdmUg aW5jbHVkZWQgYSBkaWZmZXJudCBpbnRlcmZhY2UKY2hhbmdlIHdpdGggdGhlIGxpbmsgdHJhaW5p bmcgcGF0Y2ggc2VyaWVzIGZvciBjYWxjdWxhdGluZyB0aGUgbWF4X3NpbmtfbGlua19yYXRlCmFu ZCBtYXhfc2lua19sYW5lX2NvdW50IGluIHRoZSBsb25nIHB1bHNlIGhhbmRsZXIgYW5kIG5vdCBy ZWNvbXB1dGUKaXQgZXZlcnl0aW1lIHdoZW4gdGhlIGNhbGxlciBuZWVkcyBjb21tb25fcmF0ZXMg YW5kIGxhbmVfY291bnQuIFRoZXNlIG1heCB2YWx1ZXMKd2lsbCBiZSB1c2VkIGluIHRoZSBjb21w dXRhdGlvbiBvZiBjb21tb25fcmF0ZXMgd2hlbiBjYWxsZXIgcmVxdWVzdHMgaXQgYW5kCnNhbWUg Zm9yIGxhbmUgY291bnQuCgpDb3VsZCB5b3UgcGxlYXNlIHJldmlldyB0aGUgbGF0ZXN0IHBhdGNo OgoKaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzEyNTc0NC8KCkFsc28g dGhpcyBzaW1wbGlmaWVzIHRoZSBmYWxsYmFjayBsb2dpYyBvbiBsaW5rIHRyYWluCmZhaWx1cmUg c2luY2UgSSBjYW4gdXBkYXRlIHRoZSBtYXggc2luayBsaW5rIHJhdGUgYW5kIG1heCBzaW5rIGxh bmUgY291bnQKdG8gbWF0Y2ggdGhlIGZhbGxiYWNrIHZhbHVlcyB0aHVzIGxvd2VyaW5nIHRoZSBt YXggY2FwYWJpbGl0aWVzIGFkdmVydGlzZWQKYnkgdGhlIHNpbmsuCgpNYW5hc2kKCk9uIFdlZCwg RGVjIDA3LCAyMDE2IGF0IDExOjI1OjI5UE0gKzAyMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+IE9u IEZyaSwgMDIgRGVjIDIwMTYsIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5j b20+IHdyb3RlOgo+ID4gU3VwcG9ydGVkIGxpbmsgcmF0ZSBjb21tb24gdG8gc291cmNlIGFuZCBz aW5rIGFzIHdlbGwgYXMgdGhlCj4gPiBtYXhpbXVtIHN1cHBvcnRlZCBsYW5lIGNvdW50IGJhc2Vk IG9uIHNvdXJjZSBhbmQgc2luayBjYXBhYmlsaXRpZXMgc2hvdWxkCj4gPiBiZSBzZXQgb25seSBv bmNlIG9uIGhvdHBsdWcgYW5kIHRoZW4gdXNlZCBhbnl0aW1lIHRoZXkgYXJlIHJlcXVlc3RlZC4K PiA+IFRoaXMgcGF0Y2ggY3JlYXRlcyBhbmQgYXJyYXkgb2YgY29tbW9uIHJhdGVzIGFuZCBtYXgg bGFuZSBjb3VudCBhcyB0aGUKPiA+IGludGVsX2RwIG1lbWJlci4gSXQgZ2V0cyBjYWxjdWxhdGVk IG9ubHkgb25jZSBpbiB0aGUgbG9uZyBwdWxzZSBoYW5kbGVyCj4gPiBhbmQgdGhlbiBnZXRzIHVz ZWQgd2hlbiByZXF1ZXN0ZWQgaW4gY29tcHV0ZV9jb25maWcgYW5kIG90aGVyIGZ1bmN0aW9ucy4K PiA+Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+IENjOiBWaWxs ZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYt Ynk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDM4ICsrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggfCAgNSArKysrKwo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCA5ZGZi ZGU0Li5kZTM3ODA3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTI3 NCw4ICsyNzQsNyBAQCBzdGF0aWMgaW50IGludGVyc2VjdF9yYXRlcyhjb25zdCBpbnQgKnNvdXJj ZV9yYXRlcywgaW50IHNvdXJjZV9sZW4sCj4gPiAgCXJldHVybiBrOwo+ID4gIH0KPiA+ICAKPiA+ IC1zdGF0aWMgaW50IGludGVsX2RwX2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ID4gLQkJCQkgaW50ICpjb21tb25fcmF0ZXMpCj4gPiArc3RhdGljIGludCBpbnRlbF9k cF9jb21tb25fcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAKPiBUaGlzIGhlcmUg aXMgYSBiYWQgaW50ZXJmYWNlIGNoYW5nZS4gQWZ0ZXIgdGhpcywgeW91IGNhbiBvbmx5IHVzZSB0 aGUKPiBmdW5jdGlvbiB0byB1cGRhdGUgaW50ZWxfZHAtPmNvbW1vbl9yYXRlcy4gSG93ZXZlciwg dGhpcyBkb2Vzbid0IGZpbmlzaAo+IHRoZSBqb2IsIGFuZCBsZWF2ZXMgaXQgdXAgdG8gdGhlIGNh bGxlciB0byBzZXQgaW50ZWxfZHAtPmNvbW1vbl9sZW4uIFRoZQo+IHNvbGUgcmVtYWluaW5nIGNh bGwgc2l0ZSBvZiBpbnRlbF9kcF9jb21tb25fcmF0ZXMoKSBzaG91bGQgc2V0IHRoZSBhbGFybQo+ IGJlbGxzIHJpbmdpbmcuCj4gCj4gUGxlYXNlIGtlZXAgaXQgYXMgYSBoZWxwZXIsIHBhc3Npbmcg aW4gY29tbW9uX3JhdGVzLiBUaGVyZSdzIGZvbGxvdy11cAo+IHdvcmsgdG8gYmUgZG9uZSBvbiB0 b3AsIGJ1dCB3ZSBjYW4gbGVhdmUgdGhhdCBmb3IgbGF0ZXIuCj4gCj4gPiAgewo+ID4gIAljb25z dCBpbnQgKnNvdXJjZV9yYXRlcywgKnNpbmtfcmF0ZXM7Cj4gPiAgCWludCBzb3VyY2VfbGVuLCBz aW5rX2xlbjsKPiA+IEBAIC0yODUsNyArMjg0LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21t b25fcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAKPiA+ICAJcmV0dXJuIGlu dGVyc2VjdF9yYXRlcyhzb3VyY2VfcmF0ZXMsIHNvdXJjZV9sZW4sCj4gPiAgCQkJICAgICAgIHNp bmtfcmF0ZXMsIHNpbmtfbGVuLAo+ID4gLQkJCSAgICAgICBjb21tb25fcmF0ZXMpOwo+ID4gKwkJ CSAgICAgICBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGlj IGVudW0gZHJtX21vZGVfc3RhdHVzCj4gPiBAQCAtMzEyLDcgKzMxMSw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfZHBfY29tbW9uX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCX0K PiA+ICAKPiA+ICAJbWF4X2xpbmtfY2xvY2sgPSBpbnRlbF9kcF9tYXhfbGlua19yYXRlKGludGVs X2RwKTsKPiA+IC0JbWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAp Owo+ID4gKwltYXhfbGFuZXMgPSBpbnRlbF9kcC0+bWF4X2xhbmVfY291bnQ7Cj4gPiAgCj4gPiAg CW1heF9yYXRlID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShtYXhfbGlua19jbG9jaywgbWF4X2xh bmVzKTsKPiA+ICAJbW9kZV9yYXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZCh0YXJnZXRfY2xv Y2ssIDE4KTsKPiA+IEBAIC0xNDMwLDggKzE0MjksNyBAQCBzdGF0aWMgdm9pZCBzbnByaW50Zl9p bnRfYXJyYXkoY2hhciAqc3RyLCBzaXplX3QgbGVuLAo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2Rw X3ByaW50X3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gIAljb25z dCBpbnQgKnNvdXJjZV9yYXRlcywgKnNpbmtfcmF0ZXM7Cj4gPiAtCWludCBzb3VyY2VfbGVuLCBz aW5rX2xlbiwgY29tbW9uX2xlbjsKPiA+IC0JaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9S VEVEX1JBVEVTXTsKPiA+ICsJaW50IHNvdXJjZV9sZW4sIHNpbmtfbGVuOwo+ID4gIAljaGFyIHN0 clsxMjhdOyAvKiBGSVhNRTogdG9vIGJpZyBmb3Igc3RhY2s/ICovCj4gPiAgCj4gPiAgCWlmICgo ZHJtX2RlYnVnICYgRFJNX1VUX0tNUykgPT0gMCkKPiA+IEBAIC0xNDQ1LDggKzE0NDMsOCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kcF9wcmludF9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gIAlzbnByaW50Zl9pbnRfYXJyYXkoc3RyLCBzaXplb2Yoc3RyKSwgc2lua19yYXRlcywg c2lua19sZW4pOwo+ID4gIAlEUk1fREVCVUdfS01TKCJzaW5rIHJhdGVzOiAlc1xuIiwgc3RyKTsK PiA+ICAKPiA+IC0JY29tbW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwg Y29tbW9uX3JhdGVzKTsKPiA+IC0Jc25wcmludGZfaW50X2FycmF5KHN0ciwgc2l6ZW9mKHN0ciks IGNvbW1vbl9yYXRlcywgY29tbW9uX2xlbik7Cj4gPiArCXNucHJpbnRmX2ludF9hcnJheShzdHIs IHNpemVvZihzdHIpLCBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzLAo+ID4gKwkJCSAgIGludGVsX2Rw LT5jb21tb25fbGVuKTsKPiA+ICAJRFJNX0RFQlVHX0tNUygiY29tbW9uIHJhdGVzOiAlc1xuIiwg c3RyKTsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMTQ5NSwxNCArMTQ5MywxMiBAQCBzdGF0aWMgaW50 IHJhdGVfdG9faW5kZXgoaW50IGZpbmQsIGNvbnN0IGludCAqcmF0ZXMpCj4gPiAgaW50Cj4gPiAg aW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsK PiA+IC0JaW50IHJhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4gPiAtCWludCBs ZW47Cj4gPiArCWludCBsZW4gPSBpbnRlbF9kcC0+Y29tbW9uX2xlbjsKPiA+ICAKPiA+IC0JbGVu ID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCByYXRlcyk7Cj4gPiAgCWlmIChXQVJO X09OKGxlbiA8PSAwKSkKPiA+ICAJCXJldHVybiAxNjIwMDA7Cj4gPiAgCj4gPiAtCXJldHVybiBy YXRlc1tsZW4gLSAxXTsKPiA+ICsJcmV0dXJuIGludGVsX2RwLT5jb21tb25fcmF0ZXNbbGVuIC0g MV07Cj4gPiAgfQo+ID4gIAo+ID4gIGludCBpbnRlbF9kcF9yYXRlX3NlbGVjdChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCBpbnQgcmF0ZSkKPiA+IEBAIC0xNTUwLDIyICsxNTQ2LDE4IEBAIHN0 YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwK PiA+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAt PmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiA+ICAJaW50IGxhbmVfY291bnQsIGNsb2NrOwo+ID4gIAlp bnQgbWluX2xhbmVfY291bnQgPSAxOwo+ID4gLQlpbnQgbWF4X2xhbmVfY291bnQgPSBpbnRlbF9k cF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gPiArCWludCBtYXhfbGFuZV9jb3VudCA9IGlu dGVsX2RwLT5tYXhfbGFuZV9jb3VudDsKPiA+ICAJLyogQ29udmVuaWVudGx5LCB0aGUgbGluayBC VyBjb25zdGFudHMgYmVjb21lIGluZGljZXMgd2l0aCBhIHNoaWZ0Li4uKi8KPiA+ICAJaW50IG1p bl9jbG9jayA9IDA7Cj4gPiAgCWludCBtYXhfY2xvY2s7Cj4gPiAgCWludCBicHAsIG1vZGVfcmF0 ZTsKPiA+ICAJaW50IGxpbmtfYXZhaWwsIGxpbmtfY2xvY2s7Cj4gPiAtCWludCBjb21tb25fcmF0 ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU10gPSB7fTsKPiA+IC0JaW50IGNvbW1vbl9sZW47Cj4g PiAgCXVpbnQ4X3QgbGlua19idywgcmF0ZV9zZWxlY3Q7Cj4gPiAgCj4gPiAtCWNvbW1vbl9sZW4g PSBpbnRlbF9kcF9jb21tb25fcmF0ZXMoaW50ZWxfZHAsIGNvbW1vbl9yYXRlcyk7Cj4gPiAtCj4g PiAgCS8qIE5vIGNvbW1vbiBsaW5rIHJhdGVzIGJldHdlZW4gc291cmNlIGFuZCBzaW5rICovCj4g PiAtCVdBUk5fT04oY29tbW9uX2xlbiA8PSAwKTsKPiA+ICsJV0FSTl9PTihpbnRlbF9kcC0+Y29t bW9uX2xlbiA8PSAwKTsKPiAKPiBUaGlzIHdvdWxkIGJlIGJldHRlciByaWdodCBhZnRlciBzZXR0 aW5nIGludGVsX2RwLT5jb21tb25fbGVuLgo+IAo+ID4gIAo+ID4gLQltYXhfY2xvY2sgPSBjb21t b25fbGVuIC0gMTsKPiA+ICsJbWF4X2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9sZW4gLSAxOwo+ ID4gIAo+ID4gIAlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikgJiYgIUhBU19EREkoZGV2X3By aXYpICYmIHBvcnQgIT0gUE9SVF9BKQo+ID4gIAkJcGlwZV9jb25maWctPmhhc19wY2hfZW5jb2Rl ciA9IHRydWU7Cj4gPiBAQCAtMTU5Nyw3ICsxNTg5LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9j b21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAo+ID4gIAlEUk1fREVC VUdfS01TKCJEUCBsaW5rIGNvbXB1dGF0aW9uIHdpdGggbWF4IGxhbmUgY291bnQgJWkgIgo+ID4g IAkJICAgICAgIm1heCBidyAlZCBwaXhlbCBjbG9jayAlaUtIelxuIiwKPiA+IC0JCSAgICAgIG1h eF9sYW5lX2NvdW50LCBjb21tb25fcmF0ZXNbbWF4X2Nsb2NrXSwKPiA+ICsJCSAgICAgIG1heF9s YW5lX2NvdW50LCBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW21heF9jbG9ja10sCj4gPiAgCQkgICAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsKPiA+ICAKPiA+ICAJLyogV2FsayB0aHJvdWdo IGFsbCBicHAgdmFsdWVzLiBMdWNraWx5IHRoZXkncmUgYWxsIG5pY2VseSBzcGFjZWQgd2l0aCAy Cj4gPiBAQCAtMTYzMyw3ICsxNjI1LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2Jw cChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCQlsYW5lX2NvdW50IDw9IG1heF9s YW5lX2NvdW50Owo+ID4gIAkJCQlsYW5lX2NvdW50IDw8PSAxKSB7Cj4gPiAgCj4gPiAtCQkJCWxp bmtfY2xvY2sgPSBjb21tb25fcmF0ZXNbY2xvY2tdOwo+ID4gKwkJCQlsaW5rX2Nsb2NrID0gaW50 ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107Cj4gPiAgCQkJCWxpbmtfYXZhaWwgPSBpbnRlbF9k cF9tYXhfZGF0YV9yYXRlKGxpbmtfY2xvY2ssCj4gPiAgCQkJCQkJCQkgICAgbGFuZV9jb3VudCk7 Cj4gPiAgCj4gPiBAQCAtMTY2Myw3ICsxNjU1LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21w dXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAlwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gPiAgCj4gPiAgCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9 IGJwcDsKPiA+IC0JcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBjb21tb25fcmF0ZXNbY2xvY2td Owo+ID4gKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0ZXNb Y2xvY2tdOwo+ID4gIAo+ID4gIAlpbnRlbF9kcF9jb21wdXRlX3JhdGUoaW50ZWxfZHAsIHBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gIAkJCSAgICAgICZsaW5rX2J3LCAmcmF0ZV9zZWxlY3Qp Owo+ID4gQEAgLTQ0MDAsNyArNDM5Miw5IEBAIHN0YXRpYyBib29sIGludGVsX2RpZ2l0YWxfcG9y dF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJICAg ICAgeWVzbm8oaW50ZWxfZHBfc291cmNlX3N1cHBvcnRzX2hicjIoaW50ZWxfZHApKSwKPiA+ICAJ CSAgICAgIHllc25vKGRybV9kcF90cHMzX3N1cHBvcnRlZChpbnRlbF9kcC0+ZHBjZCkpKTsKPiA+ ICAKPiA+ICsJaW50ZWxfZHAtPmNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fcmF0ZXMoaW50 ZWxfZHApOwo+IAo+IFNlZSBob3cgdGhpcyBsb29rcyBiYWQsIGFzIHVwZGF0aW5nIG9mIHRoZSBs ZW5ndGggYW5kIGNvbnRlbnRzIGFyZQo+IGRpdmlkZWQgYmV0d2VlbiBjYWxsZXIgYW5kIGNhbGxl ZT8KPiAKPiA+ICAJaW50ZWxfZHBfcHJpbnRfcmF0ZXMoaW50ZWxfZHApOwo+ID4gKwlpbnRlbF9k cC0+bWF4X2xhbmVfY291bnQgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4g PiAgCj4gPiAgCWludGVsX2RwX3JlYWRfZGVzYyhpbnRlbF9kcCk7Cj4gPiAgCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggMWQxMjZjMi4uN2M4ODg1ZSAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTkwNiw2ICs5MDYsMTEgQEAgc3RydWN0IGlu dGVsX2RwIHsKPiA+ICAJLyogc2luayByYXRlcyBhcyByZXBvcnRlZCBieSBEUF9TVVBQT1JURURf TElOS19SQVRFUyAqLwo+ID4gIAl1aW50OF90IG51bV9zaW5rX3JhdGVzOwo+ID4gIAlpbnQgc2lu a19yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXTsKPiA+ICsJLyogc3VwcG9ydGVkIGxpbmsg cmF0ZXMgY29tbW9uIGJldHdlZW4gc291cmNlIGFuZCBzaW5rICovCj4gPiArCWludCBjb21tb25f cmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU107Cj4gPiArCWludCBjb21tb25fbGVuOwo+ID4g KwkvKiBNYXhpbXVtIHN1cHBvcnRlZCBsYW5lIGNvdW50IGNvbW1vbiBiZXR3ZWVuIHNvdXJjZSBh bmQgc2luayAqLwo+ID4gKwl1aW50OF90IG1heF9sYW5lX2NvdW50Owo+ID4gIAkvKiBzaW5rIG9y IGJyYW5jaCBkZXNjcmlwdG9yICovCj4gPiAgCXN0cnVjdCBpbnRlbF9kcF9kZXNjIGRlc2M7Cj4g PiAgCXN0cnVjdCBkcm1fZHBfYXV4IGF1eDsKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwg T3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==