From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v3 07/14] drm/i915/dp: cache common rates with sink rates Date: Tue, 4 Apr 2017 18:21:50 -0700 Message-ID: <20170405012150.GG2688@intel.com> References: <89e4c2345fb21bc59fdb39c87d07d25b8286c6df.1490712890.git.jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 216A36E0EB for ; Wed, 5 Apr 2017 01:17:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <89e4c2345fb21bc59fdb39c87d07d25b8286c6df.1490712890.git.jani.nikula@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: intel-gfx@lists.freedesktop.org, dhinakaran.pandiyan@intel.com List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQtYnk6IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgoKTWFuYXNpCgpPbiBUdWUs IE1hciAyOCwgMjAxNyBhdCAwNTo1OTowN1BNICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiBO b3cgdGhhdCBzb3VyY2UgcmF0ZXMgYXJlIHN0YXRpYyBhbmQgc2luayByYXRlcyBhcmUgdXBkYXRl ZCB3aGVuZXZlcgo+IERQQ0QgaXMgdXBkYXRlZCwgd2UgY2FuIGRvIGFuZCBjYWNoZSB0aGUgaW50 ZXJzZWN0aW9uIG9mIHRoZW0gd2hlbmV2ZXIKPiBzaW5rIHJhdGVzIGFyZSB1cGRhdGVkLiBUaGlz IHJlZHVjZXMgY29kZSBjb21wbGV4aXR5LCBhcyB3ZSBkb24ndCBoYXZlCj4gdG8ga2VlcCBjYWxs aW5nIHRoZSBmdW5jdGlvbnMgdG8gaW50ZXJzZWN0LiBXZSBhbHNvIGdldCByaWQgb2Ygc2V2ZXJh bAo+IGNvbW1vbiByYXRlcyBhcnJheXMgb24gc3RhY2suCj4gCj4gTGltaXRpbmcgdGhlIGNvbW1v biByYXRlcyBieSBhIG1heCBsaW5rIHJhdGUgY2FuIGJlIGRvbmUgYnkgcGlja2luZyB0aGUKPiBm aXJzdCBOIGVsZW1lbnRzIG9mIHRoZSBjYWNoZWQgY29tbW9uIHJhdGVzLgo+IAo+IHYyOiBnZXQg cmlkIG9mIHRoZSBsb2NhbCBjb21tb25fcmF0ZXMgdmFyaWFibGUgKE1hbmFzaSkKPiB2MzogZG9u J3QgY2xvYmJlciBjYWNoZWQgZURQIHJhdGVzIG9uIHNob3J0IHB1bHNlIChWaWxsZSkKPiAKPiBD YzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBDYzogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMyArKwo+ ICAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGU0NjUwZjE2MjVjYy4uMTgwOGFmNmQ2MzVk IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTI4NCwxNyArMjg0LDI5IEBAIHN0 YXRpYyBpbnQgaW50ZWxfZHBfcmF0ZV9pbmRleChjb25zdCBpbnQgKnJhdGVzLCBpbnQgbGVuLCBp bnQgcmF0ZSkKPiAgCXJldHVybiAtMTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpbnRlbF9kcF9j b21tb25fcmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAtCQkJCSBpbnQgKmNvbW1v bl9yYXRlcykKPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2NvbW1vbl9yYXRlcyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlpbnQgbWF4X3JhdGUgPSBpbnRlbF9kcC0+bWF4 X3NpbmtfbGlua19yYXRlOwo+IC0JaW50IGksIGNvbW1vbl9sZW47Cj4gKwlXQVJOX09OKCFpbnRl bF9kcC0+bnVtX3NvdXJjZV9yYXRlcyB8fCAhaW50ZWxfZHAtPm51bV9zaW5rX3JhdGVzKTsKPiAg Cj4gLQljb21tb25fbGVuID0gaW50ZXJzZWN0X3JhdGVzKGludGVsX2RwLT5zb3VyY2VfcmF0ZXMs Cj4gLQkJCQkgICAgIGludGVsX2RwLT5udW1fc291cmNlX3JhdGVzLAo+IC0JCQkJICAgICBpbnRl bF9kcC0+c2lua19yYXRlcywKPiAtCQkJCSAgICAgaW50ZWxfZHAtPm51bV9zaW5rX3JhdGVzLAo+ IC0JCQkJICAgICBjb21tb25fcmF0ZXMpOwo+ICsJaW50ZWxfZHAtPm51bV9jb21tb25fcmF0ZXMg PSBpbnRlcnNlY3RfcmF0ZXMoaW50ZWxfZHAtPnNvdXJjZV9yYXRlcywKPiArCQkJCQkJICAgICBp bnRlbF9kcC0+bnVtX3NvdXJjZV9yYXRlcywKPiArCQkJCQkJICAgICBpbnRlbF9kcC0+c2lua19y YXRlcywKPiArCQkJCQkJICAgICBpbnRlbF9kcC0+bnVtX3NpbmtfcmF0ZXMsCj4gKwkJCQkJCSAg ICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRlcyk7Cj4gKwo+ICsJLyogUGFyYW5vaWEsIHRoZXJlIHNo b3VsZCBhbHdheXMgYmUgc29tZXRoaW5nIGluIGNvbW1vbi4gKi8KPiArCWlmIChXQVJOX09OKGlu dGVsX2RwLT5udW1fY29tbW9uX3JhdGVzID09IDApKSB7Cj4gKwkJaW50ZWxfZHAtPmNvbW1vbl9y YXRlc1swXSA9IGRlZmF1bHRfcmF0ZXNbMF07Cj4gKwkJaW50ZWxfZHAtPm51bV9jb21tb25fcmF0 ZXMgPSAxOwo+ICsJfQo+ICt9Cj4gKwo+ICsvKiBnZXQgbGVuZ3RoIG9mIGNvbW1vbiByYXRlcyBw b3RlbnRpYWxseSBsaW1pdGVkIGJ5IG1heF9yYXRlICovCj4gK3N0YXRpYyBpbnQgaW50ZWxfZHBf Y29tbW9uX2xlbl9yYXRlX2xpbWl0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJCQkJ ICBpbnQgbWF4X3JhdGUpCj4gK3sKPiArCWNvbnN0IGludCAqY29tbW9uX3JhdGVzID0gaW50ZWxf ZHAtPmNvbW1vbl9yYXRlczsKPiArCWludCBpLCBjb21tb25fbGVuID0gaW50ZWxfZHAtPm51bV9j b21tb25fcmF0ZXM7Cj4gIAo+ICAJLyogTGltaXQgcmVzdWx0cyBieSBwb3RlbnRpYWxseSByZWR1 Y2VkIG1heCByYXRlICovCj4gIAlmb3IgKGkgPSAwOyBpIDwgY29tbW9uX2xlbjsgaSsrKSB7Cj4g QEAgLTMwNSwyNSArMzE3LDIzIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tbW9uX3JhdGVzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGlj IGludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwK PiAtCQkJCSAgICBpbnQgKmNvbW1vbl9yYXRlcywgaW50IGxpbmtfcmF0ZSkKPiArc3RhdGljIGlu dCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 IGxpbmtfcmF0ZSkKPiAgewo+ICAJaW50IGNvbW1vbl9sZW47Cj4gIAo+IC0JY29tbW9uX2xlbiA9 IGludGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKPiArCWNvbW1v bl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQoaW50ZWxfZHAsCj4gKwkJCQkJ CSAgICBpbnRlbF9kcC0+bWF4X3NpbmtfbGlua19yYXRlKTsKPiAgCj4gLQlyZXR1cm4gaW50ZWxf ZHBfcmF0ZV9pbmRleChjb21tb25fcmF0ZXMsIGNvbW1vbl9sZW4sIGxpbmtfcmF0ZSk7Cj4gKwly ZXR1cm4gaW50ZWxfZHBfcmF0ZV9pbmRleChpbnRlbF9kcC0+Y29tbW9uX3JhdGVzLCBjb21tb25f bGVuLCBsaW5rX3JhdGUpOwo+ICB9Cj4gIAo+ICBpbnQgaW50ZWxfZHBfZ2V0X2xpbmtfdHJhaW5f ZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCQkJICAgIGlu dCBsaW5rX3JhdGUsIHVpbnQ4X3QgbGFuZV9jb3VudCkKPiAgewo+IC0JaW50IGNvbW1vbl9yYXRl c1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXTsKPiArCWNvbnN0IGludCAqY29tbW9uX3JhdGVzID0g aW50ZWxfZHAtPmNvbW1vbl9yYXRlczsKPiAgCWludCBsaW5rX3JhdGVfaW5kZXg7Cj4gIAo+IC0J bGlua19yYXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KGludGVsX2RwLAo+IC0J CQkJCQkgICBjb21tb25fcmF0ZXMsCj4gLQkJCQkJCSAgIGxpbmtfcmF0ZSk7Cj4gKwlsaW5rX3Jh dGVfaW5kZXggPSBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoaW50ZWxfZHAsIGxpbmtfcmF0ZSk7 Cj4gIAlpZiAobGlua19yYXRlX2luZGV4ID4gMCkgewo+ICAJCWludGVsX2RwLT5tYXhfc2lua19s aW5rX3JhdGUgPSBjb21tb25fcmF0ZXNbbGlua19yYXRlX2luZGV4IC0gMV07Cj4gIAkJaW50ZWxf ZHAtPm1heF9zaW5rX2xhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+IEBAIC0xNTA2LDggKzE1MTYs NiBAQCBzdGF0aWMgdm9pZCBzbnByaW50Zl9pbnRfYXJyYXkoY2hhciAqc3RyLCBzaXplX3QgbGVu LAo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJpbnRfcmF0ZXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiAgewo+IC0JaW50IGNvbW1vbl9sZW47Cj4gLQlpbnQgY29tbW9uX3JhdGVz W0RQX01BWF9TVVBQT1JURURfUkFURVNdOwo+ICAJY2hhciBzdHJbMTI4XTsgLyogRklYTUU6IHRv byBiaWcgZm9yIHN0YWNrPyAqLwo+ICAKPiAgCWlmICgoZHJtX2RlYnVnICYgRFJNX1VUX0tNUykg PT0gMCkKPiBAQCAtMTUyMSw4ICsxNTI5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJpbnRf cmF0ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQkJICAgaW50ZWxfZHAtPnNpbmtf cmF0ZXMsIGludGVsX2RwLT5udW1fc2lua19yYXRlcyk7Cj4gIAlEUk1fREVCVUdfS01TKCJzaW5r IHJhdGVzOiAlc1xuIiwgc3RyKTsKPiAgCj4gLQljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9u X3JhdGVzKGludGVsX2RwLCBjb21tb25fcmF0ZXMpOwo+IC0Jc25wcmludGZfaW50X2FycmF5KHN0 ciwgc2l6ZW9mKHN0ciksIGNvbW1vbl9yYXRlcywgY29tbW9uX2xlbik7Cj4gKwlzbnByaW50Zl9p bnRfYXJyYXkoc3RyLCBzaXplb2Yoc3RyKSwKPiArCQkJICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRl cywgaW50ZWxfZHAtPm51bV9jb21tb25fcmF0ZXMpOwo+ICAJRFJNX0RFQlVHX0tNUygiY29tbW9u IHJhdGVzOiAlc1xuIiwgc3RyKTsKPiAgfQo+ICAKPiBAQCAtMTU2MCwxNCArMTU2OCwxNCBAQCBi b29sIGludGVsX2RwX3JlYWRfZGVzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICBpbnQK PiAgaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7 Cj4gLQlpbnQgcmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU10gPSB7fTsKPiAgCWludCBsZW47 Cj4gIAo+IC0JbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCByYXRlcyk7Cj4g KwlsZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQoaW50ZWxfZHAsCj4gKwkJCQkJ ICAgICBpbnRlbF9kcC0+bWF4X3NpbmtfbGlua19yYXRlKTsKPiAgCWlmIChXQVJOX09OKGxlbiA8 PSAwKSkKPiAgCQlyZXR1cm4gMTYyMDAwOwo+ICAKPiAtCXJldHVybiByYXRlc1tsZW4gLSAxXTsK PiArCXJldHVybiBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xlbiAtIDFdOwo+ICB9Cj4gIAo+ICBp bnQgaW50ZWxfZHBfcmF0ZV9zZWxlY3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHJh dGUpCj4gQEAgLTE2MzYsMTEgKzE2NDQsMTEgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpbnQgbGlua19yYXRlX2luZGV4Owo+ICAJ aW50IGJwcCwgbW9kZV9yYXRlOwo+ICAJaW50IGxpbmtfYXZhaWwsIGxpbmtfY2xvY2s7Cj4gLQlp bnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4gIAlpbnQgY29t bW9uX2xlbjsKPiAgCXVpbnQ4X3QgbGlua19idywgcmF0ZV9zZWxlY3Q7Cj4gIAo+IC0JY29tbW9u X2xlbiA9IGludGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKPiAr CWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQoaW50ZWxfZHAsCj4g KwkJCQkJCSAgICBpbnRlbF9kcC0+bWF4X3NpbmtfbGlua19yYXRlKTsKPiAgCj4gIAkvKiBObyBj b21tb24gbGluayByYXRlcyBiZXR3ZWVuIHNvdXJjZSBhbmQgc2luayAqLwo+ICAJV0FSTl9PTihj b21tb25fbGVuIDw9IDApOwo+IEBAIC0xNjc4LDcgKzE2ODYsNiBAQCBpbnRlbF9kcF9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCS8qIFVzZSB2YWx1ZXMg cmVxdWVzdGVkIGJ5IENvbXBsaWFuY2UgVGVzdCBSZXF1ZXN0ICovCj4gIAlpZiAoaW50ZWxfZHAt PmNvbXBsaWFuY2UudGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJTklORykgewo+ICAJCWxp bmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwKPiAtCQkJ CQkJCSAgIGNvbW1vbl9yYXRlcywKPiAgCQkJCQkJCSAgIGludGVsX2RwLT5jb21wbGlhbmNlLnRl c3RfbGlua19yYXRlKTsKPiAgCQlpZiAobGlua19yYXRlX2luZGV4ID49IDApCj4gIAkJCW1pbl9j bG9jayA9IG1heF9jbG9jayA9IGxpbmtfcmF0ZV9pbmRleDsKPiBAQCAtMTY4Niw3ICsxNjkzLDcg QEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAl9Cj4gIAlEUk1fREVCVUdfS01TKCJEUCBsaW5rIGNvbXB1dGF0aW9uIHdpdGggbWF4IGxh bmUgY291bnQgJWkgIgo+ICAJCSAgICAgICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlLSHpcbiIs Cj4gLQkJICAgICAgbWF4X2xhbmVfY291bnQsIGNvbW1vbl9yYXRlc1ttYXhfY2xvY2tdLAo+ICsJ CSAgICAgIG1heF9sYW5lX2NvdW50LCBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW21heF9jbG9ja10s Cj4gIAkJICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7Cj4gIAo+ICAJLyogV2FsayB0 aHJvdWdoIGFsbCBicHAgdmFsdWVzLiBMdWNraWx5IHRoZXkncmUgYWxsIG5pY2VseSBzcGFjZWQg d2l0aCAyCj4gQEAgLTE3MjIsNyArMTcyOSw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJbGFuZV9jb3VudCA8PSBtYXhfbGFu ZV9jb3VudDsKPiAgCQkJCWxhbmVfY291bnQgPDw9IDEpIHsKPiAgCj4gLQkJCQlsaW5rX2Nsb2Nr ID0gY29tbW9uX3JhdGVzW2Nsb2NrXTsKPiArCQkJCWxpbmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29t bW9uX3JhdGVzW2Nsb2NrXTsKPiAgCQkJCWxpbmtfYXZhaWwgPSBpbnRlbF9kcF9tYXhfZGF0YV9y YXRlKGxpbmtfY2xvY2ssCj4gIAkJCQkJCQkJICAgIGxhbmVfY291bnQpOwo+ICAKPiBAQCAtMTc1 NCw3ICsxNzYxLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4g IAo+ICAJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+IC0JcGlwZV9jb25maWctPnBvcnRf Y2xvY2sgPSBjb21tb25fcmF0ZXNbY2xvY2tdOwo+ICsJcGlwZV9jb25maWctPnBvcnRfY2xvY2sg PSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKPiAgCj4gIAlpbnRlbF9kcF9jb21wdXRl X3JhdGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICAJCQkgICAgICAmbGlu a19idywgJnJhdGVfc2VsZWN0KTsKPiBAQCAtMzcxNSw2ICszNzIyLDggQEAgaW50ZWxfZWRwX2lu aXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJZWxzZQo+ICAJCWludGVsX2Rw X3NldF9zaW5rX3JhdGVzKGludGVsX2RwKTsKPiAgCj4gKwlpbnRlbF9kcF9zZXRfY29tbW9uX3Jh dGVzKGludGVsX2RwKTsKPiArCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiBAQCAtMzcyNiw4 ICszNzM1LDEwIEBAIGludGVsX2RwX2dldF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Cj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiAgCS8qIERvbid0IGNsb2JiZXIgY2FjaGVkIGVEUCBy YXRlcy4gKi8KPiAtCWlmICghaXNfZWRwKGludGVsX2RwKSkKPiArCWlmICghaXNfZWRwKGludGVs X2RwKSkgewo+ICAJCWludGVsX2RwX3NldF9zaW5rX3JhdGVzKGludGVsX2RwKTsKPiArCQlpbnRl bF9kcF9zZXRfY29tbW9uX3JhdGVzKGludGVsX2RwKTsKPiArCX0KPiAgCj4gIAlpZiAoZHJtX2Rw X2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwgRFBfU0lOS19DT1VOVCwKPiAgCQkJICAgICAmaW50 ZWxfZHAtPnNpbmtfY291bnQsIDEpIDwgMCkKPiBAQCAtMzk1MCw3ICszOTYxLDYgQEAgc3RhdGlj IHVpbnQ4X3QgaW50ZWxfZHBfYXV0b3Rlc3RfbGlua190cmFpbmluZyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ICB7Cj4gIAlpbnQgc3RhdHVzID0gMDsKPiAgCWludCBtaW5fbGFuZV9jb3Vu dCA9IDE7Cj4gLQlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307 Cj4gIAlpbnQgbGlua19yYXRlX2luZGV4LCB0ZXN0X2xpbmtfcmF0ZTsKPiAgCXVpbnQ4X3QgdGVz dF9sYW5lX2NvdW50LCB0ZXN0X2xpbmtfYnc7Cj4gIAkvKiAoRFAgQ1RTIDEuMikKPiBAQCAtMzk3 OSw3ICszOTg5LDYgQEAgc3RhdGljIHVpbnQ4X3QgaW50ZWxfZHBfYXV0b3Rlc3RfbGlua190cmFp bmluZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJLyogVmFsaWRhdGUgdGhlIHJlcXVl c3RlZCBsaW5rIHJhdGUgKi8KPiAgCXRlc3RfbGlua19yYXRlID0gZHJtX2RwX2J3X2NvZGVfdG9f bGlua19yYXRlKHRlc3RfbGlua19idyk7Cj4gIAlsaW5rX3JhdGVfaW5kZXggPSBpbnRlbF9kcF9s aW5rX3JhdGVfaW5kZXgoaW50ZWxfZHAsCj4gLQkJCQkJCSAgIGNvbW1vbl9yYXRlcywKPiAgCQkJ CQkJICAgdGVzdF9saW5rX3JhdGUpOwo+ICAJaWYgKGxpbmtfcmF0ZV9pbmRleCA8IDApCj4gIAkJ cmV0dXJuIERQX1RFU1RfTkFLOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZjgx NDBiMDY2NzlkLi5lYzg5ODViMjA2MTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ IEBAIC05NTYsNiArOTU2LDkgQEAgc3RydWN0IGludGVsX2RwIHsKPiAgCWludCBudW1fc2lua19y YXRlczsKPiAgCWludCBzaW5rX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwo+ICAJYm9v bCB1c2VfcmF0ZV9zZWxlY3Q7Cj4gKwkvKiBpbnRlcnNlY3Rpb24gb2Ygc291cmNlIGFuZCBzaW5r IHJhdGVzICovCj4gKwlpbnQgbnVtX2NvbW1vbl9yYXRlczsKPiArCWludCBjb21tb25fcmF0ZXNb RFBfTUFYX1NVUFBPUlRFRF9SQVRFU107Cj4gIAkvKiBNYXggbGFuZSBjb3VudCBmb3IgdGhlIHNp bmsgYXMgcGVyIERQQ0QgcmVnaXN0ZXJzICovCj4gIAl1aW50OF90IG1heF9zaW5rX2xhbmVfY291 bnQ7Cj4gIAkvKiBNYXggbGluayBCVyBmb3IgdGhlIHNpbmsgYXMgcGVyIERQQ0QgcmVnaXN0ZXJz ICovCj4gLS0gCj4gMi4xLjQKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==