From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 4/5] drm/i915/psr: Control PSR interrupts via debugfs Date: Wed, 21 Mar 2018 21:45:37 +0200 Message-ID: <20180321194537.GC5453@intel.com> References: <20180320224151.6009-1-dhinakaran.pandiyan@intel.com> <20180320224151.6009-5-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9310A6EAA5 for ; Wed, 21 Mar 2018 19:45:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180320224151.6009-5-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDM6NDE6NTBQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBJbnRlcnJ1cHRzIG90aGVyIHRoYW4gdGhlIG9uZSBmb3IgQVVYIGVycm9y cyBhcmUgcmVxdWlyZWQgb25seSBmb3IgZGVidWcsCj4gc28gdW5tYXNrIHRoZW0gdmlhIGRlYnVn ZnMgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBkZWJ1Zy4KPiAKPiBVc2VyIGNhbiBtYWtlIHN1Y2gg YSByZXF1ZXN0IHdpdGgKPiBlY2hvIDEgPiA8REVCVUdfRlM+L2RyaS8wL2k5MTVfZWRwX3Bzcl9k ZWJ1Zwo+IAo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERo aW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8IDM2ICsrKysrKysrKysrKysr KysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgIDEgKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICB8IDY4ICsrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgfCAgMiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICB8IDU2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNl cnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwo+IGluZGV4IDk2NGVhMWExMjM1Ny4uNjY5ZjNkNTYwNTRhIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMjY5MCw2ICsyNjkwLDM5IEBAIHN0YXRpYyBpbnQg aTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIGludAo+ICtpOTE1X2VkcF9wc3JfZGVidWdfc2V0 KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRhdGE7Cj4gKwo+ICsJaWYgKCFDQU5fUFNSKGRldl9wcml2KSkKPiArCQlyZXR1 cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAodmFsIDwgMCAgfHwgdmFsID4gMSkKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gKwlEUk1fREVCVUdfS01TKCIlcyBQU1IgZGVidWdcbiIsIHZhbCA9PSAx ID8gIkVuYWJsaW5nIiA6ICJEaXNhYmxpbmciKTsKPiArCWludGVsX3Bzcl9kZWJ1Z19jb250cm9s KGRldl9wcml2LCB2YWwpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50 Cj4gK2k5MTVfZWRwX3Bzcl9kZWJ1Z19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Cj4gKwo+ICsJaWYgKCFD QU5fUFNSKGRldl9wcml2KSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwkqdmFsID0gUkVB RF9PTkNFKGRldl9wcml2LT5wc3IuZGVidWcpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK0RF RklORV9TSU1QTEVfQVRUUklCVVRFKGk5MTVfZWRwX3Bzcl9kZWJ1Z19mb3BzLAo+ICsJCQlpOTE1 X2VkcF9wc3JfZGVidWdfZ2V0LCBpOTE1X2VkcF9wc3JfZGVidWdfc2V0LAo+ICsJCQkiJWxsdVxu Iik7Cj4gKwo+ICBzdGF0aWMgaW50IGk5MTVfc2lua19jcmMoc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICpkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBu b2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4gQEAgLTQ4MTEsNyArNDg0NCw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9kZWJ1Z2ZzX2ZpbGVzIHsKPiAgCXsiaTkxNV9ndWNfbG9nX3JlbGF5 IiwgJmk5MTVfZ3VjX2xvZ19yZWxheV9mb3BzfSwKPiAgCXsiaTkxNV9ocGRfc3Rvcm1fY3RsIiwg Jmk5MTVfaHBkX3N0b3JtX2N0bF9mb3BzfSwKPiAgCXsiaTkxNV9pcGNfc3RhdHVzIiwgJmk5MTVf aXBjX3N0YXR1c19mb3BzfSwKPiAtCXsiaTkxNV9kcnJzX2N0bCIsICZpOTE1X2RycnNfY3RsX2Zv cHN9Cj4gKwl7Imk5MTVfZHJyc19jdGwiLCAmaTkxNV9kcnJzX2N0bF9mb3BzfSwKPiArCXsiaTkx NV9lZHBfcHNyX2RlYnVnIiwgJmk5MTVfZWRwX3Bzcl9kZWJ1Z19mb3BzfQo+ICB9Owo+ICAKPiAg aW50IGk5MTVfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZTI3YmE4ZmI2NGU2Li4xMzZmYTIy NjdhNjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNjA4LDYgKzYwOCw3IEBA IHN0cnVjdCBpOTE1X3BzciB7Cj4gIAlib29sIGNvbG9yaW1ldHJ5X3N1cHBvcnQ7Cj4gIAlib29s IGFscG07Cj4gIAlib29sIGhhc19od190cmFja2luZzsKPiArCWJvb2wgZGVidWc7Cj4gIAo+ICAJ dm9pZCAoKmVuYWJsZV9zb3VyY2UpKHN0cnVjdCBpbnRlbF9kcCAqLAo+ICAJCQkgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBp bmRleCA1NjIyOGU4ZWQ5ODAuLjk0OTQxYjUyZjFjZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwo+IEBAIC0yMzkyLDQwICsyMzkyLDYgQEAgc3RhdGljIHZvaWQgaWxrX2Rpc3BsYXlfaXJx X2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWlyb25sYWtl X3Jwc19jaGFuZ2VfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBoc3dfZWRwX3Bzcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gLXsKPiAtCXUzMiBlZHBfcHNyX2lpciA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7Cj4g LQl1MzIgZWRwX3Bzcl9pbXIgPSBJOTE1X1JFQUQoRURQX1BTUl9JTVIpOwo+IC0JdTMyIG1hc2sg PSBCSVQoVFJBTlNDT0RFUl9FRFApOwo+IC0JZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy Owo+IC0KPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCj4gLQkJbWFzayB8PSBCSVQo VFJBTlNDT0RFUl9BKSB8Cj4gLQkJCUJJVChUUkFOU0NPREVSX0IpIHwKPiAtCQkJQklUKFRSQU5T Q09ERVJfQyk7Cj4gLQo+IC0JZm9yX2VhY2hfY3B1X3RyYW5zY29kZXJfbWFza2VkKGRldl9wcml2 LCBjcHVfdHJhbnNjb2RlciwgbWFzaykgewo+IC0JCWlmIChlZHBfcHNyX2lpciAmIEVEUF9QU1Jf RVJST1IoY3B1X3RyYW5zY29kZXIpKQo+IC0JCQlEUk1fREVCVUdfS01TKCJUcmFuc2NvZGVyICVz IFBTUiBlcnJvclxuIiwKPiAtCQkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2Rl cikpOwo+IC0KPiAtCQlpZiAoZWRwX3Bzcl9paXIgJiBFRFBfUFNSX1BSRV9FTlRSWShjcHVfdHJh bnNjb2RlcikpIHsKPiAtCQkJRFJNX0RFQlVHX0tNUygiVHJhbnNjb2RlciAlcyBQU1IgcHJlcGFy ZSBlbnRyeSBpbiAyIHZibGFua3NcbiIsCj4gLQkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1 X3RyYW5zY29kZXIpKTsKPiAtCQkJZWRwX3Bzcl9pbXIgfD0gRURQX1BTUl9QUkVfRU5UUlkoY3B1 X3RyYW5zY29kZXIpOwo+IC0JCX0KPiAtCj4gLQkJaWYgKGVkcF9wc3JfaWlyICYgRURQX1BTUl9Q T1NUX0VYSVQoY3B1X3RyYW5zY29kZXIpKSB7Cj4gLQkJCURSTV9ERUJVR19LTVMoIlRyYW5zY29k ZXIgJXMgUFNSIGV4aXQgY29tcGxldGVkXG4iLAo+IC0JCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1l KGNwdV90cmFuc2NvZGVyKSk7Cj4gLQkJCWVkcF9wc3JfaW1yICY9IH5FRFBfUFNSX1BSRV9FTlRS WShjcHVfdHJhbnNjb2Rlcik7Cj4gLQkJfQo+IC0JfQo+IC0KPiAtCUk5MTVfV1JJVEUoRURQX1BT Ul9JTVIsIGVkcF9wc3JfaW1yKTsKPiAtCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIGVkcF9wc3Jf aWlyKTsKPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgaXZiX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJICAgIHUzMiBkZV9paXIpCj4g IHsKPiBAQCAtMjQzOCw4ICsyNDA0LDEyIEBAIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlmIChkZV9paXIg JiBERV9FUlJfSU5UX0lWQikKPiAgCQlpdmJfZXJyX2ludF9oYW5kbGVyKGRldl9wcml2KTsKPiAg Cj4gLQlpZiAoZGVfaWlyICYgREVfRURQX1BTUl9JTlRfSFNXKQo+IC0JCWhzd19lZHBfcHNyX2ly cV9oYW5kbGVyKGRldl9wcml2KTsKPiArCWlmIChkZV9paXIgJiBERV9FRFBfUFNSX0lOVF9IU1cp IHsKPiArCQl1MzIgcHNyX2lpciA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7Cj4gKwo+ICsJCWlu dGVsX3Bzcl9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcHNyX2lpcik7Cj4gKwkJSTkxNV9XUklURShF RFBfUFNSX0lJUiwgcHNyX2lpcik7Cj4gKwl9Cj4gIAo+ICAJaWYgKGRlX2lpciAmIERFX0FVWF9D SEFOTkVMX0FfSVZCKQo+ICAJCWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7Cj4gQEAgLTI1 ODEsNyArMjU1MSwxMCBAQCBnZW44X2RlX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdTMyIG1hc3Rlcl9jdGwpCj4gIAkJCX0KPiAgCj4gIAkJCWlmIChpaXIg JiBHRU44X0RFX0VEUF9QU1IpIHsKPiAtCQkJCWhzd19lZHBfcHNyX2lycV9oYW5kbGVyKGRldl9w cml2KTsKPiArCQkJCXUzMiBwc3JfaWlyID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKPiArCj4g KwkJCQlpbnRlbF9wc3JfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBzcl9paXIpOwo+ICsJCQkJSTkx NV9XUklURShFRFBfUFNSX0lJUiwgcHNyX2lpcik7Cj4gIAkJCQlmb3VuZCA9IHRydWU7Cj4gIAkJ CX0KPiAgCj4gQEAgLTM2OTksNiArMzY3MiwyMyBAQCBzdGF0aWMgdm9pZCBnZW41X2d0X2lycV9w b3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJfQo+ICB9Cj4gIAo+ICtzdGF0 aWMgaW5saW5lIHUzMiBwc3JfbWFzayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gK3sKPiArCXUzMiB0cmFuc2NvZGVycyA9IEJJVChUUkFOU0NPREVSX0VEUCk7Cj4gKwl1MzIg bWFzayA9IDA7Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7Cj4gKwo+ICsJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKPiArCQl0cmFuc2NvZGVycyB8PSBCSVQoVFJBTlND T0RFUl9BKSB8Cj4gKwkJCSAgICAgICBCSVQoVFJBTlNDT0RFUl9CKSB8Cj4gKwkJCSAgICAgICBC SVQoVFJBTlNDT0RFUl9DKTsKPiArCj4gKwlmb3JfZWFjaF9jcHVfdHJhbnNjb2Rlcl9tYXNrZWQo ZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCB0cmFuc2NvZGVycykKPiArCQltYXNrIHw9ICBFRFBf UFNSX0VSUk9SKGNwdV90cmFuc2NvZGVyKTsKPiArCj4gKwlyZXR1cm4gfm1hc2s7Cj4gK30KPiAr Cj4gIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiBAQCAtMzcyMSw3ICszNzExLDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9pcnFf cG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlpZiAoSVNfSEFTV0VM TChkZXZfcHJpdikpIHsKPiAgCQlnZW4zX2Fzc2VydF9paXJfaXNfemVybyhkZXZfcHJpdiwgRURQ X1BTUl9JSVIpOwo+IC0JCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIDApOwo+ICsJCUk5MTVfV1JJ VEUoRURQX1BTUl9JTVIsIHBzcl9tYXNrKGRldl9wcml2KSk7Cj4gIAkJZGlzcGxheV9tYXNrIHw9 IERFX0VEUF9QU1JfSU5UX0hTVzsKPiAgCX0KPiAgCj4gQEAgLTM4NjEsNyArMzg1MSw3IEBAIHN0 YXRpYyB2b2lkIGdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgCQlkZV9wb3J0X2VuYWJsZXMgfD0gR0VOOF9QT1JUX0RQX0FfSE9UUExV RzsKPiAgCj4gIAlnZW4zX2Fzc2VydF9paXJfaXNfemVybyhkZXZfcHJpdiwgRURQX1BTUl9JSVIp Owo+IC0JSTkxNV9XUklURShFRFBfUFNSX0lNUiwgMCk7Cj4gKwlJOTE1X1dSSVRFKEVEUF9QU1Jf SU1SLCBwc3JfbWFzayhkZXZfcHJpdikpOwoKcHNyX21hc2soKSBzZWVtcyBzb21ld2hhdCBwb2lu dGxlc3MgdG8gbWUuIENvdWxkIHBlcmhhcHMganVzdAp3cml0ZSB0aGUgZnVsbCBtYXNrIGJ5IGhh bmQgaW4gdGhlc2UgY2FzZXMuCgo+ICAKPiAgCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUp IHsKPiAgCQlkZXZfcHJpdi0+ZGVfaXJxX21hc2tbcGlwZV0gPSB+ZGVfcGlwZV9tYXNrZWQ7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBhMjE1YWE3OGIwYmUuLjhiZTc1Y2M1YmYy NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE4ODcsNiArMTg4Nyw4IEBA IHZvaWQgaW50ZWxfcHNyX3NpbmdsZV9mcmFtZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCQkJICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Cj4gIHZv aWQgaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g IAkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiArdm9pZCBp bnRlbF9wc3JfZGVidWdfY29udHJvbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGJvb2wgZW5hYmxlKTsKPiArdm9pZCBpbnRlbF9wc3JfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcHNyX2lpcik7Cj4gIAo+ICAvKiBpbnRlbF9ydW50 aW1lX3BtLmMgKi8KPiAgaW50IGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGluZGV4IDMxN2NiNGEx MjY5My4uNjRlY2VhODA0MzhkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiBAQCAt OTMsNiArOTMsNjIgQEAgc3RhdGljIHZvaWQgcHNyX2F1eF9pb19wb3dlcl9wdXQoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBw c3JfYXV4X2RvbWFpbihpbnRlbF9kcCkpOwo+ICB9Cj4gIAo+ICt2b2lkIGludGVsX3Bzcl9kZWJ1 Z19jb250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCBlbmFibGUp Cj4gK3sKPiArCXUzMiB0cmFuc2NvZGVycyA9IEJJVChUUkFOU0NPREVSX0VEUCk7Cj4gKwl1MzIg bWFzayA9IDA7Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7Cj4gKwo+ICsJLyog Tm8gUFNSIGludGVycnVwdHMgb24gVkxWL0NIViAqLwo+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICsJCXJldHVybjsKPiArCj4gKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQo+ICsJCXRyYW5zY29kZXJzIHw9IEJJVChUUkFO U0NPREVSX0EpIHwKPiArCQkJICAgICAgIEJJVChUUkFOU0NPREVSX0IpIHwKPiArCQkJICAgICAg IEJJVChUUkFOU0NPREVSX0MpOwo+ICsKPiArCWZvcl9lYWNoX2NwdV90cmFuc2NvZGVyX21hc2tl ZChkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHRyYW5zY29kZXJzKQo+ICsJCW1hc2sgPSBFRFBf UFNSX1BPU1RfRVhJVChjcHVfdHJhbnNjb2RlcikgfAo+ICsJCSAgICAgICBFRFBfUFNSX1BSRV9F TlRSWShjcHVfdHJhbnNjb2Rlcik7CgpUaGlzIHRvbyBjb3VsZCBiZSBkb25lIHcvbyB0aGUgbG9v cCBJIHRoaW5rLgoKPiArCj4gKwlpZiAoZW5hYmxlKSB7Cj4gKwkJV1JJVEVfT05DRShkZXZfcHJp di0+cHNyLmRlYnVnLCB0cnVlKTsKPiArCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCB+bWFzayk7 Cj4gKwl9IGVsc2Ugewo+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIG1hc2spOwo+ICsJCVdS SVRFX09OQ0UoZGV2X3ByaXYtPnBzci5kZWJ1ZywgZmFsc2UpOwo+ICsJfQo+ICt9Cj4gKwo+ICt2 b2lkIGludGVsX3Bzcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBwc3JfaWlyKQo+ICt7Cj4gKwl1MzIgdHJhbnNjb2RlcnMgPSBCSVQoVFJBTlNDT0RF Ul9FRFApOwo+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ICsKPiArCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCj4gKwkJdHJhbnNjb2RlcnMgfD0gQklUKFRSQU5TQ09E RVJfQSkgfAo+ICsJCQkgICAgICAgQklUKFRSQU5TQ09ERVJfQikgfAo+ICsJCQkgICAgICAgQklU KFRSQU5TQ09ERVJfQyk7Cj4gKwo+ICsJZm9yX2VhY2hfY3B1X3RyYW5zY29kZXJfbWFza2VkKGRl dl9wcml2LCBjcHVfdHJhbnNjb2RlciwgdHJhbnNjb2RlcnMpIHsKPiArCQkvKiBGSVhNRTogRXhp dCBQU1Igd2hlbiB0aGlzIGhhcHBlbnMuICovCj4gKwkJaWYgKHBzcl9paXIgJiBFRFBfUFNSX0VS Uk9SKGNwdV90cmFuc2NvZGVyKSkKPiArCQkJRFJNX0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNd IFBTUiBhdXggZXJyb3JcbiIsCj4gKwkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5z Y29kZXIpKTsKPiArCj4gKwkJaWYgKHBzcl9paXIgJiBFRFBfUFNSX1BSRV9FTlRSWShjcHVfdHJh bnNjb2RlcikpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBlbnRy eSBpbiAyIHZibGFua3NcbiIsCj4gKwkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5z Y29kZXIpKTsKPiArCQl9Cj4gKwo+ICsJCWlmIChwc3JfaWlyICYgRURQX1BTUl9QT1NUX0VYSVQo Y3B1X3RyYW5zY29kZXIpKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQ U1IgZXhpdCBjb21wbGV0ZWRcbiIsCj4gKwkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3Ry YW5zY29kZXIpKTsKPiArCQl9Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRpYyBib29sIGludGVsX2Rw X2dldF95X2NvcmRfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAgCXVp bnQ4X3QgcHNyX2NhcHMgPSAwOwo+IC0tIAo+IDIuMTQuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==