From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 3/4] drm/i915/psr: Control PSR interrupts via debugfs Date: Wed, 28 Mar 2018 13:28:21 +0300 Message-ID: <20180328102821.GN5453@intel.com> References: <20180327011623.3341-1-dhinakaran.pandiyan@intel.com> <20180327011623.3341-3-dhinakaran.pandiyan@intel.com> <20180327102428.GL5453@intel.com> <1522177053.2487.84.camel@dk-H97M-D3H> 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 C4A686E263 for ; Wed, 28 Mar 2018 10:28:25 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1522177053.2487.84.camel@dk-H97M-D3H> 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" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMjcsIDIwMTggYXQgMDY6MzM6MTFQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVHVlLCAyMDE4LTAzLTI3IGF0IDEzOjI0ICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBNb24sIE1hciAyNiwgMjAxOCBhdCAwNjoxNjoyMlBNIC0w NzAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdyb3RlOgo+ID4gPiBJbnRlcnJ1cHRzIG90aGVyIHRo YW4gdGhlIG9uZSBmb3IgQVVYIGVycm9ycyBhcmUgcmVxdWlyZWQgb25seSBmb3IgZGVidWcsCj4g PiA+IHNvIHVubWFzayB0aGVtIHZpYSBkZWJ1Z2ZzIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgZGVi dWcuCj4gPiA+IAo+ID4gPiBVc2VyIGNhbiBtYWtlIHN1Y2ggYSByZXF1ZXN0IHdpdGgKPiA+ID4g ZWNobyAxID4gPERFQlVHX0ZTPi9kcmkvMC9pOTE1X2VkcF9wc3JfZGVidWcKPiA+ID4gCj4gPiA+ IHYyOiBVbnJvbGwgbG9vcHMgKFZpbGxlKQo+ID4gPiAgICAgQXZvaWQgcmVzZXR0aW5nIGVycm9y IG1hc2sgYml0cy4KPiA+ID4gCj4gPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+Cj4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+ID4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKystCj4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAxICsKPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgIHwgNTUgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgfCAg MiArKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgICAgfCA1NCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwg MTA4IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ID4gaW5kZXggNzgxNmNkNTMxMDBhLi42ZmQ4MDFlZjdj YmIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+IEBA IC0yNjkwLDYgKzI2OTAsMzkgQEAgc3RhdGljIGludCBpOTE1X2VkcF9wc3Jfc3RhdHVzKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gIH0KPiA+ ID4gIAo+ID4gPiArc3RhdGljIGludAo+ID4gPiAraTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lk ICpkYXRhLCB1NjQgdmFsKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRhdGE7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIUNBTl9QU1IoZGV2X3ByaXYp KQo+ID4gPiArCQlyZXR1cm4gLUVOT0RFVjsKPiA+ID4gKwo+ID4gPiArCWlmICh2YWwgPCAwICB8 fCB2YWwgPiAxKQo+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+IAo+ID4gQ2FuJ3QgYmUgPCAw Lgo+ID4gCj4gPiA+ICsKPiA+ID4gKwlEUk1fREVCVUdfS01TKCIlcyBQU1IgZGVidWdcbiIsIHZh bCA9PSAxID8gIkVuYWJsaW5nIiA6ICJEaXNhYmxpbmciKTsKPiA+IAo+ID4gPT0xIHNlZW1zIHBv aW50bGVzcwo+ID4gZW5hYmxlZGRpc2FibGVkKCkgY291bGQgYmUgdXNlZCBwZXJoYXBzLgo+ID4g Cj4gCj4gV2lsbCBkby4KPiAKPiA+IAo+ID4gPiArCWludGVsX3Bzcl9kZWJ1Z19jb250cm9sKGRl dl9wcml2LCB2YWwpOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ICt9Cj4gPiA+ICsK PiA+ID4gK3N0YXRpYyBpbnQKPiA+ID4gK2k5MTVfZWRwX3Bzcl9kZWJ1Z19nZXQodm9pZCAqZGF0 YSwgdTY0ICp2YWwpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGF0YTsKPiA+ID4gKwo+ID4gPiArCWlmICghQ0FOX1BTUihkZXZfcHJpdikpCj4g PiA+ICsJCXJldHVybiAtRU5PREVWOwo+ID4gPiArCj4gPiA+ICsJKnZhbCA9IFJFQURfT05DRShk ZXZfcHJpdi0+cHNyLmRlYnVnKTsKPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ ID4gPiArREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUoaTkxNV9lZHBfcHNyX2RlYnVnX2ZvcHMsCj4g PiA+ICsJCQlpOTE1X2VkcF9wc3JfZGVidWdfZ2V0LCBpOTE1X2VkcF9wc3JfZGVidWdfc2V0LAo+ ID4gPiArCQkJIiVsbHVcbiIpOwo+ID4gPiArCj4gPiA+ICBzdGF0aWMgaW50IGk5MTVfc2lua19j cmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsK PiA+ID4gQEAgLTQ4MTEsNyArNDg0NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9kZWJ1 Z2ZzX2ZpbGVzIHsKPiA+ID4gIAl7Imk5MTVfZ3VjX2xvZ19yZWxheSIsICZpOTE1X2d1Y19sb2df cmVsYXlfZm9wc30sCj4gPiA+ICAJeyJpOTE1X2hwZF9zdG9ybV9jdGwiLCAmaTkxNV9ocGRfc3Rv cm1fY3RsX2ZvcHN9LAo+ID4gPiAgCXsiaTkxNV9pcGNfc3RhdHVzIiwgJmk5MTVfaXBjX3N0YXR1 c19mb3BzfSwKPiA+ID4gLQl7Imk5MTVfZHJyc19jdGwiLCAmaTkxNV9kcnJzX2N0bF9mb3BzfQo+ ID4gPiArCXsiaTkxNV9kcnJzX2N0bCIsICZpOTE1X2RycnNfY3RsX2ZvcHN9LAo+ID4gPiArCXsi aTkxNV9lZHBfcHNyX2RlYnVnIiwgJmk5MTVfZWRwX3Bzcl9kZWJ1Z19mb3BzfQo+ID4gPiAgfTsK PiA+ID4gIAo+ID4gPiAgaW50IGk5MTVfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBpbmRl eCBjOWMzYjJiYTZhODYuLmMwMjI0YTg2MzQ0ZSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiA+IEBAIC02MDgsNiArNjA4LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiA+ ID4gIAlib29sIGNvbG9yaW1ldHJ5X3N1cHBvcnQ7Cj4gPiA+ICAJYm9vbCBhbHBtOwo+ID4gPiAg CWJvb2wgaGFzX2h3X3RyYWNraW5nOwo+ID4gPiArCWJvb2wgZGVidWc7Cj4gPiA+ICAKPiA+ID4g IAl2b2lkICgqZW5hYmxlX3NvdXJjZSkoc3RydWN0IGludGVsX2RwICosCj4gPiA+ICAJCQkgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCj4gPiA+IGluZGV4IDhhODk0YWRmMmNhMS4uZTVhYWY4MDVjNmE4IDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gQEAgLTIzOTEsNDAgKzIzOTEsNiBAQCBz dGF0aWMgdm9pZCBpbGtfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gPiA+ICAJCWlyb25sYWtlX3Jwc19jaGFuZ2VfaXJxX2hhbmRsZXIoZGV2 X3ByaXYpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgdm9pZCBoc3dfZWRwX3Bzcl9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+IC17Cj4g PiA+IC0JdTMyIGVkcF9wc3JfaWlyID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKPiA+ID4gLQl1 MzIgZWRwX3Bzcl9pbXIgPSBJOTE1X1JFQUQoRURQX1BTUl9JTVIpOwo+ID4gPiAtCXUzMiBtYXNr ID0gQklUKFRSQU5TQ09ERVJfRURQKTsKPiA+ID4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5z Y29kZXI7Cj4gPiA+IC0KPiA+ID4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQo+ID4g PiAtCQltYXNrIHw9IEJJVChUUkFOU0NPREVSX0EpIHwKPiA+ID4gLQkJCUJJVChUUkFOU0NPREVS X0IpIHwKPiA+ID4gLQkJCUJJVChUUkFOU0NPREVSX0MpOwo+ID4gPiAtCj4gPiA+IC0JZm9yX2Vh Y2hfY3B1X3RyYW5zY29kZXJfbWFza2VkKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgbWFzaykg ewo+ID4gPiAtCQlpZiAoZWRwX3Bzcl9paXIgJiBFRFBfUFNSX0VSUk9SKGNwdV90cmFuc2NvZGVy KSkKPiA+ID4gLQkJCURSTV9ERUJVR19LTVMoIlRyYW5zY29kZXIgJXMgUFNSIGVycm9yXG4iLAo+ ID4gPiAtCQkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2RlcikpOwo+ID4gPiAt Cj4gPiA+IC0JCWlmIChlZHBfcHNyX2lpciAmIEVEUF9QU1JfUFJFX0VOVFJZKGNwdV90cmFuc2Nv ZGVyKSkgewo+ID4gPiAtCQkJRFJNX0RFQlVHX0tNUygiVHJhbnNjb2RlciAlcyBQU1IgcHJlcGFy ZSBlbnRyeSBpbiAyIHZibGFua3NcbiIsCj4gPiA+IC0JCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1l KGNwdV90cmFuc2NvZGVyKSk7Cj4gPiA+IC0JCQllZHBfcHNyX2ltciB8PSBFRFBfUFNSX1BSRV9F TlRSWShjcHVfdHJhbnNjb2Rlcik7Cj4gPiA+IC0JCX0KPiA+ID4gLQo+ID4gPiAtCQlpZiAoZWRw X3Bzcl9paXIgJiBFRFBfUFNSX1BPU1RfRVhJVChjcHVfdHJhbnNjb2RlcikpIHsKPiA+ID4gLQkJ CURSTV9ERUJVR19LTVMoIlRyYW5zY29kZXIgJXMgUFNSIGV4aXQgY29tcGxldGVkXG4iLAo+ID4g PiAtCQkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2RlcikpOwo+ID4gPiAtCQkJ ZWRwX3Bzcl9pbXIgJj0gfkVEUF9QU1JfUFJFX0VOVFJZKGNwdV90cmFuc2NvZGVyKTsKPiA+ID4g LQkJfQo+ID4gPiAtCX0KPiA+ID4gLQo+ID4gPiAtCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIGVk cF9wc3JfaW1yKTsKPiA+ID4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfSUlSLCBlZHBfcHNyX2lpcik7 Cj4gPiA+IC19Cj4gPiA+IC0KPiA+ID4gIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9oYW5k bGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAkJCQkgICAgdTMy IGRlX2lpcikKPiA+ID4gIHsKPiA+ID4gQEAgLTI0MzcsOCArMjQwMywxMiBAQCBzdGF0aWMgdm9p ZCBpdmJfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+ICAJaWYgKGRlX2lpciAmIERFX0VSUl9JTlRfSVZCKQo+ID4gPiAgCQlpdmJfZXJy X2ludF9oYW5kbGVyKGRldl9wcml2KTsKPiA+ID4gIAo+ID4gPiAtCWlmIChkZV9paXIgJiBERV9F RFBfUFNSX0lOVF9IU1cpCj4gPiA+IC0JCWhzd19lZHBfcHNyX2lycV9oYW5kbGVyKGRldl9wcml2 KTsKPiA+ID4gKwlpZiAoZGVfaWlyICYgREVfRURQX1BTUl9JTlRfSFNXKSB7Cj4gPiA+ICsJCXUz MiBwc3JfaWlyID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKPiA+ID4gKwo+ID4gPiArCQlpbnRl bF9wc3JfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBzcl9paXIpOwo+ID4gPiArCQlJOTE1X1dSSVRF KEVEUF9QU1JfSUlSLCBwc3JfaWlyKTsKPiA+ID4gKwl9Cj4gPiA+ICAKPiA+ID4gIAlpZiAoZGVf aWlyICYgREVfQVVYX0NIQU5ORUxfQV9JVkIpCj4gPiA+ICAJCWRwX2F1eF9pcnFfaGFuZGxlcihk ZXZfcHJpdik7Cj4gPiA+IEBAIC0yNTgwLDcgKzI1NTAsMTAgQEAgZ2VuOF9kZV9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXN0ZXJfY3RsKQo+ID4g PiAgCQkJfQo+ID4gPiAgCj4gPiA+ICAJCQlpZiAoaWlyICYgR0VOOF9ERV9FRFBfUFNSKSB7Cj4g PiA+IC0JCQkJaHN3X2VkcF9wc3JfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwo+ID4gPiArCQkJCXUz MiBwc3JfaWlyID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKPiA+ID4gKwo+ID4gPiArCQkJCWlu dGVsX3Bzcl9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcHNyX2lpcik7Cj4gPiA+ICsJCQkJSTkxNV9X UklURShFRFBfUFNSX0lJUiwgcHNyX2lpcik7Cj4gPiA+ICAJCQkJZm91bmQgPSB0cnVlOwo+ID4g PiAgCQkJfQo+ID4gPiAgCj4gPiA+IEBAIC0zNzI5LDcgKzM3MDIsNyBAQCBzdGF0aWMgaW50IGly b25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiAgCj4g PiA+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiA+ICAJCWdlbjNfYXNzZXJ0X2lp cl9pc196ZXJvKGRldl9wcml2LCBFRFBfUFNSX0lJUik7Cj4gPiA+IC0JCUk5MTVfV1JJVEUoRURQ X1BTUl9JTVIsIDApOwo+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCB+RURQX1BTUl9F UlJPUihUUkFOU0NPREVSX0VEUCkpOwo+ID4gPiAgCQlkaXNwbGF5X21hc2sgfD0gREVfRURQX1BT Ul9JTlRfSFNXOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiBAQCAtMzg0NSw2ICszODE4LDcgQEAg c3RhdGljIHZvaWQgZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4gPiAgCXUzMiBkZV9wb3J0X2VuYWJsZXM7Cj4gPiA+ICAJdTMyIGRl X21pc2NfbWFza2VkID0gR0VOOF9ERV9NSVNDX0dTRSB8IEdFTjhfREVfRURQX1BTUjsKPiA+ID4g IAllbnVtIHBpcGUgcGlwZTsKPiA+ID4gKwl1MzIgcHNyX21hc2tlZDsKPiA+ID4gIAo+ID4gPiAg CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiA+ID4gIAkJZGVfcGlwZV9tYXNrZWQg fD0gR0VOOV9ERV9QSVBFX0lSUV9GQVVMVF9FUlJPUlM7Cj4gPiA+IEBAIC0zODY5LDcgKzM4NDMs MTAgQEAgc3RhdGljIHZvaWQgZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiAgCQlkZV9wb3J0X2VuYWJsZXMgfD0gR0VOOF9QT1JU X0RQX0FfSE9UUExVRzsKPiA+ID4gIAo+ID4gPiAgCWdlbjNfYXNzZXJ0X2lpcl9pc196ZXJvKGRl dl9wcml2LCBFRFBfUFNSX0lJUik7Cj4gPiA+IC0JSTkxNV9XUklURShFRFBfUFNSX0lNUiwgMCk7 Cj4gPiA+ICsJcHNyX21hc2tlZCA9IEVEUF9QU1JfRVJST1IoVFJBTlNDT0RFUl9FRFApIHwKPiA+ ID4gKwkJICAgICBFRFBfUFNSX0VSUk9SKFRSQU5TQ09ERVJfQSkgfCBFRFBfUFNSX0VSUk9SKFRS QU5TQ09ERVJfQikgfAo+ID4gPiArCQkgICAgIEVEUF9QU1JfRVJST1IoVFJBTlNDT0RFUl9DKTsK PiA+ID4gKwlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCB+cHNyX21hc2tlZCk7Cj4gPiA+ICAKPiA+ ID4gIAlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKSB7Cj4gPiA+ICAJCWRldl9wcml2LT5k ZV9pcnFfbWFza1twaXBlXSA9IH5kZV9waXBlX21hc2tlZDsKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+ID4gaW5kZXggYTIxNWFhNzhiMGJlLi44YmU3NWNjNWJmMjQgMTAwNjQ0Cj4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IEBAIC0xODg3LDYgKzE4ODcsOCBA QCB2b2lkIGludGVsX3Bzcl9zaW5nbGVfZnJhbWVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+ID4gIAkJCQkgICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsK PiA+ID4gIHZvaWQgaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsCj4gPiA+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7Cj4gPiA+ICt2b2lkIGludGVsX3Bzcl9kZWJ1Z19jb250cm9sKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgYm9vbCBlbmFibGUpOwo+ID4gPiArdm9pZCBpbnRlbF9wc3JfaXJx X2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcHNyX2lpcik7 Cj4gPiA+ICAKPiA+ID4gIC8qIGludGVsX3J1bnRpbWVfcG0uYyAqLwo+ID4gPiAgaW50IGludGVs X3Bvd2VyX2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKTsKPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+ID4gaW5kZXggYjhlMDgzZTEwMDI5Li5mZGM1ZTFiZjE5 OGEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+IEBAIC05Myw2 ICs5Myw2MCBAQCBzdGF0aWMgdm9pZCBwc3JfYXV4X2lvX3Bvd2VyX3B1dChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ID4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBw c3JfYXV4X2RvbWFpbihpbnRlbF9kcCkpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICt2b2lkIGlu dGVsX3Bzcl9kZWJ1Z19jb250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg Ym9vbCBlbmFibGUpCj4gPiA+ICt7Cj4gPiA+ICsJdTMyIG1hc2s7Cj4gPiA+ICsKPiA+ID4gKwkv KiBObyBQU1IgaW50ZXJydXB0cyBvbiBWTFYvQ0hWICovCj4gPiA+ICsJaWYgKElTX1ZBTExFWVZJ RVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gPiArCQlyZXR1cm47 Cj4gPiA+ICsKPiA+ID4gKwltYXNrID0gRURQX1BTUl9QT1NUX0VYSVQoVFJBTlNDT0RFUl9FRFAp IHwKPiA+ID4gKwkgICAgICAgRURQX1BTUl9QUkVfRU5UUlkoVFJBTlNDT0RFUl9FRFApOwo+ID4g PiArCj4gPiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKPiA+ID4gKwkJbWFzayB8 PSBFRFBfUFNSX1BPU1RfRVhJVChUUkFOU0NPREVSX0EpIHwKPiA+ID4gKwkJCUVEUF9QU1JfUFJF X0VOVFJZKFRSQU5TQ09ERVJfQSkgfAo+ID4gPiArCQkJRURQX1BTUl9QT1NUX0VYSVQoVFJBTlND T0RFUl9CKSB8Cj4gPiA+ICsJCQlFRFBfUFNSX1BSRV9FTlRSWShUUkFOU0NPREVSX0IpIHwKPiA+ ID4gKwkJCUVEUF9QU1JfUE9TVF9FWElUKFRSQU5TQ09ERVJfQykgfAo+ID4gPiArCQkJRURQX1BT Ul9QUkVfRU5UUlkoVFJBTlNDT0RFUl9DKTsKPiA+ID4gKwo+ID4gPiArCWlmIChlbmFibGUpIHsK PiA+ID4gKwkJV1JJVEVfT05DRShkZXZfcHJpdi0+cHNyLmRlYnVnLCB0cnVlKTsKPiA+ID4gKwkJ STkxNV9XUklURShFRFBfUFNSX0lNUiwgSTkxNV9SRUFEKEVEUF9QU1JfSU1SKSAmIH5tYXNrKTsK PiA+IAo+ID4gV2h5IFJNVz8KPiA+IAo+IEF2b2lkcyB1cGRhdGluZyB0aGlzIGZ1bmN0aW9uIHdo ZW4gbmV3IFBTUiBlcnJvciBiaXRzIGFyZSBhZGRlZCBpbgo+IGk5MTVfaXJxLmMKClRoZSB1c3Vh bCBydWxlIGlzICJhdm9pZCBSTVcgdW5sZXMgdGhlcmUgaXMgYSByZWFsbHkgY29tcGVsbGluZyBy ZWFzb24KZm9yIGl0Ii4gVGhlcmUgaXMgbm9uZSBpbiB0aGlzIGNhc2UgQUZBSUNTLgoKPiAKPiBX b3VsZCB5b3UgcHJlZmVyIAo+IAo+IG1hc2sgfD0gRURQX1BTUl9FUlJPUihUUkFOQ09ERVJfQSkg fCAuLi4gIGhlcmU/IAo+IAo+IEkgdGhpbmsgdGhpcyBoYXMgc3RhcnRlZCB0byBsb29rIHVnbHkg YWxyZWFkeS4gVGhlIGxvb3Agd2FzIGNvbmNpc2UgSU1PLgo+IAo+IFRoZSBvdGhlciBvcHRpb24g aXMgdG8KPiAKPiAjZGVmaW5lIEhTV19QU1JfSU5UUl9EQkdfTUFTSyA9IDB4Nwo+ICNkZWZpbmUg QkRXX1BTUl9JTlRSX0RCR19NQVNLID0gMHgwNzA3MDcwNyAKCk5vdCBzdXJlIHdoYXQgdGhlc2Ug aGF2ZSB0byBkbyB3aXRoIHRoZSBSTVcuCgo+IAo+IAo+IAo+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIEk5MTVfUkVBRChFRFBfUFNSX0lNUikgfCBtYXNr KTsKPiA+ID4gKwkJV1JJVEVfT05DRShkZXZfcHJpdi0+cHNyLmRlYnVnLCBmYWxzZSk7Cj4gPiA+ ICsJfQo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICt2b2lkIGludGVsX3Bzcl9pcnFfaGFuZGxlcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwc3JfaWlyKQo+ID4gPiArewo+ ID4gPiArCXUzMiB0cmFuc2NvZGVycyA9IEJJVChUUkFOU0NPREVSX0VEUCk7Cj4gPiA+ICsJZW51 bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ID4gPiArCj4gPiA+ICsJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gOCkKPiA+ID4gKwkJdHJhbnNjb2RlcnMgfD0gQklUKFRSQU5TQ09ERVJf QSkgfAo+ID4gPiArCQkJICAgICAgIEJJVChUUkFOU0NPREVSX0IpIHwKPiA+ID4gKwkJCSAgICAg ICBCSVQoVFJBTlNDT0RFUl9DKTsKPiA+ID4gKwo+ID4gPiArCWZvcl9lYWNoX2NwdV90cmFuc2Nv ZGVyX21hc2tlZChkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHRyYW5zY29kZXJzKSB7Cj4gPiA+ ICsJCS8qIEZJWE1FOiBFeGl0IFBTUiB3aGVuIHRoaXMgaGFwcGVucy4gKi8KPiA+IAo+ID4gU2hv dWxkIHRoaXMgbWF5YmUgc2F5ICJyZXRyYWluIHRoZSBsaW5rIG1hbnVhbGx5IHdoZW4gdGhpcyBo YXBwZW5zIj8KPiA+IAo+IAo+IFllYWgsIHdlIHNob3VsZCBkbyBib3RoIGluIGZhY3QuIE1ha2Vz IHNlbnNlIHRvIGV4aXQgUFNSLCBsaW5rIHRyYWluCj4gbWFudWFsbHkgYW5kIGtlZXAgaXQgZGlz YWJsZWQuCgpCVFcgaXMgdGhlcmUgYSBoYXJkd2FyZSBtZWNobmlzbSB0byBpbmplY3QgdGhpcyBm YWlsdXJlPyBXb3VsZCBiZSBuaWNlCmZvciB0ZXN0aW5nIGl0LgoKSWYgdGhlcmUgaXMgbm8gd2F5 LCBtYXliZSB3ZSBjb3VsZCBwcm92aWRlIGdhcmJhZ2Ugc2V0dGluZ3MgZm9yIHRoZSBBVVgKc3R1 ZmYgYW5kIHRoYXQgd291bGQgY2F1c2UgdGhlIGZhaWx1cmU/Cgo+IAo+IAo+IAo+ID4gPiArCQlp ZiAocHNyX2lpciAmIEVEUF9QU1JfRVJST1IoY3B1X3RyYW5zY29kZXIpKQo+ID4gPiArCQkJRFJN X0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBhdXggZXJyb3JcbiIsCj4gPiA+ICsJCQkJ ICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7Cj4gPiA+ICsKPiA+ID4gKwkJ aWYgKHBzcl9paXIgJiBFRFBfUFNSX1BSRV9FTlRSWShjcHVfdHJhbnNjb2RlcikpCj4gPiA+ICsJ CQlEUk1fREVCVUdfS01TKCJbdHJhbnNjb2RlciAlc10gUFNSIGVudHJ5IGF0dGVtcHQgaW4gMiB2 YmxhbmtzXG4iLAo+ID4gPiArCQkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2Rl cikpOwo+ID4gPiArCj4gPiA+ICsJCWlmIChwc3JfaWlyICYgRURQX1BTUl9QT1NUX0VYSVQoY3B1 X3RyYW5zY29kZXIpKQo+ID4gPiArCQkJRFJNX0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBT UiBleGl0IGNvbXBsZXRlZFxuIiwKPiA+ID4gKwkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1 X3RyYW5zY29kZXIpKTsKPiA+ID4gKwl9Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyBi b29sIGludGVsX2RwX2dldF95X2NvcmRfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Cj4gPiA+ICB7Cj4gPiA+ICAJdWludDhfdCBwc3JfY2FwcyA9IDA7Cj4gPiA+IC0tIAo+ID4gPiAy LjE0LjEKPiA+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==