From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sagar Arun Kamble Subject: Re: [PATCH 21/31] drm/i915/slpc: Send RESET event to enable SLPC during Load/TDR Date: Thu, 28 Sep 2017 15:40:30 +0530 Message-ID: References: <1505842927-13327-1-git-send-email-sagar.a.kamble@intel.com> <1505842927-13327-22-git-send-email-sagar.a.kamble@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 190F46E25B for ; Thu, 28 Sep 2017 10:10:33 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michal Wajdeczko , intel-gfx@lists.freedesktop.org Cc: Tom O'Rourke List-Id: intel-gfx@lists.freedesktop.org CgpPbiA5LzIxLzIwMTcgNzozNiBQTSwgTWljaGFsIFdhamRlY3prbyB3cm90ZToKPiBPbiBUdWUs IDE5IFNlcCAyMDE3IDE5OjQxOjU3ICswMjAwLCBTYWdhciBBcnVuIEthbWJsZSAKPiA8c2FnYXIu YS5rYW1ibGVAaW50ZWwuY29tPiB3cm90ZToKPgo+PiBTZW5kIGhvc3QyZ3VjIFNMUEMgcmVzZXQg ZXZlbnQgdG8gR3VDIHBvc3QgR3VDIGxvYWQuCj4+IFBvc3QgdGhpcywgaTkxNSBjYW4gYXNjZXJ0 YWluIGlmIFNMUEMgaGFzIHN0YXJ0ZWQgcnVubmluZyBzdWNjZXNzZnVsbHkKPj4gdGhyb3VnaCBz aGFyZWQgZGF0YS4gVGhpcyBjaGVjayBpcyBkb25lIGR1cmluZyBpbnRlbF9pbml0X2d0X3Bvd2Vy c2F2ZS4KPj4gVGhpcyBhbGxvd3MgdG8gZ2V0IGluaXRpYWwgY29uZmlndXJhdGlvbiBzZXR1cCBi eSBTTFBDIGFuZCBpZiBuZWVkZWQKPj4gbW92ZSB0byBIb3N0IFJQUyBpZiBTTFBDIHJ1bnMgaW50 byBpc3N1ZXMuCj4+IE9uIFREUi9FbmdpbmUgcmVzZXQgaTkxNSBzaG91bGQgc2VuZCBleHRyYSBm bGFnCj4+IFNMUENfUkVTRVRfRkxBR19URFJfT0NDVVJSRUR0byBjbGVhciBTTFBDIHN0YXRlIGFz IGFwcHJvcHJpYXRlLgo+Pgo+PiB2MTogRXh0cmFjdCBob3N0Mmd1Y19zbHBjIHRvIGhhbmRsZSBz bHBjIHN0YXR1cyBjb2RlCj4+IMKgwqDCoCBjb2Rpbmcgc3R5bGUgY2hhbmdlcyAoUGF1bG8pCj4+ IMKgwqDCoCBSZW1vdmVkIFdBUk5fT04gZm9yIGNoZWNraW5nIG1zYiBvZiBndHQgYWRkcmVzcyBv Zgo+PiDCoMKgwqAgc2hhcmVkIGdlbSBvYmouIChDaHJpc1cpCj4+IMKgwqDCoCBob3N0Mmd1Y19h Y3Rpb24gdG8gaTkxNV9ndWNfYWN0aW9uIGNoYW5nZS4oU2FnYXIpCj4+IMKgwqDCoCBVcGRhdGlu ZyBTTFBDIGVuYWJsZWQgc3RhdHVzLiAoU2FnYXIpCj4+Cj4+IHYyOiBDb21taXQgbWVzc2FnZSB1 cGRhdGUuIChEYXZpZCkKPj4KPj4gdjM6IFJlYmFzZS4KPj4KPj4gdjQ6IEFkZGVkIERSTV9JTkZP IG1lc3NhZ2Ugd2hlbiBTTFBDIGlzIGVuYWJsZWQuCj4+Cj4+IHY1OiBVcGRhdGVkIHBhdGNoIGFz IGhvc3QyZ3VjX3NscGMgaXMgbW92ZWQgdG8gZWFybGllciBwYXRjaC4KPj4gwqDCoMKgIFNMUEMg YWN0aXZhdGlvbiBzdGF0dXMgbWVzc2FnZSBwdXQgYWZ0ZXIgY2hlY2tpbmcgdGhlCj4+IMKgwqDC oCBzdGF0ZSBmcm9tIHNoYXJlZCBkYXRhIGR1cmluZyBpbnRlbF9pbml0X2d0X3Bvd2Vyc2F2ZS4K Pj4KPj4gdjY6IEFkZGVkIGRlZmluaXRpb24gb2YgaG9zdDJndWNfc2xwYyBhbmQgY2xmbHVzaCB0 aGUgc2hhcmVkIGRhdGEgb25seQo+PiDCoMKgwqAgZm9yIHJlcXVpcmVkIHNpemUuIFNldHRpbmcg c3RhdGUgdG8gTk9UX1JVTk5JTkcgYmVmb3JlIHNlbmRpbmcgUkVTRVQKPj4gwqDCoMKgIGV2ZW50 LiBPdXRwdXQgZGF0YSBmb3IgU0xQQyBhY3Rpb25zIGlzIHRvIGJlIHJldHJpZXZlZCBkdXJpbmcK Pj4gwqDCoMKgIGludGVsX2d1Y19zZW5kIHdpdGggbG9jayBwcm90ZWN0aW9uIHNvIGNyZWF0ZWQg d3JhcHBlcgo+PiDCoMKgwqAgX19pbnRlbF9ndWNfc2VuZCB0aGF0IG91dHB1dHMgR3VDIG91dHB1 dCBkYXRhIGlmIG5lZWRlZC4gQ2xlYXJpbmcKPj4gwqDCoMKgIHBtX3Jwc19ldmVudHMgb24gY29u ZmlybWluZyBTTFBDIFJVTk5JTkcgc3RhdHVzIHNvIHRoYXQgZXZlbiBpZgo+PiDCoMKgwqAgaG9z dCB0b3VjaGVzIGFueSBvZiB0aGUgUE0gcmVnaXN0ZXJzIGJ5IG1pc3Rha2UgaXQgc2hvdWxkIG5v dCBoYXZlCj4+IMKgwqDCoCBhbnkgZWZmZWN0LiAoU2FnYXIpCj4+Cj4+IHY3OiBBZGRlZCBzYXZl L3Jlc3RvcmVfZGVmYXVsdF9ycHMgYXMgVW5jb3JlIHNhbml0aXplIHdpbGwgY2xlYXIgdGhlCj4+ IMKgwqDCoCBSUF9DT05UUk9MIHNldHVwIGJ5IEJJT1MuIHMvaTkxNV9nZ3R0X29mZnNldC9ndWNf Z2d0dF9vZmZzZXQuCj4+Cj4+IHY4OiBBZGRlZCBzdXBwb3J0IGZvciBoYW5kbGluZyBURFIgYmFz ZWQgU0xQQyByZXNldC4gQWRkZWQgZnVuY3Rpb25zCj4+IMKgwqDCoCBob3N0Mmd1Y19zbHBjX3Rk cl9yZXNldCwgaW50ZWxfc2xwY19yZXNldF9wcmVwYXJlIGFuZAo+PiDCoMKgwqAgaW50ZWxfc2xw Y190ZHJfcmVzZXQgdG8gaGFuZGxlIFREUiBiYXNlZCBTTFBDIHJlc2V0Lgo+Pgo+PiBDYzogTWlj aGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYt Ynk6IFRvbSBPJ1JvdXJrZSA8VG9tLk8nUm91cmtlQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1i eTogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGludGVsLmNvbT4KPj4gLS0tCj4+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuY8KgwqAgfMKgwqAgMiArCj4+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuY8KgwqAgfMKgwqAgNyArLQo+PiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmPCoMKgIHzCoCAxMCArKysKPj4gwqBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zbHBjLmMgfCAxNzAgCj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2xwYy5oIHzCoMKg IDkgKysKPj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jwqDCoCB8wqDCoCAxICsK Pj4gwqA2IGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIAo+PiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gaW5kZXggZjEzYTNkZS4uOTMyZjllZiAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IEBAIC0xMDc0LDYgKzEwNzQsOCBAQCBz dGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHcoc3RydWN0IAo+PiBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPj4gwqDCoMKgwqBpbnRlbF9zYW5pdGl6ZV9vcHRpb25zKGRldl9wcml2KTsK Pj4gK8KgwqDCoCBpbnRlbF9zbHBjX3NhdmVfZGVmYXVsdF9ycHMoJmRldl9wcml2LT5ndWMuc2xw Yyk7Cj4+ICsKPj4gwqDCoMKgwqAgcmV0ID0gaTkxNV9nZ3R0X3Byb2JlX2h3KGRldl9wcml2KTsK Pj4gwqDCoMKgwqAgaWYgKHJldCkKPj4gwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAKPj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4+IGluZGV4IDRhMTU1NGMuLjJkNWFkMTMgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+PiBAQCAtMjgzOCw4ICsyODM4LDEzIEBAIHZvaWQg aTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgCj4+ICpkZXZfcHJpdiwK Pj4gwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgIH0KPj4gLcKgwqDCoCBpZiAoIWVuZ2lu ZV9tYXNrKQo+PiArwqDCoMKgIGlmICghZW5naW5lX21hc2spIHsKPj4gK8KgwqDCoMKgwqDCoMKg IGlmIChpbnRlbF9zbHBjX2FjdGl2ZSgmZGV2X3ByaXYtPmd1Yy5zbHBjKSkgewo+PiArIGludGVs X3NscGNfcmVzZXRfcHJlcGFyZSgmZGV2X3ByaXYtPmd1Yy5zbHBjKTsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaW50ZWxfc2xwY190ZHJfcmVzZXQoJmRldl9wcml2LT5ndWMuc2xwYyk7Cj4+ ICvCoMKgwqDCoMKgwqDCoCB9Cj4KPiBDYW4geW91IGp1c3QganVtcCB0byBzaW5nbGUgc2xwYyBm dW5jdGlvbiB0aGF0IHdpbGwgaGlkZSBzbHBjIGludGVybmFscyA/CndlIG5lZWQgdG8gaGF2ZSB0 aGVzZSB0d28gY2FsbHMgYXMgY3VycmVudGx5IFNMUEMgZ2V0cyBlbmFibGVkIGR1cmluZyAKaW50 ZWxfdWNfaW5pdF9odyBhbmQgd2UgY2FuIHJlc2V0IGZyb20gdHdvIHBsYWNlcy4KMS4gZW5naW5l IHJlc2V0IDIuIGZ1bGwgZ3B1IHJlc2V0CkluIDFzdCBjYXNlIHdlIHdhbnQgdG8gZGlzYWJsZSBT TFBDIGFuZCByZXNldCBpdApJbiAybmQgY2FzZSB3ZSBqdXN0IHdhbnQgdG8gZGlzYWJsZSBTTFBD IGFuZCBsZXQgaXQgZ2V0IGVuYWJsZWQgdGhyb3VnaCAKaW50ZWxfc2xwY19lbmFibGUgYmFzZWQg b24gZmxhZyB0ZHJfcmVzZXQuCkkgd2lsbCByZW1vdmUgaW50ZWxfc2xwY19hY3RpdmUgY2hlY2sg aGVyZSBhbmQgcHJvYmFibHkgY3JlYXRlIHR3byAKZnVuY3Rpb25zIG5vdyB0byBoYW5kbGUgdGhl c2UgZGlmZmVyZW50IHR5cGVzIG9mIHJlc2V0cy4KPj4gwqDCoMKgwqDCoMKgwqDCoCBnb3RvIG91 dDsKPj4gK8KgwqDCoCB9Cj4+IMKgwqDCoMKgLyogRnVsbCByZXNldCBuZWVkcyB0aGUgbXV0ZXgs IHN0b3AgYW55IG90aGVyIHVzZXIgdHJ5aW5nIHRvIGRvIAo+PiBzby4gKi8KPj4gwqDCoMKgwqAg aWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAKPj4gJmRldl9wcml2LT5n cHVfZXJyb3IuZmxhZ3MpKSB7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPj4gaW5kZXgg NmIyYjdmOC4uYzIwNjVmMiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4+IEBAIC03 OTE4LDYgKzc5MTgsMTYgQEAgdm9pZCBpbnRlbF9pbml0X2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgCj4+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiDCoMKgwqDCoMKgwqDCoMKgIGludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPj4gwqDCoMKgwqAgfQo+PiArwqDCoMKgIGlmIChpbnRl bF9zbHBjX2VuYWJsZWQoKSkgewo+PiArwqDCoMKgwqDCoMKgwqAgZGV2X3ByaXYtPmd1Yy5zbHBj LmFjdGl2ZSA9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVsX3NscGNfZ2V0X3N0YXR1 cygmZGV2X3ByaXYtPmd1Yy5zbHBjKTsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICghaW50ZWxfc2xw Y19hY3RpdmUoJmRldl9wcml2LT5ndWMuc2xwYykpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaTkxNS5lbmFibGVfc2xwYyA9IDA7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVs X3Nhbml0aXplX2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVs c2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMgPSAw Owo+PiArwqDCoMKgIH0KPj4gKwo+Cj4gSG1tLCBvbiBvbmUgaGFuZCB5b3UncmUgdHJ5aW5nIHRv IHVzZSBmcmllbmRseSB3cmFwcGVycyBsaWtlCj4gZW5hYmxlZCgpIGFjdGl2ZSgpIGJ1dCBhdCB0 aGUgc2FtZSB0aW1lIHlvdSdyZSBtb2RpZnlpbmcgZGF0YQo+IHdoaWNoIHRoZXNlIGhlbHBlcnMg d2VyZSB0cnlpbmcgdG8gaGlkZSAuLi4KVGhpcyBhY3R1YWxseSBpcyBwb2ludCBmcm9tIHdoZXJl IG9uIGludGVsX3NscGNfYWN0aXZlKCkgaXMgZGV0ZXJtaW5lZC4KU0xQQyBlbmFibGluZyBpcyBh c3luY2hyb25vdXMgYW5kIHdlIHdvdWxkIG5lZWQgdG8gcG9sbCBvbiB0aGUgc2hhcmVkIAptZW1v cnkgc3RhdHVzIHRvIGtub3cgdGhlIHN0YXR1cyBsaWtlIGluIEh1QyBjYXNlLgpJIHdhbnRlZCB0 byBoaWRlIHRoYXQgbGF0ZW5jeSBieSBwdXNoaW5nIG91dCB0aGUgY2hlY2sgZm9yIFNMUEMgc3Rh dHVzIAp0byBpbnRlbF9pbml0X2d0X3Bvd2Vyc2F2ZSBhbmQgbm90IGhvbGQgdGhlIGdlbV9pbml0 IGZvciBsb25nLgpCdXQgaXQgc2VlbXMgdGhpcyBtZWNoYW5pc20gaXMgdW5yZWxpYWJsZSBhbmQg aXQgaXMgYmV0dGVyIHRvIHBvbGwuIApJZGVhbGx5IFNMUEMgc2hvdWxkIGhhdmUganVzdCByZXR1 cm5lZCBBQ0sgaW1tZWRpYXRlbHkuCldpbGwgdXBkYXRlIHRoaXMgdG8gaW5jbHVkZSBwb2xsIHNp bWlsYXIgdG8gdGhlIG9uZSBkb25lIGluIFNMUEMgZGlzYWJsaW5nLgpjdXJyZW50IGZsb3cgaXMs IAppOTE1X2dlbV9pbml0LT5pbnRlbF9pbml0X2d0X3Bvd2Vyc2F2ZS0+aW50ZWxfZW5hYmxlX2d0 X3Bvd2Vyc2F2ZSAobGF0ZXIgCmR1cmluZyB3b3JrbG9hZCBzdWJtaXNzaW9uKQo+Cj4+IG11dGV4 X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPj4gwqDCoMKgwqAgbXV0ZXhfbG9j aygmZGV2X3ByaXYtPnBtLnBjdV9sb2NrKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3NscGMuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zbHBj LmMKPj4gaW5kZXggZjQ3ZDgxZS4uNTdlNjlkNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc2xwYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3NscGMuYwo+PiBAQCAtMzkwLDYgKzM5MCwxNDAgQEAgc3RhdGljIHZvaWQgc2xwY19zaGFyZWRf ZGF0YV9pbml0KHN0cnVjdCAKPj4gaW50ZWxfc2xwYyAqc2xwYykKPj4gwqDCoMKgwqAga3VubWFw X2F0b21pYyhkYXRhKTsKPj4gwqB9Cj4+ICtzdGF0aWMgdm9pZCBob3N0Mmd1Y19zbHBjX3Jlc2V0 KHN0cnVjdCBpbnRlbF9zbHBjICpzbHBjKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBzbHBjX2V2 ZW50X2lucHV0IGRhdGEgPSB7MH07Cj4+ICvCoMKgwqAgdTMyIHNoYXJlZF9kYXRhX2d0dF9vZmZz ZXQgPSBndWNfZ2d0dF9vZmZzZXQoc2xwYy0+dm1hKTsKPj4gKwo+PiArwqDCoMKgIGRhdGEuaGVh ZGVyLnZhbHVlID0gU0xQQ19FVkVOVChTTFBDX0VWRU5UX1JFU0VULCAyKTsKPj4gK8KgwqDCoCBk YXRhLmFyZ3NbMF0gPSBzaGFyZWRfZGF0YV9ndHRfb2Zmc2V0Owo+PiArwqDCoMKgIGRhdGEuYXJn c1sxXSA9IDA7Cj4+ICsKPj4gK8KgwqDCoCBob3N0Mmd1Y19zbHBjKHNscGMsICZkYXRhLCA0KTsK Pj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgaG9zdDJndWNfc2xwY190ZHJfcmVzZXQoc3RydWN0 IGludGVsX3NscGMgKnNscGMpCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0IHNscGNfZXZlbnRfaW5w dXQgZGF0YSA9IHswfTsKPj4gK8KgwqDCoCB1MzIgc2hhcmVkX2RhdGFfZ3R0X29mZnNldCA9IGd1 Y19nZ3R0X29mZnNldChzbHBjLT52bWEpOwo+PiArCj4+ICvCoMKgwqAgZGF0YS5oZWFkZXIudmFs dWUgPSBTTFBDX0VWRU5UKFNMUENfRVZFTlRfUkVTRVQsIDMpOwo+PiArwqDCoMKgIGRhdGEuYXJn c1swXSA9IHNoYXJlZF9kYXRhX2d0dF9vZmZzZXQ7Cj4+ICvCoMKgwqAgZGF0YS5hcmdzWzFdID0g MDsKPj4gK8KgwqDCoCBkYXRhLmFyZ3NbMl0gPSBTTFBDX1JFU0VUX0ZMQUdfVERSX09DQ1VSUkVE Owo+PiArCj4+ICvCoMKgwqAgaG9zdDJndWNfc2xwYyhzbHBjLCAmZGF0YSwgNSk7Cj4+ICt9Cj4+ ICsKPj4gK3N0YXRpYyB2b2lkIGhvc3QyZ3VjX3NscGNfcXVlcnlfdGFza19zdGF0ZShzdHJ1Y3Qg aW50ZWxfc2xwYyAqc2xwYykKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3Qgc2xwY19ldmVudF9pbnB1 dCBkYXRhID0gezB9Owo+PiArwqDCoMKgIHUzMiBzaGFyZWRfZGF0YV9ndHRfb2Zmc2V0ID0gZ3Vj X2dndHRfb2Zmc2V0KHNscGMtPnZtYSk7Cj4+ICsKPj4gK8KgwqDCoCBkYXRhLmhlYWRlci52YWx1 ZSA9IFNMUENfRVZFTlQoU0xQQ19FVkVOVF9RVUVSWV9UQVNLX1NUQVRFLCAyKTsKPj4gK8KgwqDC oCBkYXRhLmFyZ3NbMF0gPSBzaGFyZWRfZGF0YV9ndHRfb2Zmc2V0Owo+PiArwqDCoMKgIGRhdGEu YXJnc1sxXSA9IDA7Cj4+ICsKPj4gK8KgwqDCoCBob3N0Mmd1Y19zbHBjKHNscGMsICZkYXRhLCA0 KTsKPj4gK30KPj4gKwo+PiArdm9pZCBpbnRlbF9zbHBjX3F1ZXJ5X3Rhc2tfc3RhdGUoc3RydWN0 IGludGVsX3NscGMgKnNscGMpCj4+ICt7Cj4+ICvCoMKgwqAgaWYgKHNscGMtPmFjdGl2ZSkKPj4g K8KgwqDCoMKgwqDCoMKgIGhvc3QyZ3VjX3NscGNfcXVlcnlfdGFza19zdGF0ZShzbHBjKTsKPj4g K30KPj4gKwo+PiArLyoKPj4gKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWFkcyB0aGUgc3RhdGUg dXBkYXRlcyBmcm9tIEd1QyBTTFBDIGludG8gCj4+IHNoYXJlZCBkYXRhCj4+ICsgKiBieSBpbnZv a2luZyBIMkcgYWN0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgb2YgR3VDIFNMUEMuCj4+ICsg Ki8KPj4gK3ZvaWQgaW50ZWxfc2xwY19yZWFkX3NoYXJlZF9kYXRhKHN0cnVjdCBpbnRlbF9zbHBj ICpzbHBjLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHNscGNf c2hhcmVkX2RhdGEgKmRhdGEpCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0IHBhZ2UgKnBhZ2U7Cj4+ ICvCoMKgwqAgdm9pZCAqcHYgPSBOVUxMOwo+PiArCj4+ICvCoMKgwqAgaW50ZWxfc2xwY19xdWVy eV90YXNrX3N0YXRlKHNscGMpOwo+PiArCj4+ICvCoMKgwqAgcGFnZSA9IGk5MTVfdm1hX2ZpcnN0 X3BhZ2Uoc2xwYy0+dm1hKTsKPj4gK8KgwqDCoCBwdiA9IGttYXBfYXRvbWljKHBhZ2UpOwo+PiAr Cj4+ICvCoMKgwqAgZHJtX2NsZmx1c2hfdmlydF9yYW5nZShwdiwgc2l6ZW9mKHN0cnVjdCBzbHBj X3NoYXJlZF9kYXRhKSk7Cj4+ICvCoMKgwqAgbWVtY3B5KGRhdGEsIHB2LCBzaXplb2Yoc3RydWN0 IHNscGNfc2hhcmVkX2RhdGEpKTsKPj4gKwo+PiArwqDCoMKgIGt1bm1hcF9hdG9taWMocHYpOwo+ PiArfQo+PiArCj4+ICtjb25zdCBjaGFyICppbnRlbF9zbHBjX2dldF9zdGF0ZV9zdHIoZW51bSBz bHBjX2dsb2JhbF9zdGF0ZSBzdGF0ZSkKPj4gK3sKPj4gK8KgwqDCoCBpZiAoc3RhdGUgPT0gU0xQ Q19HTE9CQUxfU1RBVEVfTk9UX1JVTk5JTkcpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gIm5v dCBydW5uaW5nIjsKPj4gK8KgwqDCoCBlbHNlIGlmIChzdGF0ZSA9PSBTTFBDX0dMT0JBTF9TVEFU RV9JTklUSUFMSVpJTkcpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gImluaXRpYWxpemluZyI7 Cj4+ICvCoMKgwqAgZWxzZSBpZiAoc3RhdGUgPT0gU0xQQ19HTE9CQUxfU1RBVEVfUkVTRVRUSU5H KQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuICJyZXNldHRpbmciOwo+PiArwqDCoMKgIGVsc2Ug aWYgKHN0YXRlID09IFNMUENfR0xPQkFMX1NUQVRFX1JVTk5JTkcpCj4+ICvCoMKgwqDCoMKgwqDC oCByZXR1cm4gInJ1bm5pbmciOwo+PiArwqDCoMKgIGVsc2UgaWYgKHN0YXRlID09IFNMUENfR0xP QkFMX1NUQVRFX1NIVVRUSU5HX0RPV04pCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gInNodXR0 aW5nIGRvd24iOwo+PiArwqDCoMKgIGVsc2UgaWYgKHN0YXRlID09IFNMUENfR0xPQkFMX1NUQVRF X0VSUk9SKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuICJlcnJvciI7Cj4+ICvCoMKgwqAgZWxz ZQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuICJ1bmtub3duIjsKPgo+IHMvaWYuLmVsc2Uvc3dp dGNoLi5jYXNlCk9rLiB3aWxsIHVwZGF0ZS4KPgo+PiArfQo+PiArCj4+ICtib29sIGludGVsX3Ns cGNfZ2V0X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYykKPj4gK3sKPj4gK8KgwqDCoCBz dHJ1Y3Qgc2xwY19zaGFyZWRfZGF0YSBkYXRhOwo+PiArwqDCoMKgIGJvb2wgcmV0ID0gZmFsc2U7 Cj4+ICsKPj4gK8KgwqDCoCBpbnRlbF9zbHBjX3JlYWRfc2hhcmVkX2RhdGEoc2xwYywgJmRhdGEp Owo+PiArwqDCoMKgIERSTV9JTkZPKCJTTFBDIHN0YXRlOiAlc1xuIiwKPj4gK8KgwqDCoMKgwqDC oMKgwqAgaW50ZWxfc2xwY19nZXRfc3RhdGVfc3RyKGRhdGEuZ2xvYmFsX3N0YXRlKSk7Cj4+ICsK Pj4gK8KgwqDCoCBzd2l0Y2ggKGRhdGEuZ2xvYmFsX3N0YXRlKSB7Cj4+ICvCoMKgwqAgY2FzZSBT TFBDX0dMT0JBTF9TVEFURV9SVU5OSU5HOgo+PiArwqDCoMKgwqDCoMKgwqAgLyogQ2FwdHVyZSBy ZXF1aXJlZCBzdGF0ZSBmcm9tIFNMUEMgaGVyZSAqLwo+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0g dHJ1ZTsKPj4gK8KgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiArwqDCoMKgIGNhc2UgU0xQQ19HTE9C QUxfU1RBVEVfRVJST1I6Cj4+ICvCoMKgwqDCoMKgwqDCoCBEUk1fRVJST1IoIlNMUEMgaW4gZXJy b3Igc3RhdGUuXG4iKTsKPj4gK8KgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiArwqDCoMKgIGNhc2Ug U0xQQ19HTE9CQUxfU1RBVEVfUkVTRVRUSU5HOgo+PiArwqDCoMKgwqDCoMKgwqAgLyoKPj4gK8Kg wqDCoMKgwqDCoMKgwqAgKiBTTFBDIGVuYWJsaW5nIGluIEd1QyBzaG91bGQgYmUgY29tcGxldGlu ZyBmYXN0Lgo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIElmIFNMUEMgaXMgdGFraW5nIHRpbWUgdG8g aW5pdGlhbGl6ZSAodW5saWtlbHkgYXMgd2UgYXJlCj4+ICvCoMKgwqDCoMKgwqDCoMKgICogc2Vu ZGluZyByZXNldCBldmVudCBkdXJpbmcgR3VDIGxvYWQgaXRzZWxmKS4KPj4gK8KgwqDCoMKgwqDC oMKgwqAgKiBUT0RPOiBOZWVkIHRvIHdhaXQgdGlsbCBzdGF0ZSBjaGFuZ2VzIHRvIFJVTk5JTkcu Cj4+ICvCoMKgwqDCoMKgwqDCoMKgICovCj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSB0cnVlOwo+ PiArwqDCoMKgwqDCoMKgwqAgRFJNX0VSUk9SKCJTTFBDIG5vdCBydW5uaW5nIHlldC4hISEiKTsK Pj4gK8KgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiArwqDCoMKgIGRlZmF1bHQ6Cj4+ICvCoMKgwqDC oMKgwqDCoCBicmVhazsKPj4gK8KgwqDCoCB9Cj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4gK30K Pgo+IEhtbSwgdGhpcyBmdW5jdGlvbiBpcyB0cnlpbmcgdG8gZG8gbXVjaCBtb3JlIHRoYW4gc2lt cGxlICdnZXQnIHN0YXR1cy4KPiBJcyB0aGlzIG5lY2Vzc2FyeSB0byBwcmludCB0aGF0IG1hbnkg bWVzc2FnZXMgaGVyZSA/ClRoZXNlIGFyZSBmb3IgZGVidWcgcHVycG9zZS4gd2lsbCBzcGxpdCB0 aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgo+Cj4+ICsKPj4gKy8qCj4+ICsgKiBVbmNvcmUgc2FuaXRp emUgY2xlYXJzIFJQUyBzdGF0ZSBpbiBIb3N0IEdUUE0gZmxvd3Mgc2V0IGJ5IEJJT1MsIAo+PiBT YXZlIHRoZQo+PiArICogaW5pdGlhbCBCSU9TIHByb2dyYW1tZWQgUlBTIHN0YXRlIHRoYXQgaXMg bmVlZGVkIGJ5IFNMUEMgYW5kIG5vdCAKPj4gc2V0IGJ5IFNMUEMuCj4+ICsgKiBTZXQgdGhpcyBz dGF0ZSB3aGlsZSBlbmFibGluZyBTTFBDLgo+PiArICovCj4+ICt2b2lkIGludGVsX3NscGNfc2F2 ZV9kZWZhdWx0X3JwcyhzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYykKPj4gK3sKPj4gK8KgwqDCoCBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzbHBjX3RvX2k5MTUoc2xwYyk7Cj4+ ICsKPj4gK8KgwqDCoCBzbHBjLT5ycF9jb250cm9sID0gSTkxNV9SRUFEKEdFTjZfUlBfQ09OVFJP TCk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGludGVsX3NscGNfcmVzdG9yZV9kZWZhdWx0 X3JwcyhzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYykKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzbHBjX3RvX2k5MTUoc2xwYyk7Cj4+ICsKPj4gK8Kg wqDCoCBJOTE1X1dSSVRFKEdFTjZfUlBfQ09OVFJPTCwgc2xwYy0+cnBfY29udHJvbCk7Cj4+ICt9 Cj4+ICsKPj4gwqB2b2lkIGludGVsX3NscGNfaW5pdChzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYykK Pj4gwqB7Cj4+IMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IHNscGNfdG9fZ3VjKHNs cGMpOwo+PiBAQCAtNDI2LDYgKzU2MCw0MiBAQCB2b2lkIGludGVsX3NscGNfY2xlYW51cChzdHJ1 Y3QgaW50ZWxfc2xwYyAqc2xwYykKPj4gdm9pZCBpbnRlbF9zbHBjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfc2xwYyAqc2xwYykKPj4gwqB7Cj4+ICvCoMKgwqAgc3RydWN0IHBhZ2UgKnBhZ2U7Cj4+ICvC oMKgwqAgc3RydWN0IHNscGNfc2hhcmVkX2RhdGEgKmRhdGE7Cj4+ICsKPj4gK8KgwqDCoCBpbnRl bF9zbHBjX3Jlc3RvcmVfZGVmYXVsdF9ycHMoc2xwYyk7Cj4+ICsKPj4gK8KgwqDCoCBwYWdlID0g aTkxNV92bWFfZmlyc3RfcGFnZShzbHBjLT52bWEpOwo+PiArwqDCoMKgIGRhdGEgPSBrbWFwX2F0 b21pYyhwYWdlKTsKPj4gK8KgwqDCoCBkYXRhLT5nbG9iYWxfc3RhdGUgPSBTTFBDX0dMT0JBTF9T VEFURV9OT1RfUlVOTklORzsKPj4gK8KgwqDCoCBrdW5tYXBfYXRvbWljKGRhdGEpOwo+PiArCj4+ ICvCoMKgwqAgaWYgKHNscGMtPnRkcl9yZXNldCkgewo+PiArwqDCoMKgwqDCoMKgwqAgaG9zdDJn dWNfc2xwY190ZHJfcmVzZXQoc2xwYyk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBzbHBjLT50ZHJfcmVz ZXQgPSBmYWxzZTsKPj4gK8KgwqDCoCB9IGVsc2Ugewo+PiArwqDCoMKgwqDCoMKgwqAgaG9zdDJn dWNfc2xwY19yZXNldChzbHBjKTsKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCBzbHBjLT5h Y3RpdmUgPSB0cnVlOwo+PiArfQo+PiArCj4+ICt2b2lkIGludGVsX3NscGNfcmVzZXRfcHJlcGFy ZShzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYykKPj4gK3sKPj4gK8KgwqDCoCBpZiAoaW50ZWxfc2xw Y19hY3RpdmUoc2xwYykpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGludGVsX3NscGNfZGlzYWJsZShz bHBjKTsKPj4gK8KgwqDCoMKgwqDCoMKgIHNscGMtPnRkcl9yZXNldCA9IHRydWU7Cj4+ICvCoMKg wqAgfQo+PiArfQo+PiArCj4+ICt2b2lkIGludGVsX3NscGNfdGRyX3Jlc2V0KHN0cnVjdCBpbnRl bF9zbHBjICpzbHBjKQo+PiArewo+PiArwqDCoMKgIGludGVsX3NscGNfcmVzdG9yZV9kZWZhdWx0 X3JwcyhzbHBjKTsKPj4gK8KgwqDCoCBzbHBjX3NoYXJlZF9kYXRhX2luaXQoc2xwYyk7Cj4+ICsK Pj4gK8KgwqDCoCBob3N0Mmd1Y19zbHBjX3Rkcl9yZXNldChzbHBjKTsKPj4gK8KgwqDCoCBzbHBj LT5hY3RpdmUgPSB0cnVlOwo+PiArwqDCoMKgIHNscGMtPnRkcl9yZXNldCA9IGZhbHNlOwo+PiDC oH0KPj4gdm9pZCBpbnRlbF9zbHBjX2Rpc2FibGUoc3RydWN0IGludGVsX3NscGMgKnNscGMpCj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zbHBjLmggCj4+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2xwYy5oCj4+IGluZGV4IDBmZjE3ZjAuLjIwYzM0MmIg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NscGMuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zbHBjLmgKPj4gQEAgLTI2LDcgKzI2LDkgQEAK Pj4gc3RydWN0IGludGVsX3NscGMgewo+PiDCoMKgwqDCoCBib29sIGFjdGl2ZTsKPj4gK8KgwqDC oCBib29sIHRkcl9yZXNldDsKPj4gwqDCoMKgwqAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4+ICvC oMKgwqAgdTMyIHJwX2NvbnRyb2w7Cj4+IMKgfTsKPj4gc3RhdGljIGlubGluZSBpbnQgaW50ZWxf c2xwY19lbmFibGVkKHZvaWQpCj4+IEBAIC0yNTUsOSArMjU3LDE2IEBAIGludCBpbnRlbF9zbHBj X3Rhc2tfY29udHJvbChzdHJ1Y3QgaW50ZWxfc2xwYyAKPj4gKnNscGMsIHU2NCB2YWwsCj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiBlbmFibGVfaWQsIHUzMiBkaXNhYmxl X2lkKTsKPj4gwqBpbnQgaW50ZWxfc2xwY190YXNrX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfc2xwYyAq c2xwYywgdTY0ICp2YWwsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1MzIgZW5h YmxlX2lkLCB1MzIgZGlzYWJsZV9pZCk7Cj4+ICt2b2lkIGludGVsX3NscGNfcmVhZF9zaGFyZWRf ZGF0YShzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHN0cnVjdCBzbHBjX3NoYXJlZF9kYXRhICpkYXRhKTsKPj4gK2NvbnN0IGNoYXIg KmludGVsX3NscGNfZ2V0X3N0YXRlX3N0cihlbnVtIHNscGNfZ2xvYmFsX3N0YXRlIHN0YXRlKTsK Pj4gK2Jvb2wgaW50ZWxfc2xwY19nZXRfc3RhdHVzKHN0cnVjdCBpbnRlbF9zbHBjICpzbHBjKTsK Pj4gK3ZvaWQgaW50ZWxfc2xwY19zYXZlX2RlZmF1bHRfcnBzKHN0cnVjdCBpbnRlbF9zbHBjICpz bHBjKTsKPj4gwqB2b2lkIGludGVsX3NscGNfaW5pdChzdHJ1Y3QgaW50ZWxfc2xwYyAqc2xwYyk7 Cj4+IMKgdm9pZCBpbnRlbF9zbHBjX2NsZWFudXAoc3RydWN0IGludGVsX3NscGMgKnNscGMpOwo+ PiDCoHZvaWQgaW50ZWxfc2xwY19lbmFibGUoc3RydWN0IGludGVsX3NscGMgKnNscGMpOwo+PiDC oHZvaWQgaW50ZWxfc2xwY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9zbHBjICpzbHBjKTsKPj4gK3Zv aWQgaW50ZWxfc2xwY19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9zbHBjICpzbHBjKTsKPj4g K3ZvaWQgaW50ZWxfc2xwY190ZHJfcmVzZXQoc3RydWN0IGludGVsX3NscGMgKnNscGMpOwo+PiAj ZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMgCj4+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYwo+PiBpbmRleCA5OTBkODRhLi5kODU4 MmI4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKPj4gQEAgLTUwMiw1ICs1MDIsNiBA QCBpbnQgaW50ZWxfdWNfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIAo+PiAqZGV2X3By aXYpCj4+IGludCBpbnRlbF91Y19yZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPj4gwqB7Cj4+ICvCoMKgwqAgaW50ZWxfc2xwY19yZXNldF9wcmVwYXJlKCZk ZXZfcHJpdi0+Z3VjLnNscGMpOwo+PiDCoMKgwqDCoCByZXR1cm4gaW50ZWxfdWNfc3VzcGVuZChk ZXZfcHJpdik7Cj4+IMKgfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==