From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 6/7] drm/i915/psr: Remove partial PSR support on multiple transcoders Date: Thu, 4 Apr 2019 14:51:24 -0700 Message-ID: <20190404215124.GI15051@intel.com> References: <20190403233539.31828-1-jose.souza@intel.com> <20190403233539.31828-6-jose.souza@intel.com> <20190404003125.GE25758@intel.com> <3039dded7fd647f2d4b4eda6a6f427dbe5ad9a15.camel@intel.com> <20190404212028.GG15051@intel.com> <5f03c719b3b4ee12aa792e4f63c3614e47099450.camel@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 A61BB6E5B4 for ; Thu, 4 Apr 2019 21:51:12 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5f03c719b3b4ee12aa792e4f63c3614e47099450.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMDQsIDIwMTkgYXQgMDI6NDE6MjZQTSAtMDcwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVGh1LCAyMDE5LTA0LTA0IGF0IDE0OjIwIC0wNzAwLCBSb2RyaWdv IFZpdmkgd3JvdGU6Cj4gPiBPbiBUaHUsIEFwciAwNCwgMjAxOSBhdCAxMjo0MDozNFBNIC0wNzAw LCBTb3V6YSwgSm9zZSB3cm90ZToKPiA+ID4gT24gV2VkLCAyMDE5LTA0LTAzIGF0IDE3OjMxIC0w NzAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBBcHIgMDMsIDIwMTkgYXQg MDQ6MzU6MzhQTSAtMDcwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQo+ID4gPiA+IHdyb3RlOgo+ ID4gPiA+ID4gUFNSIGlzIG9ubHkgc3VwcG9ydGVkIGluIGVEUCB0cmFuc2NvZGVyIGFuZCB0aGVy ZSBpcyBvbmx5IG9uZQo+ID4gPiA+ID4gaW5zdGFuY2Ugb2YgaXQsIHNvIGxldHMgZHJvcCBhbGwg b2YgdGhpcyBjb2RlLgo+ID4gPiA+IAo+ID4gPiA+IElzIHRoaXMgc2VudGVuY2UgdHJ1ZT8gSSBt ZWFuLCBpbiB0aGUgd2F5IGl0IGlzIHdyaXR0ZW4gaXQKPiA+ID4gPiBzZWVtcyBsaWtlIEhXIGRv ZXNuJ3QgYWN0dWFsbHkgc3VwcG9ydCBpdC4uLgo+ID4gPiA+IE9yIHNob3VsZCB3ZSByZS1waHJh c2UgZm9yIHdlIGFyZSBub3QgcmVhbGx5IGVuYWJsaW5nIHN1cHBvcnQKPiA+ID4gPiBmb3Igb3Ro ZXIgdHJhbnNjb2RlcnMgdGhhbiBlRFAgYW5kIHdlIGRvIG5vdCBoYXZlIHBsYW5zIHRvIGRvCj4g PiA+ID4gaXQgc28gc29vbiBzbyBsZXQncyBjbGVhbiB0aGUgY29kZS4uLgo+ID4gPiA+IG9yIHNv bWV0aGluZyBsaWtlIHRoYXQ/Cj4gPiA+IAo+ID4gPiBPa2F5LCB3aGF0IGFib3V0IHJlcGxhY2Ug aXQgZm9yOgo+ID4gPiAKPiA+ID4gU2luY2UgQkRXIGFsbCB0cmFuc2NvZGVycyBoYXZlIFBTUiBy ZWdpc3RlcnMgYnV0IG9ubHkgRURQIHRyYW5zY29kZXIKPiA+ID4gY2FuIGRyaXZlIGEgRURQIHBh bmVsIGFuZCBhcyBQU1IgaXMgb25seSBwYXJ0IG9mIHRoZSBFRFAgc3BlY2lmaWNhdGlvbiwKPiA+ ID4gZm9yIHJlYWwgdXNhZ2UgUFNSIGlzIG9ubHkgc3VwcG9ydGVkIGluIEVEUCBwYW5lbCwgc28g bGV0cyBkcm9wIGFsbCBvZgo+ID4gPiB0aGlzIHVzZWxlc3MgY29kZS4KPiA+IAo+ID4gd2VsbCwg dGhpcyBzdGlsbCBsb29rcyBsaWtlIEhXIGxpbWl0YXRpb24uIElmIFBTUiBpcyBzdXBwb3J0ZWQg YnkgSFcgb24KPiA+IGRpZmZlcmVudCB0cmFuc2NvZGVycyBpcyBiZWNhdXNlIHRoZXJlJ3Mgc29t ZSBwb3NzaWJpbGl0eSBvZiBhZGRpbmcKPiA+IGVEUCBvbiBvdGhlciB0cmFuc2NvZGVycy4gVGhl eSB3b3VsZG4ndCB3YXN0ZSBzbyBtYW55IHJlZ2lzdGVyIHNwYWNlCj4gPiBpZiB0aGF0IHdhc24n dCB0aGUgY2FzZS4KPiA+IAo+ID4gRXZlbiB0aG91Z2ggd2UgaGF2ZSBhIGRlZGljYXRlZCB0cmFu c2NvZGVyIGZvciBlRFAgSSBkb24ndAo+ID4gYmVsaWV2ZSB3ZSBjYW4gYXNzdW1lIHRoYXQgZURQ IGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIG90aGVyIG9uZXMuCj4gPiAKPiAKPiBXaHkgbm90IHdy aXRlIHNvbWV0aGluZyBsaWtlIChvciBleGFjdGx5KSB0aGlzIAo+IAo+ICJpOTE1IGRvZXMgbm90 IHN1cHBvcnQgZW5hYmxpbmcgUFNSIG9uIGFueSB0cmFuc2NvZGVyIG90aGVyIHRoYW4gZURQLiBD bGVhbiB1cAo+IHRoZSBtaXNsZWFkaW5nIG5vbi1lRFAgY29kZSB0aGF0IGN1cnJlbnRseSBleGlz dHMgdG8gYWxsb3cgZm9yIHRoZSByZXdvcmsgb2YgUFNSCj4gcmVnaXN0ZXIgZGVmaW5pdGlvbnMg aW4gdGhlIG5leHQgcGF0Y2giCgorMQoKPiAKPiAKPiAtREsKPiA+ID4gCj4gPiA+IAo+ID4gPiAK PiA+ID4gPiAKPiA+ID4gPiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBh bmRpeWFuQGludGVsLmNvbT4KPiA+ID4gPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2 aUBpbnRlbC5jb20+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNv dXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDE3ICstLS0KPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyB8IDE0NyArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlv bnMoKyksIDEyMiBkZWxldGlvbnMoLSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gaW5kZXggYzU5Y2ZhODNkYmFmLi4xOGUyOTkx YjM3NmQgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ ID4gPiBAQCAtNDI0MSwxMyArNDI0MSw5IEBAIGVudW0gewo+ID4gPiA+ID4gIC8qIEJzcGVjIGNs YWltcyB0aG9zZSBhcmVuJ3Qgc2hpZnRlZCBidXQgc3RheSBhdCAweDY0ODAwICovCj4gPiA+ID4g PiAgI2RlZmluZSBFRFBfUFNSX0lNUgkJCQlfTU1JTygweDY0ODM0KQo+ID4gPiA+ID4gICNkZWZp bmUgRURQX1BTUl9JSVIJCQkJX01NSU8oMHg2NDgzOCkKPiA+ID4gPiA+IC0jZGVmaW5lICAgRURQ X1BTUl9FUlJPUihzaGlmdCkJCQkoMSA8PCAoKHNoaWZ0KQo+ID4gPiA+ID4gKyAyKSkKPiA+ID4g PiA+IC0jZGVmaW5lICAgRURQX1BTUl9QT1NUX0VYSVQoc2hpZnQpCQkoMSA8PCAoKHNoaWZ0KSAr IDEpKQo+ID4gPiA+ID4gLSNkZWZpbmUgICBFRFBfUFNSX1BSRV9FTlRSWShzaGlmdCkJCSgxIDw8 IChzaGlmdCkpCj4gPiA+ID4gPiAtI2RlZmluZSAgIEVEUF9QU1JfVFJBTlNDT0RFUl9DX1NISUZU CQkyNAo+ID4gPiA+ID4gLSNkZWZpbmUgICBFRFBfUFNSX1RSQU5TQ09ERVJfQl9TSElGVAkJMTYK PiA+ID4gPiA+IC0jZGVmaW5lICAgRURQX1BTUl9UUkFOU0NPREVSX0FfU0hJRlQJCTgKPiA+ID4g PiA+IC0jZGVmaW5lICAgRURQX1BTUl9UUkFOU0NPREVSX0VEUF9TSElGVAkJMAo+ID4gPiA+ID4g KyNkZWZpbmUgICBFRFBfUFNSX0VSUk9SCQkJCSgxIDw8IDIpCj4gPiA+ID4gPiArI2RlZmluZSAg IEVEUF9QU1JfUE9TVF9FWElUCQkJKDEgPDwgMSkKPiA+ID4gPiA+ICsjZGVmaW5lICAgRURQX1BT Ul9QUkVfRU5UUlkJCQkoMSA8PCAwKQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gICNkZWZpbmUgRURQ X1BTUl9BVVhfQ1RMCQkJCV9NTUlPKGRldl9wcml2LQo+ID4gPiA+ID4gPiBwc3JfbW1pb19iYXNl ICsgMHgxMCkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gICNkZWZpbmUgICBFRFBfUFNSX0FVWF9DVExf VElNRV9PVVRfTUFTSwkJKDMgPDwgMjYpCj4gPiA+ID4gPiBAQCAtNDMxMiwxMiArNDMwOCw3IEBA IGVudW0gewo+ID4gPiA+ID4gICNkZWZpbmUgICBFRFBfUFNSMl9JRExFX0ZSQU1FX01BU0sJMHhm Cj4gPiA+ID4gPiAgI2RlZmluZSAgIEVEUF9QU1IyX0lETEVfRlJBTUVfU0hJRlQJMAo+ID4gPiA+ ID4gIAo+ID4gPiA+ID4gLSNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19BCQkJMHg2MDg0OAo+ID4g PiA+ID4gLSNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19CCQkJMHg2MTg0OAo+ID4gPiA+ID4gLSNk ZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19DCQkJMHg2Mjg0OAo+ID4gPiA+ID4gLSNkZWZpbmUgX1BT Ul9FVkVOVF9UUkFOU19ECQkJMHg2Mzg0OAo+ID4gPiA+ID4gLSNkZWZpbmUgX1BTUl9FVkVOVF9U UkFOU19FRFAJCQkweDZGODQ4Cj4gPiA+ID4gPiAtI2RlZmluZSBQU1JfRVZFTlQodHJhbnMpCQkJ X01NSU9fVFJBTlMyKHRyYW5zLAo+ID4gPiA+ID4gX1BTUl9FVkVOVF9UUkFOU19BKQo+ID4gPiA+ ID4gKyNkZWZpbmUgUFNSX0VWRU5UCQkJCV9NTUlPKDB4NkY4NDgpCj4gPiA+ID4gPiAgI2RlZmlu ZSAgUFNSX0VWRU5UX1BTUjJfV0RfVElNRVJfRVhQSVJFCQkoMSA8PCAxNykKPiA+ID4gPiA+ICAj ZGVmaW5lICBQU1JfRVZFTlRfUFNSMl9ESVNBQkxFRAkJKDEgPDwgMTYpCj4gPiA+ID4gPiAgI2Rl ZmluZSAgUFNSX0VWRU5UX1NVX0RJUlRZX0ZJRk9fVU5ERVJSVU4JKDEgPDwgMTUpCj4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+ID4gPiA+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+ID4gPiA+IGluZGV4IGJiOTdj MTY1NzQ5My4uYjk4NGUwMDViNzJlIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Bzci5jCj4gPiA+ID4gPiBAQCAtODQsNDYgKzg0LDEyIEBAIHN0YXRpYyBib29sIGlu dGVsX3BzcjJfZW5hYmxlZChzdHJ1Y3QKPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gLXN0 YXRpYyBpbnQgZWRwX3Bzcl9zaGlmdChlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIpCj4g PiA+ID4gPiAtewo+ID4gPiA+ID4gLQlzd2l0Y2ggKGNwdV90cmFuc2NvZGVyKSB7Cj4gPiA+ID4g PiAtCWNhc2UgVFJBTlNDT0RFUl9BOgo+ID4gPiA+ID4gLQkJcmV0dXJuIEVEUF9QU1JfVFJBTlND T0RFUl9BX1NISUZUOwo+ID4gPiA+ID4gLQljYXNlIFRSQU5TQ09ERVJfQjoKPiA+ID4gPiA+IC0J CXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfQl9TSElGVDsKPiA+ID4gPiA+IC0JY2FzZSBUUkFO U0NPREVSX0M6Cj4gPiA+ID4gPiAtCQlyZXR1cm4gRURQX1BTUl9UUkFOU0NPREVSX0NfU0hJRlQ7 Cj4gPiA+ID4gPiAtCWRlZmF1bHQ6Cj4gPiA+ID4gPiAtCQlNSVNTSU5HX0NBU0UoY3B1X3RyYW5z Y29kZXIpOwo+ID4gPiA+ID4gLQkJLyogZmFsbHRocm91Z2ggKi8KPiA+ID4gPiA+IC0JY2FzZSBU UkFOU0NPREVSX0VEUDoKPiA+ID4gPiA+IC0JCXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfRURQ X1NISUZUOwo+ID4gPiA+ID4gLQl9Cj4gPiA+ID4gPiAtfQo+ID4gPiA+ID4gLQo+ID4gPiA+ID4g IHZvaWQgaW50ZWxfcHNyX2lycV9jb250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTMyCj4gPiA+ID4gPiBkZWJ1ZykKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAtCXUzMiBk ZWJ1Z19tYXNrLCBtYXNrOwo+ID4gPiA+ID4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29k ZXI7Cj4gPiA+ID4gPiAtCXUzMiB0cmFuc2NvZGVycyA9IEJJVChUUkFOU0NPREVSX0VEUCk7Cj4g PiA+ID4gPiAtCj4gPiA+ID4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCj4gPiA+ ID4gPiAtCQl0cmFuc2NvZGVycyB8PSBCSVQoVFJBTlNDT0RFUl9BKSB8Cj4gPiA+ID4gPiAtCQkJ ICAgICAgIEJJVChUUkFOU0NPREVSX0IpIHwKPiA+ID4gPiA+IC0JCQkgICAgICAgQklUKFRSQU5T Q09ERVJfQyk7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCWRlYnVnX21hc2sgPSAwOwo+ID4gPiA+ ID4gLQltYXNrID0gMDsKPiA+ID4gPiA+IC0JZm9yX2VhY2hfY3B1X3RyYW5zY29kZXJfbWFza2Vk KGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwKPiA+ID4gPiA+IHRyYW5zY29kZXJzKSB7Cj4gPiA+ ID4gPiAtCQlpbnQgc2hpZnQgPSBlZHBfcHNyX3NoaWZ0KGNwdV90cmFuc2NvZGVyKTsKPiA+ID4g PiA+IC0KPiA+ID4gPiA+IC0JCW1hc2sgfD0gRURQX1BTUl9FUlJPUihzaGlmdCk7Cj4gPiA+ID4g PiAtCQlkZWJ1Z19tYXNrIHw9IEVEUF9QU1JfUE9TVF9FWElUKHNoaWZ0KSB8Cj4gPiA+ID4gPiAt CQkJICAgICAgRURQX1BTUl9QUkVfRU5UUlkoc2hpZnQpOwo+ID4gPiA+ID4gLQl9Cj4gPiA+ID4g PiArCXUzMiBtYXNrID0gRURQX1BTUl9FUlJPUjsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJaWYg KGRlYnVnICYgSTkxNV9QU1JfREVCVUdfSVJRKQo+ID4gPiA+ID4gLQkJbWFzayB8PSBkZWJ1Z19t YXNrOwo+ID4gPiA+ID4gKwkJbWFzayB8PSBFRFBfUFNSX1BPU1RfRVhJVCB8IEVEUF9QU1JfUFJF X0VOVFJZOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCB+ bWFzayk7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gQEAgLTE2Nyw2MiArMTMzLDQ3IEBAIHN0YXRp YyB2b2lkIHBzcl9ldmVudF9wcmludCh1MzIgdmFsLCBib29sCj4gPiA+ID4gPiBwc3IyX2VuYWJs ZWQpCj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgdm9pZCBpbnRlbF9wc3JfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIKPiA+ID4gPiA+IHBzcl9paXIpCj4g PiA+ID4gPiAgewo+ID4gPiA+ID4gLQl1MzIgdHJhbnNjb2RlcnMgPSBCSVQoVFJBTlNDT0RFUl9F RFApOwo+ID4gPiA+ID4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7Cj4gPiA+ID4g PiAtCWt0aW1lX3QgdGltZV9ucyA9ICBrdGltZV9nZXQoKTsKPiA+ID4gPiA+IC0JdTMyIG1hc2sg PSAwOwo+ID4gPiA+ID4gKwlrdGltZV90IHRpbWVfbnMgPSBrdGltZV9nZXQoKTsKPiA+ID4gPiA+ ICAKPiA+ID4gPiA+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKPiA+ID4gPiA+IC0J CXRyYW5zY29kZXJzIHw9IEJJVChUUkFOU0NPREVSX0EpIHwKPiA+ID4gPiA+IC0JCQkgICAgICAg QklUKFRSQU5TQ09ERVJfQikgfAo+ID4gPiA+ID4gLQkJCSAgICAgICBCSVQoVFJBTlNDT0RFUl9D KTsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0JZm9yX2VhY2hfY3B1X3RyYW5zY29kZXJfbWFza2Vk KGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwKPiA+ID4gPiA+IHRyYW5zY29kZXJzKSB7Cj4gPiA+ ID4gPiAtCQlpbnQgc2hpZnQgPSBlZHBfcHNyX3NoaWZ0KGNwdV90cmFuc2NvZGVyKTsKPiA+ID4g PiA+IC0KPiA+ID4gPiA+IC0JCWlmIChwc3JfaWlyICYgRURQX1BTUl9FUlJPUihzaGlmdCkpIHsK PiA+ID4gPiA+IC0JCQlEUk1fV0FSTigiW3RyYW5zY29kZXIgJXNdIFBTUiBhdXggZXJyb3JcbiIs Cj4gPiA+ID4gPiAtCQkJCSB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsKPiA+ID4g PiA+IC0KPiA+ID4gPiA+IC0JCQlkZXZfcHJpdi0+cHNyLmlycV9hdXhfZXJyb3IgPSB0cnVlOwo+ ID4gPiA+ID4gLQo+ID4gPiA+ID4gLQkJCS8qCj4gPiA+ID4gPiAtCQkJICogSWYgdGhpcyBpbnRl cnJ1cHRpb24gaXMgbm90IG1hc2tlZCBpdCB3aWxsCj4gPiA+ID4gPiBrZWVwCj4gPiA+ID4gPiAt CQkJICogaW50ZXJydXB0aW5nIHNvIGZhc3QgdGhhdCBpdCBwcmV2ZW50cyB0aGUKPiA+ID4gPiA+ IHNjaGVkdWxlZAo+ID4gPiA+ID4gLQkJCSAqIHdvcmsgdG8gcnVuLgo+ID4gPiA+ID4gLQkJCSAq IEFsc28gYWZ0ZXIgYSBQU1IgZXJyb3IsIHdlIGRvbid0IHdhbnQgdG8gYXJtCj4gPiA+ID4gPiBQ U1IKPiA+ID4gPiA+IC0JCQkgKiBhZ2FpbiBzbyB3ZSBkb24ndCBjYXJlIGFib3V0IHVubWFzayB0 aGUKPiA+ID4gPiA+IGludGVycnVwdGlvbgo+ID4gPiA+ID4gLQkJCSAqIG9yIHVuc2V0IGlycV9h dXhfZXJyb3IuCj4gPiA+ID4gPiAtCQkJICovCj4gPiA+ID4gPiAtCQkJbWFzayB8PSBFRFBfUFNS X0VSUk9SKHNoaWZ0KTsKPiA+ID4gPiA+IC0JCX0KPiA+ID4gPiA+ICsJaWYgKHBzcl9paXIgJiBF RFBfUFNSX0VSUk9SKSB7Cj4gPiA+ID4gPiArCQl1MzIgbWFzazsKPiA+ID4gPiA+ICAKPiA+ID4g PiA+IC0JCWlmIChwc3JfaWlyICYgRURQX1BTUl9QUkVfRU5UUlkoc2hpZnQpKSB7Cj4gPiA+ID4g PiAtCQkJZGV2X3ByaXYtPnBzci5sYXN0X2VudHJ5X2F0dGVtcHQgPSB0aW1lX25zOwo+ID4gPiA+ ID4gLQkJCURSTV9ERUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQU1IgZW50cnkKPiA+ID4gPiA+ IGF0dGVtcHQgaW4gMiB2YmxhbmtzXG4iLAo+ID4gPiA+ID4gLQkJCQkgICAgICB0cmFuc2NvZGVy X25hbWUoY3B1X3RyYW5zY29kZXIpKTsKPiA+ID4gPiA+IC0JCX0KPiA+ID4gPiA+ICsJCURSTV9X QVJOKCJbdHJhbnNjb2RlciAlc10gUFNSIGF1eCBlcnJvclxuIiwKPiA+ID4gPiA+ICsJCQkgdHJh bnNjb2Rlcl9uYW1lKFRSQU5TQ09ERVJfRURQKSk7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAtCQlp ZiAocHNyX2lpciAmIEVEUF9QU1JfUE9TVF9FWElUKHNoaWZ0KSkgewo+ID4gPiA+ID4gLQkJCWRl dl9wcml2LT5wc3IubGFzdF9leGl0ID0gdGltZV9uczsKPiA+ID4gPiA+IC0JCQlEUk1fREVCVUdf S01TKCJbdHJhbnNjb2RlciAlc10gUFNSIGV4aXQKPiA+ID4gPiA+IGNvbXBsZXRlZFxuIiwKPiA+ ID4gPiA+IC0JCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7Cj4gPiA+ ID4gPiArCQlkZXZfcHJpdi0+cHNyLmlycV9hdXhfZXJyb3IgPSB0cnVlOwo+ID4gPiA+ID4gIAo+ ID4gPiA+ID4gLQkJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiA+ID4gPiA+IC0J CQkJdTMyIHZhbCA9Cj4gPiA+ID4gPiBJOTE1X1JFQUQoUFNSX0VWRU5UKGNwdV90cmFuc2NvZGVy KSk7Cj4gPiA+ID4gPiAtCQkJCWJvb2wgcHNyMl9lbmFibGVkID0gZGV2X3ByaXYtCj4gPiA+ID4g PiA+IHBzci5wc3IyX2VuYWJsZWQ7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICsJCS8qCj4gPiA+ID4g PiArCQkgKiBJZiB0aGlzIGludGVycnVwdGlvbiBpcyBub3QgbWFza2VkIGl0IHdpbGwga2VlcAo+ ID4gPiA+ID4gKwkJICogaW50ZXJydXB0aW5nIHNvIGZhc3QgdGhhdCBpdCBwcmV2ZW50cyB0aGUg c2NoZWR1bGVkCj4gPiA+ID4gPiArCQkgKiB3b3JrIHRvIHJ1bi4KPiA+ID4gPiA+ICsJCSAqIEFs c28gYWZ0ZXIgYSBQU1IgZXJyb3IsIHdlIGRvbid0IHdhbnQgdG8gYXJtIFBTUgo+ID4gPiA+ID4g KwkJICogYWdhaW4gc28gd2UgZG9uJ3QgY2FyZSBhYm91dCB1bm1hc2sgdGhlIGludGVycnVwdGlv bgo+ID4gPiA+ID4gKwkJICogb3IgdW5zZXQgaXJxX2F1eF9lcnJvci4KPiA+ID4gPiA+ICsJCSAq Lwo+ID4gPiA+ID4gKwkJbWFzayA9IEk5MTVfUkVBRChFRFBfUFNSX0lNUikgfCBFRFBfUFNSX0VS Uk9SOwo+ID4gPiA+ID4gKwkJSTkxNV9XUklURShFRFBfUFNSX0lNUiwgbWFzayk7Cj4gPiA+ID4g PiAgCj4gPiA+ID4gPiAtCQkJCUk5MTVfV1JJVEUoUFNSX0VWRU5UKGNwdV90cmFuc2NvZGVyKSwK PiA+ID4gPiA+IHZhbCk7Cj4gPiA+ID4gPiAtCQkJCXBzcl9ldmVudF9wcmludCh2YWwsIHBzcjJf ZW5hYmxlZCk7Cj4gPiA+ID4gPiAtCQkJfQo+ID4gPiA+ID4gLQkJfQo+ID4gPiA+ID4gKwkJc2No ZWR1bGVfd29yaygmZGV2X3ByaXYtPnBzci53b3JrKTsKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4g IAo+ID4gPiA+ID4gLQlpZiAobWFzaykgewo+ID4gPiA+ID4gLQkJbWFzayB8PSBJOTE1X1JFQUQo RURQX1BTUl9JTVIpOwo+ID4gPiA+ID4gLQkJSTkxNV9XUklURShFRFBfUFNSX0lNUiwgbWFzayk7 Cj4gPiA+ID4gPiArCWlmIChwc3JfaWlyICYgRURQX1BTUl9QUkVfRU5UUlkpIHsKPiA+ID4gPiA+ ICsJCWRldl9wcml2LT5wc3IubGFzdF9lbnRyeV9hdHRlbXB0ID0gdGltZV9uczsKPiA+ID4gPiA+ ICsJCURSTV9ERUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQU1IgZW50cnkgYXR0ZW1wdCBpbiAy Cj4gPiA+ID4gPiB2YmxhbmtzXG4iLAo+ID4gPiA+ID4gKwkJCSAgICAgIHRyYW5zY29kZXJfbmFt ZShUUkFOU0NPREVSX0VEUCkpOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAt CQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+cHNyLndvcmspOwo+ID4gPiA+ID4gKwlpZiAocHNy X2lpciAmIEVEUF9QU1JfUE9TVF9FWElUKSB7Cj4gPiA+ID4gPiArCQlEUk1fREVCVUdfS01TKCJb dHJhbnNjb2RlciAlc10gUFNSIGV4aXQgY29tcGxldGVkXG4iLAo+ID4gPiA+ID4gKwkJCSAgICAg IHRyYW5zY29kZXJfbmFtZShUUkFOU0NPREVSX0VEUCkpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g KwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ID4gPiA+ID4gKwkJCXUzMiB2YWwg PSBJOTE1X1JFQUQoUFNSX0VWRU5UKTsKPiA+ID4gPiA+ICsJCQlib29sIHBzcjJfZW5hYmxlZCA9 IGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkJCUk5 MTVfV1JJVEUoUFNSX0VWRU5ULCB2YWwpOwo+ID4gPiA+ID4gKwkJCXBzcl9ldmVudF9wcmludCh2 YWwsIHBzcjJfZW5hYmxlZCk7Cj4gPiA+ID4gPiArCQl9Cj4gPiA+ID4gPiAgCX0KPiA+ID4gPiA+ ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiBAQCAtNjY5LDMwICs2MjAsMTAgQEAgc3RhdGljIHZv aWQgaW50ZWxfcHNyX2FjdGl2YXRlKHN0cnVjdAo+ID4gPiA+ID4gaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gPiA+ID4gIAlkZXZfcHJpdi0+cHNyLmFjdGl2ZSA9IHRydWU7Cj4gPiA+ID4gPiAgfQo+ ID4gPiA+ID4gIAo+ID4gPiA+ID4gLXN0YXRpYyBpOTE1X3JlZ190IGdlbjlfY2hpY2tlbl90cmFu c19yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gPiA+ICpkZXZfcHJpdiwKPiA+ID4g PiA+IC0JCQkJCSBlbnVtIHRyYW5zY29kZXIKPiA+ID4gPiA+IGNwdV90cmFuc2NvZGVyKQo+ID4g PiA+ID4gLXsKPiA+ID4gPiA+IC0Jc3RhdGljIGNvbnN0IGk5MTVfcmVnX3QgcmVnc1tdID0gewo+ ID4gPiA+ID4gLQkJW1RSQU5TQ09ERVJfQV0gPSBDSElDS0VOX1RSQU5TX0EsCj4gPiA+ID4gPiAt CQlbVFJBTlNDT0RFUl9CXSA9IENISUNLRU5fVFJBTlNfQiwKPiA+ID4gPiA+IC0JCVtUUkFOU0NP REVSX0NdID0gQ0hJQ0tFTl9UUkFOU19DLAo+ID4gPiA+ID4gLQkJW1RSQU5TQ09ERVJfRURQXSA9 IENISUNLRU5fVFJBTlNfRURQLAo+ID4gPiA+ID4gLQl9Owo+ID4gPiA+ID4gLQo+ID4gPiA+ID4g LQlXQVJOX09OKElOVEVMX0dFTihkZXZfcHJpdikgPCA5KTsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+ IC0JaWYgKFdBUk5fT04oY3B1X3RyYW5zY29kZXIgPj0gQVJSQVlfU0laRShyZWdzKSB8fAo+ID4g PiA+ID4gLQkJICAgICFyZWdzW2NwdV90cmFuc2NvZGVyXS5yZWcpKQo+ID4gPiA+ID4gLQkJY3B1 X3RyYW5zY29kZXIgPSBUUkFOU0NPREVSX0E7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCXJldHVy biByZWdzW2NwdV90cmFuc2NvZGVyXTsKPiA+ID4gPiA+IC19Cj4gPiA+ID4gPiAtCj4gPiA+ID4g PiAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiA+ID4gPiA+ICAJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl Cj4gPiA+ID4gPiAqY3J0Y19zdGF0ZSkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gPiA+ ID4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJh bnNjb2RlcjsKPiA+ID4gPiA+ICAJdTMyIG1hc2s7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCS8q IE9ubHkgSFNXIGFuZCBCRFcgaGF2ZSBQU1IgQVVYIHJlZ2lzdGVycyB0aGF0IG5lZWQgdG8gYmUK PiA+ID4gPiA+IHNldHVwLiBTS0wrCj4gPiA+ID4gPiBAQCAtNzAzLDEzICs2MzQsMTEgQEAgc3Rh dGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9k cCAqaW50ZWxfZHAsCj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCWlmIChkZXZfcHJpdi0+cHNyLnBz cjJfZW5hYmxlZCAmJiAoSVNfR0VOKGRldl9wcml2LCA5KSAmJgo+ID4gPiA+ID4gIAkJCQkJICAg IUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSkgewo+ID4gPiA+ID4gLQkJaTkxNV9yZWdfdCByZWcg PSBnZW45X2NoaWNrZW5fdHJhbnNfcmVnKGRldl9wcml2LAo+ID4gPiA+ID4gLQkJCQkJCQljcHVf dHJhbnNjb2RlcikKPiA+ID4gPiA+IDsKPiA+ID4gPiA+IC0JCXUzMiBjaGlja2VuID0gSTkxNV9S RUFEKHJlZyk7Cj4gPiA+ID4gPiArCQl1MzIgY2hpY2tlbiA9IEk5MTVfUkVBRChDSElDS0VOX1RS QU5TX0VEUCk7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCQljaGlja2VuIHw9IFBTUjJfVlNDX0VO QUJMRV9QUk9HX0hFQURFUiB8Cj4gPiA+ID4gPiAgCQkJICAgUFNSMl9BRERfVkVSVElDQUxfTElO RV9DT1VOVDsKPiA+ID4gPiA+IC0JCUk5MTVfV1JJVEUocmVnLCBjaGlja2VuKTsKPiA+ID4gPiA+ ICsJCUk5MTVfV1JJVEUoQ0hJQ0tFTl9UUkFOU19FRFAsIGNoaWNrZW4pOwo+ID4gPiA+ID4gIAl9 Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCS8qCj4gPiA+ID4gPiBAQCAtMTIyMiw3ICsxMTUxLDcg QEAgdm9pZCBpbnRlbF9wc3JfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiA+ID4g KmRldl9wcml2KQo+ID4gPiA+ID4gIAkgKiB0byBhdm9pZCBhbnkgcmVuZGVyaW5nIHByb2JsZW1z Lgo+ID4gPiA+ID4gIAkgKi8KPiA+ID4gPiA+ICAJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlS KTsKPiA+ID4gPiA+IC0JdmFsICY9IEVEUF9QU1JfRVJST1IoZWRwX3Bzcl9zaGlmdChUUkFOU0NP REVSX0VEUCkpOwo+ID4gPiA+ID4gKwl2YWwgJj0gRURQX1BTUl9FUlJPUjsKPiA+ID4gPiA+ICAJ aWYgKHZhbCkgewo+ID4gPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGludGVycnVwdGlvbiBl cnJvciBzZXRcbiIpOwo+ID4gPiA+ID4gIAkJZGV2X3ByaXYtPnBzci5zaW5rX25vdF9yZWxpYWJs ZSA9IHRydWU7Cj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+IDIuMjEuMAo+ID4gPiA+ID4gCj4gPiAK PiA+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=