From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 2/3] drm/i915/psr: Remove partial PSR support on multiple transcoders Date: Fri, 12 Apr 2019 15:42:06 -0700 Message-ID: <20190412224206.GE19065@intel.com> References: <20190412222909.1711-1-jose.souza@intel.com> <20190412222909.1711-2-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1791E899C4 for ; Fri, 12 Apr 2019 22:41:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190412222909.1711-2-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?iso-8859-1?Q?Jos=E9?= Roberto de Souza Cc: intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMTIsIDIwMTkgYXQgMDM6Mjk6MDhQTSAtMDcwMCwgSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSB3cm90ZToKPiBpOTE1IGRvZXMgbm90IHN1cHBvcnQgZW5hYmxpbmcgUFNSIG9uIGFu eSB0cmFuc2NvZGVyIG90aGVyIHRoYW4gZURQLgo+IENsZWFuIHVwIHRoZSBtaXNsZWFkaW5nIG5v bi1lRFAgY29kZSB0aGF0IGN1cnJlbnRseSBleGlzdHMgdG8gYWxsb3cKPiBmb3IgdGhlIHJld29y ayBvZiBQU1IgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgaW4gdGhlIG5leHQgcGF0Y2guCj4gCj4gdjI6 Cj4gLSBDb21taXQgbWVzc2FnZSB1cGRhdGVkIChSb2RyaWdvIGFuZCBEaGluYWthcmFuKQoKbmlj ZSBjb2RlIGNsZWFuLXVwIGFuZCB0aGFua3MgZm9yIHVwZGF0aW5nIHRoZSBtZXNzYWdlLgoKUmV2 aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KCgo+IAo+IENj OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiBD YzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6 IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICB8ICAxNyArLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Bzci5jIHwgMTQ3ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggYzFjMGY3YWIwM2U5Li5lMjgwM2Ix MjBiNmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNDI0MywxMyArNDI0Myw5 IEBAIGVudW0gewo+ICAvKiBCc3BlYyBjbGFpbXMgdGhvc2UgYXJlbid0IHNoaWZ0ZWQgYnV0IHN0 YXkgYXQgMHg2NDgwMCAqLwo+ICAjZGVmaW5lIEVEUF9QU1JfSU1SCQkJCV9NTUlPKDB4NjQ4MzQp Cj4gICNkZWZpbmUgRURQX1BTUl9JSVIJCQkJX01NSU8oMHg2NDgzOCkKPiAtI2RlZmluZSAgIEVE UF9QU1JfRVJST1Ioc2hpZnQpCQkJKDEgPDwgKChzaGlmdCkgKyAyKSkKPiAtI2RlZmluZSAgIEVE UF9QU1JfUE9TVF9FWElUKHNoaWZ0KQkJKDEgPDwgKChzaGlmdCkgKyAxKSkKPiAtI2RlZmluZSAg IEVEUF9QU1JfUFJFX0VOVFJZKHNoaWZ0KQkJKDEgPDwgKHNoaWZ0KSkKPiAtI2RlZmluZSAgIEVE UF9QU1JfVFJBTlNDT0RFUl9DX1NISUZUCQkyNAo+IC0jZGVmaW5lICAgRURQX1BTUl9UUkFOU0NP REVSX0JfU0hJRlQJCTE2Cj4gLSNkZWZpbmUgICBFRFBfUFNSX1RSQU5TQ09ERVJfQV9TSElGVAkJ OAo+IC0jZGVmaW5lICAgRURQX1BTUl9UUkFOU0NPREVSX0VEUF9TSElGVAkJMAo+ICsjZGVmaW5l ICAgRURQX1BTUl9FUlJPUgkJCQkoMSA8PCAyKQo+ICsjZGVmaW5lICAgRURQX1BTUl9QT1NUX0VY SVQJCQkoMSA8PCAxKQo+ICsjZGVmaW5lICAgRURQX1BTUl9QUkVfRU5UUlkJCQkoMSA8PCAwKQo+ ICAKPiAgI2RlZmluZSBFRFBfUFNSX0FVWF9DVEwJCQkJX01NSU8oZGV2X3ByaXYtPnBzcl9tbWlv X2Jhc2UgKyAweDEwKQo+ICAjZGVmaW5lICAgRURQX1BTUl9BVVhfQ1RMX1RJTUVfT1VUX01BU0sJ CSgzIDw8IDI2KQo+IEBAIC00MzE0LDEyICs0MzEwLDcgQEAgZW51bSB7Cj4gICNkZWZpbmUgICBF RFBfUFNSMl9JRExFX0ZSQU1FX01BU0sJMHhmCj4gICNkZWZpbmUgICBFRFBfUFNSMl9JRExFX0ZS QU1FX1NISUZUCTAKPiAgCj4gLSNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19BCQkJMHg2MDg0OAo+ IC0jZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfQgkJCTB4NjE4NDgKPiAtI2RlZmluZSBfUFNSX0VW RU5UX1RSQU5TX0MJCQkweDYyODQ4Cj4gLSNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19ECQkJMHg2 Mzg0OAo+IC0jZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfRURQCQkJMHg2Rjg0OAo+IC0jZGVmaW5l IFBTUl9FVkVOVCh0cmFucykJCQlfTU1JT19UUkFOUzIodHJhbnMsIF9QU1JfRVZFTlRfVFJBTlNf QSkKPiArI2RlZmluZSBQU1JfRVZFTlQJCQkJX01NSU8oMHg2Rjg0OCkKPiAgI2RlZmluZSAgUFNS X0VWRU5UX1BTUjJfV0RfVElNRVJfRVhQSVJFCQkoMSA8PCAxNykKPiAgI2RlZmluZSAgUFNSX0VW RU5UX1BTUjJfRElTQUJMRUQJCSgxIDw8IDE2KQo+ICAjZGVmaW5lICBQU1JfRVZFTlRfU1VfRElS VFlfRklGT19VTkRFUlJVTgkoMSA8PCAxNSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGlu ZGV4IDk2MzY2M2JhMGVkZi4uNTgxNzc0NzQ4YzRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cHNyLmMKPiBAQCAtODcsNDYgKzg3LDEyIEBAIHN0YXRpYyBib29sIGludGVsX3BzcjJfZW5hYmxl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbnQgZWRwX3Bzcl9zaGlmdChlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIpCj4g LXsKPiAtCXN3aXRjaCAoY3B1X3RyYW5zY29kZXIpIHsKPiAtCWNhc2UgVFJBTlNDT0RFUl9BOgo+ IC0JCXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfQV9TSElGVDsKPiAtCWNhc2UgVFJBTlNDT0RF Ul9COgo+IC0JCXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfQl9TSElGVDsKPiAtCWNhc2UgVFJB TlNDT0RFUl9DOgo+IC0JCXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfQ19TSElGVDsKPiAtCWRl ZmF1bHQ6Cj4gLQkJTUlTU0lOR19DQVNFKGNwdV90cmFuc2NvZGVyKTsKPiAtCQkvKiBmYWxsdGhy b3VnaCAqLwo+IC0JY2FzZSBUUkFOU0NPREVSX0VEUDoKPiAtCQlyZXR1cm4gRURQX1BTUl9UUkFO U0NPREVSX0VEUF9TSElGVDsKPiAtCX0KPiAtfQo+IC0KPiAgdm9pZCBpbnRlbF9wc3JfaXJxX2Nv bnRyb2woc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZGVidWcpCj4gIHsK PiAtCXUzMiBkZWJ1Z19tYXNrLCBtYXNrOwo+IC0JZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2Nv ZGVyOwo+IC0JdTMyIHRyYW5zY29kZXJzID0gQklUKFRSQU5TQ09ERVJfRURQKTsKPiAtCj4gLQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQo+IC0JCXRyYW5zY29kZXJzIHw9IEJJVChUUkFO U0NPREVSX0EpIHwKPiAtCQkJICAgICAgIEJJVChUUkFOU0NPREVSX0IpIHwKPiAtCQkJICAgICAg IEJJVChUUkFOU0NPREVSX0MpOwo+IC0KPiAtCWRlYnVnX21hc2sgPSAwOwo+IC0JbWFzayA9IDA7 Cj4gLQlmb3JfZWFjaF9jcHVfdHJhbnNjb2Rlcl9tYXNrZWQoZGV2X3ByaXYsIGNwdV90cmFuc2Nv ZGVyLCB0cmFuc2NvZGVycykgewo+IC0JCWludCBzaGlmdCA9IGVkcF9wc3Jfc2hpZnQoY3B1X3Ry YW5zY29kZXIpOwo+IC0KPiAtCQltYXNrIHw9IEVEUF9QU1JfRVJST1Ioc2hpZnQpOwo+IC0JCWRl YnVnX21hc2sgfD0gRURQX1BTUl9QT1NUX0VYSVQoc2hpZnQpIHwKPiAtCQkJICAgICAgRURQX1BT Ul9QUkVfRU5UUlkoc2hpZnQpOwo+IC0JfQo+ICsJdTMyIG1hc2sgPSBFRFBfUFNSX0VSUk9SOwo+ ICAKPiAgCWlmIChkZWJ1ZyAmIEk5MTVfUFNSX0RFQlVHX0lSUSkKPiAtCQltYXNrIHw9IGRlYnVn X21hc2s7Cj4gKwkJbWFzayB8PSBFRFBfUFNSX1BPU1RfRVhJVCB8IEVEUF9QU1JfUFJFX0VOVFJZ Owo+ICAKPiAgCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIH5tYXNrKTsKPiAgfQo+IEBAIC0xNzAs NjIgKzEzNiw0NyBAQCBzdGF0aWMgdm9pZCBwc3JfZXZlbnRfcHJpbnQodTMyIHZhbCwgYm9vbCBw c3IyX2VuYWJsZWQpCj4gIAo+ICB2b2lkIGludGVsX3Bzcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwc3JfaWlyKQo+ICB7Cj4gLQl1MzIgdHJhbnNj b2RlcnMgPSBCSVQoVFJBTlNDT0RFUl9FRFApOwo+IC0JZW51bSB0cmFuc2NvZGVyIGNwdV90cmFu c2NvZGVyOwo+IC0Ja3RpbWVfdCB0aW1lX25zID0gIGt0aW1lX2dldCgpOwo+IC0JdTMyIG1hc2sg PSAwOwo+ICsJa3RpbWVfdCB0aW1lX25zID0ga3RpbWVfZ2V0KCk7Cj4gIAo+IC0JaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gOCkKPiAtCQl0cmFuc2NvZGVycyB8PSBCSVQoVFJBTlNDT0RFUl9B KSB8Cj4gLQkJCSAgICAgICBCSVQoVFJBTlNDT0RFUl9CKSB8Cj4gLQkJCSAgICAgICBCSVQoVFJB TlNDT0RFUl9DKTsKPiAtCj4gLQlmb3JfZWFjaF9jcHVfdHJhbnNjb2Rlcl9tYXNrZWQoZGV2X3By aXYsIGNwdV90cmFuc2NvZGVyLCB0cmFuc2NvZGVycykgewo+IC0JCWludCBzaGlmdCA9IGVkcF9w c3Jfc2hpZnQoY3B1X3RyYW5zY29kZXIpOwo+IC0KPiAtCQlpZiAocHNyX2lpciAmIEVEUF9QU1Jf RVJST1Ioc2hpZnQpKSB7Cj4gLQkJCURSTV9XQVJOKCJbdHJhbnNjb2RlciAlc10gUFNSIGF1eCBl cnJvclxuIiwKPiAtCQkJCSB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsKPiAtCj4g LQkJCWRldl9wcml2LT5wc3IuaXJxX2F1eF9lcnJvciA9IHRydWU7Cj4gLQo+IC0JCQkvKgo+IC0J CQkgKiBJZiB0aGlzIGludGVycnVwdGlvbiBpcyBub3QgbWFza2VkIGl0IHdpbGwga2VlcAo+IC0J CQkgKiBpbnRlcnJ1cHRpbmcgc28gZmFzdCB0aGF0IGl0IHByZXZlbnRzIHRoZSBzY2hlZHVsZWQK PiAtCQkJICogd29yayB0byBydW4uCj4gLQkJCSAqIEFsc28gYWZ0ZXIgYSBQU1IgZXJyb3IsIHdl IGRvbid0IHdhbnQgdG8gYXJtIFBTUgo+IC0JCQkgKiBhZ2FpbiBzbyB3ZSBkb24ndCBjYXJlIGFi b3V0IHVubWFzayB0aGUgaW50ZXJydXB0aW9uCj4gLQkJCSAqIG9yIHVuc2V0IGlycV9hdXhfZXJy b3IuCj4gLQkJCSAqLwo+IC0JCQltYXNrIHw9IEVEUF9QU1JfRVJST1Ioc2hpZnQpOwo+IC0JCX0K PiArCWlmIChwc3JfaWlyICYgRURQX1BTUl9FUlJPUikgewo+ICsJCXUzMiBtYXNrOwo+ICAKPiAt CQlpZiAocHNyX2lpciAmIEVEUF9QU1JfUFJFX0VOVFJZKHNoaWZ0KSkgewo+IC0JCQlkZXZfcHJp di0+cHNyLmxhc3RfZW50cnlfYXR0ZW1wdCA9IHRpbWVfbnM7Cj4gLQkJCURSTV9ERUJVR19LTVMo Ilt0cmFuc2NvZGVyICVzXSBQU1IgZW50cnkgYXR0ZW1wdCBpbiAyIHZibGFua3NcbiIsCj4gLQkJ CQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsKPiAtCQl9Cj4gKwkJRFJN X1dBUk4oIlt0cmFuc2NvZGVyICVzXSBQU1IgYXV4IGVycm9yXG4iLAo+ICsJCQkgdHJhbnNjb2Rl cl9uYW1lKFRSQU5TQ09ERVJfRURQKSk7Cj4gIAo+IC0JCWlmIChwc3JfaWlyICYgRURQX1BTUl9Q T1NUX0VYSVQoc2hpZnQpKSB7Cj4gLQkJCWRldl9wcml2LT5wc3IubGFzdF9leGl0ID0gdGltZV9u czsKPiAtCQkJRFJNX0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBleGl0IGNvbXBsZXRl ZFxuIiwKPiAtCQkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2RlcikpOwo+ICsJ CWRldl9wcml2LT5wc3IuaXJxX2F1eF9lcnJvciA9IHRydWU7Cj4gIAo+IC0JCQlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gLQkJCQl1MzIgdmFsID0gSTkxNV9SRUFEKFBTUl9FVkVO VChjcHVfdHJhbnNjb2RlcikpOwo+IC0JCQkJYm9vbCBwc3IyX2VuYWJsZWQgPSBkZXZfcHJpdi0+ cHNyLnBzcjJfZW5hYmxlZDsKPiArCQkvKgo+ICsJCSAqIElmIHRoaXMgaW50ZXJydXB0aW9uIGlz IG5vdCBtYXNrZWQgaXQgd2lsbCBrZWVwCj4gKwkJICogaW50ZXJydXB0aW5nIHNvIGZhc3QgdGhh dCBpdCBwcmV2ZW50cyB0aGUgc2NoZWR1bGVkCj4gKwkJICogd29yayB0byBydW4uCj4gKwkJICog QWxzbyBhZnRlciBhIFBTUiBlcnJvciwgd2UgZG9uJ3Qgd2FudCB0byBhcm0gUFNSCj4gKwkJICog YWdhaW4gc28gd2UgZG9uJ3QgY2FyZSBhYm91dCB1bm1hc2sgdGhlIGludGVycnVwdGlvbgo+ICsJ CSAqIG9yIHVuc2V0IGlycV9hdXhfZXJyb3IuCj4gKwkJICovCj4gKwkJbWFzayA9IEk5MTVfUkVB RChFRFBfUFNSX0lNUikgfCBFRFBfUFNSX0VSUk9SOwo+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9J TVIsIG1hc2spOwo+ICAKPiAtCQkJCUk5MTVfV1JJVEUoUFNSX0VWRU5UKGNwdV90cmFuc2NvZGVy KSwgdmFsKTsKPiAtCQkJCXBzcl9ldmVudF9wcmludCh2YWwsIHBzcjJfZW5hYmxlZCk7Cj4gLQkJ CX0KPiAtCQl9Cj4gKwkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPnBzci53b3JrKTsKPiAgCX0K PiAgCj4gLQlpZiAobWFzaykgewo+IC0JCW1hc2sgfD0gSTkxNV9SRUFEKEVEUF9QU1JfSU1SKTsK PiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCBtYXNrKTsKPiArCWlmIChwc3JfaWlyICYgRURQ X1BTUl9QUkVfRU5UUlkpIHsKPiArCQlkZXZfcHJpdi0+cHNyLmxhc3RfZW50cnlfYXR0ZW1wdCA9 IHRpbWVfbnM7Cj4gKwkJRFJNX0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBlbnRyeSBh dHRlbXB0IGluIDIgdmJsYW5rc1xuIiwKPiArCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKFRSQU5T Q09ERVJfRURQKSk7Cj4gKwl9Cj4gIAo+IC0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5wc3Iu d29yayk7Cj4gKwlpZiAocHNyX2lpciAmIEVEUF9QU1JfUE9TVF9FWElUKSB7Cj4gKwkJRFJNX0RF QlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBleGl0IGNvbXBsZXRlZFxuIiwKPiArCQkJICAg ICAgdHJhbnNjb2Rlcl9uYW1lKFRSQU5TQ09ERVJfRURQKSk7Cj4gKwo+ICsJCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDkpIHsKPiArCQkJdTMyIHZhbCA9IEk5MTVfUkVBRChQU1JfRVZFTlQp Owo+ICsJCQlib29sIHBzcjJfZW5hYmxlZCA9IGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkOwo+ ICsKPiArCQkJSTkxNV9XUklURShQU1JfRVZFTlQsIHZhbCk7Cj4gKwkJCXBzcl9ldmVudF9wcmlu dCh2YWwsIHBzcjJfZW5hYmxlZCk7Cj4gKwkJfQo+ICAJfQo+ICB9Cj4gIAo+IEBAIC02NzIsMzAg KzYyMywxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiAgCWRldl9wcml2LT5wc3IuYWN0aXZlID0gdHJ1ZTsKPiAgfQo+ICAKPiAt c3RhdGljIGk5MTVfcmVnX3QgZ2VuOV9jaGlja2VuX3RyYW5zX3JlZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkJIGVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2Rl cikKPiAtewo+IC0Jc3RhdGljIGNvbnN0IGk5MTVfcmVnX3QgcmVnc1tdID0gewo+IC0JCVtUUkFO U0NPREVSX0FdID0gQ0hJQ0tFTl9UUkFOU19BLAo+IC0JCVtUUkFOU0NPREVSX0JdID0gQ0hJQ0tF Tl9UUkFOU19CLAo+IC0JCVtUUkFOU0NPREVSX0NdID0gQ0hJQ0tFTl9UUkFOU19DLAo+IC0JCVtU UkFOU0NPREVSX0VEUF0gPSBDSElDS0VOX1RSQU5TX0VEUCwKPiAtCX07Cj4gLQo+IC0JV0FSTl9P TihJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSk7Cj4gLQo+IC0JaWYgKFdBUk5fT04oY3B1X3RyYW5z Y29kZXIgPj0gQVJSQVlfU0laRShyZWdzKSB8fAo+IC0JCSAgICAhcmVnc1tjcHVfdHJhbnNjb2Rl cl0ucmVnKSkKPiAtCQljcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfQTsKPiAtCj4gLQlyZXR1 cm4gcmVnc1tjcHVfdHJhbnNjb2Rlcl07Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIGludGVsX3Bz cl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCQkgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+IC0JZW51 bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7 Cj4gIAl1MzIgbWFzazsKPiAgCj4gIAkvKiBPbmx5IEhTVyBhbmQgQkRXIGhhdmUgUFNSIEFVWCBy ZWdpc3RlcnMgdGhhdCBuZWVkIHRvIGJlIHNldHVwLiBTS0wrCj4gQEAgLTcwNiwxMyArNjM3LDEx IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gIAo+ICAJaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkICYmIChJU19H RU4oZGV2X3ByaXYsIDkpICYmCj4gIAkJCQkJICAgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSkg ewo+IC0JCWk5MTVfcmVnX3QgcmVnID0gZ2VuOV9jaGlja2VuX3RyYW5zX3JlZyhkZXZfcHJpdiwK PiAtCQkJCQkJCWNwdV90cmFuc2NvZGVyKTsKPiAtCQl1MzIgY2hpY2tlbiA9IEk5MTVfUkVBRChy ZWcpOwo+ICsJCXUzMiBjaGlja2VuID0gSTkxNV9SRUFEKENISUNLRU5fVFJBTlNfRURQKTsKPiAg Cj4gIAkJY2hpY2tlbiB8PSBQU1IyX1ZTQ19FTkFCTEVfUFJPR19IRUFERVIgfAo+ICAJCQkgICBQ U1IyX0FERF9WRVJUSUNBTF9MSU5FX0NPVU5UOwo+IC0JCUk5MTVfV1JJVEUocmVnLCBjaGlja2Vu KTsKPiArCQlJOTE1X1dSSVRFKENISUNLRU5fVFJBTlNfRURQLCBjaGlja2VuKTsKPiAgCX0KPiAg Cj4gIAkvKgo+IEBAIC0xMjI1LDcgKzExNTQsNyBAQCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCSAqIHRvIGF2b2lkIGFueSByZW5kZXJp bmcgcHJvYmxlbXMuCj4gIAkgKi8KPiAgCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7Cj4g LQl2YWwgJj0gRURQX1BTUl9FUlJPUihlZHBfcHNyX3NoaWZ0KFRSQU5TQ09ERVJfRURQKSk7Cj4g Kwl2YWwgJj0gRURQX1BTUl9FUlJPUjsKPiAgCWlmICh2YWwpIHsKPiAgCQlEUk1fREVCVUdfS01T KCJQU1IgaW50ZXJydXB0aW9uIGVycm9yIHNldFxuIik7Cj4gIAkJZGV2X3ByaXYtPnBzci5zaW5r X25vdF9yZWxpYWJsZSA9IHRydWU7Cj4gLS0gCj4gMi4yMS4wCj4gCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==