From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 4/5] drm/i915/psr: Control PSR interrupts via debugfs Date: Thu, 22 Mar 2018 00:59:07 +0000 Message-ID: <1521681799.19788.23.camel@dk-H97M-D3H> References: <20180320224151.6009-1-dhinakaran.pandiyan@intel.com> <20180320224151.6009-5-dhinakaran.pandiyan@intel.com> <20180321194537.GC5453@intel.com> 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 82BAF6EB47 for ; Thu, 22 Mar 2018 00:59:09 +0000 (UTC) In-Reply-To: <20180321194537.GC5453@intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org DQoNCg0KT24gV2VkLCAyMDE4LTAzLTIxIGF0IDIxOjQ1ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6DQo+IE9uIFR1ZSwgTWFyIDIwLCAyMDE4IGF0IDAzOjQxOjUwUE0gLTA3MDAsIERoaW5h a2FyYW4gUGFuZGl5YW4gd3JvdGU6DQo+ID4gSW50ZXJydXB0cyBvdGhlciB0aGFuIHRoZSBvbmUg Zm9yIEFVWCBlcnJvcnMgYXJlIHJlcXVpcmVkIG9ubHkgZm9yIGRlYnVnLA0KPiA+IHNvIHVubWFz ayB0aGVtIHZpYSBkZWJ1Z2ZzIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgZGVidWcuDQo+ID4gDQo+ ID4gVXNlciBjYW4gbWFrZSBzdWNoIGEgcmVxdWVzdCB3aXRoDQo+ID4gZWNobyAxID4gPERFQlVH X0ZTPi9kcmkvMC9pOTE1X2VkcF9wc3JfZGVidWcNCj4gPiANCj4gPiBDYzogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPg0KPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPg0KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFu IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAzNiArKysrKysrKysrKysrKysrKysrLQ0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAxICsNCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgfCA2OCArKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg IHwgIDIgKysNCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgICAgfCA1NiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMjMg aW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMNCj4gPiBpbmRleCA5NjRlYTFhMTIzNTcuLjY2OWYzZDU2MDU0YSAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gQEAgLTI2OTAsNiAr MjY5MCwzOSBAQCBzdGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICpkYXRhKQ0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiAgDQo+ID4gK3N0 YXRpYyBpbnQNCj4gPiAraTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFs KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRh Ow0KPiA+ICsNCj4gPiArCWlmICghQ0FOX1BTUihkZXZfcHJpdikpDQo+ID4gKwkJcmV0dXJuIC1F Tk9ERVY7DQo+ID4gKw0KPiA+ICsJaWYgKHZhbCA8IDAgIHx8IHZhbCA+IDEpDQo+ID4gKwkJcmV0 dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJRFJNX0RFQlVHX0tNUygiJXMgUFNSIGRlYnVnXG4i LCB2YWwgPT0gMSA/ICJFbmFibGluZyIgOiAiRGlzYWJsaW5nIik7DQo+ID4gKwlpbnRlbF9wc3Jf ZGVidWdfY29udHJvbChkZXZfcHJpdiwgdmFsKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4g PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICtpOTE1X2VkcF9wc3JfZGVidWdfZ2V0 KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkYXRhOw0KPiA+ICsNCj4gPiArCWlmICghQ0FOX1BTUihkZXZfcHJp dikpDQo+ID4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4gKw0KPiA+ICsJKnZhbCA9IFJFQURfT05D RShkZXZfcHJpdi0+cHNyLmRlYnVnKTsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICtERUZJTkVfU0lNUExFX0FUVFJJQlVURShpOTE1X2VkcF9wc3JfZGVidWdfZm9wcywNCj4g PiArCQkJaTkxNV9lZHBfcHNyX2RlYnVnX2dldCwgaTkxNV9lZHBfcHNyX2RlYnVnX3NldCwNCj4g PiArCQkJIiVsbHVcbiIpOw0KPiA+ICsNCj4gPiAgc3RhdGljIGludCBpOTE1X3NpbmtfY3JjKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkNCj4gPiAgew0KPiA+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOw0KPiA+IEBA IC00ODExLDcgKzQ4NDQsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfZGVidWdmc19maWxl cyB7DQo+ID4gIAl7Imk5MTVfZ3VjX2xvZ19yZWxheSIsICZpOTE1X2d1Y19sb2dfcmVsYXlfZm9w c30sDQo+ID4gIAl7Imk5MTVfaHBkX3N0b3JtX2N0bCIsICZpOTE1X2hwZF9zdG9ybV9jdGxfZm9w c30sDQo+ID4gIAl7Imk5MTVfaXBjX3N0YXR1cyIsICZpOTE1X2lwY19zdGF0dXNfZm9wc30sDQo+ ID4gLQl7Imk5MTVfZHJyc19jdGwiLCAmaTkxNV9kcnJzX2N0bF9mb3BzfQ0KPiA+ICsJeyJpOTE1 X2RycnNfY3RsIiwgJmk5MTVfZHJyc19jdGxfZm9wc30sDQo+ID4gKwl7Imk5MTVfZWRwX3Bzcl9k ZWJ1ZyIsICZpOTE1X2VkcF9wc3JfZGVidWdfZm9wc30NCj4gPiAgfTsNCj4gPiAgDQo+ID4gIGlu dCBpOTE1X2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IGluZGV4IGUyN2JhOGZiNjRlNi4uMTM2 ZmEyMjY3YTY2IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gQEAgLTYw OCw2ICs2MDgsNyBAQCBzdHJ1Y3QgaTkxNV9wc3Igew0KPiA+ICAJYm9vbCBjb2xvcmltZXRyeV9z dXBwb3J0Ow0KPiA+ICAJYm9vbCBhbHBtOw0KPiA+ICAJYm9vbCBoYXNfaHdfdHJhY2tpbmc7DQo+ ID4gKwlib29sIGRlYnVnOw0KPiA+ICANCj4gPiAgCXZvaWQgKCplbmFibGVfc291cmNlKShzdHJ1 Y3QgaW50ZWxfZHAgKiwNCj4gPiAgCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKik7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jDQo+ID4gaW5kZXggNTYyMjhlOGVkOTgw Li45NDk0MWI1MmYxY2YgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMNCj4gPiBA QCAtMjM5Miw0MCArMjM5Miw2IEBAIHN0YXRpYyB2b2lkIGlsa19kaXNwbGF5X2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiAgCQlpcm9ubGFrZV9ycHNf Y2hhbmdlX2lycV9oYW5kbGVyKGRldl9wcml2KTsNCj4gPiAgfQ0KPiA+ICANCj4gPiAtc3RhdGlj IHZvaWQgaHN3X2VkcF9wc3JfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQ0KPiA+IC17DQo+ID4gLQl1MzIgZWRwX3Bzcl9paXIgPSBJOTE1X1JFQUQoRURQX1BT Ul9JSVIpOw0KPiA+IC0JdTMyIGVkcF9wc3JfaW1yID0gSTkxNV9SRUFEKEVEUF9QU1JfSU1SKTsN Cj4gPiAtCXUzMiBtYXNrID0gQklUKFRSQU5TQ09ERVJfRURQKTsNCj4gPiAtCWVudW0gdHJhbnNj b2RlciBjcHVfdHJhbnNjb2RlcjsNCj4gPiAtDQo+ID4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA4KQ0KPiA+IC0JCW1hc2sgfD0gQklUKFRSQU5TQ09ERVJfQSkgfA0KPiA+IC0JCQlCSVQo VFJBTlNDT0RFUl9CKSB8DQo+ID4gLQkJCUJJVChUUkFOU0NPREVSX0MpOw0KPiA+IC0NCj4gPiAt CWZvcl9lYWNoX2NwdV90cmFuc2NvZGVyX21hc2tlZChkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIs IG1hc2spIHsNCj4gPiAtCQlpZiAoZWRwX3Bzcl9paXIgJiBFRFBfUFNSX0VSUk9SKGNwdV90cmFu c2NvZGVyKSkNCj4gPiAtCQkJRFJNX0RFQlVHX0tNUygiVHJhbnNjb2RlciAlcyBQU1IgZXJyb3Jc biIsDQo+ID4gLQkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsNCj4g PiAtDQo+ID4gLQkJaWYgKGVkcF9wc3JfaWlyICYgRURQX1BTUl9QUkVfRU5UUlkoY3B1X3RyYW5z Y29kZXIpKSB7DQo+ID4gLQkJCURSTV9ERUJVR19LTVMoIlRyYW5zY29kZXIgJXMgUFNSIHByZXBh cmUgZW50cnkgaW4gMiB2YmxhbmtzXG4iLA0KPiA+IC0JCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1l KGNwdV90cmFuc2NvZGVyKSk7DQo+ID4gLQkJCWVkcF9wc3JfaW1yIHw9IEVEUF9QU1JfUFJFX0VO VFJZKGNwdV90cmFuc2NvZGVyKTsNCj4gPiAtCQl9DQo+ID4gLQ0KPiA+IC0JCWlmIChlZHBfcHNy X2lpciAmIEVEUF9QU1JfUE9TVF9FWElUKGNwdV90cmFuc2NvZGVyKSkgew0KPiA+IC0JCQlEUk1f REVCVUdfS01TKCJUcmFuc2NvZGVyICVzIFBTUiBleGl0IGNvbXBsZXRlZFxuIiwNCj4gPiAtCQkJ CSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2RlcikpOw0KPiA+IC0JCQllZHBfcHNy X2ltciAmPSB+RURQX1BTUl9QUkVfRU5UUlkoY3B1X3RyYW5zY29kZXIpOw0KPiA+IC0JCX0NCj4g PiAtCX0NCj4gPiAtDQo+ID4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCBlZHBfcHNyX2ltcik7 DQo+ID4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfSUlSLCBlZHBfcHNyX2lpcik7DQo+ID4gLX0NCj4g PiAtDQo+ID4gIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiAgCQkJCSAgICB1MzIgZGVfaWlyKQ0KPiA+ICB7 DQo+ID4gQEAgLTI0MzgsOCArMjQwNCwxMiBAQCBzdGF0aWMgdm9pZCBpdmJfZGlzcGxheV9pcnFf aGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gIAlpZiAoZGVf aWlyICYgREVfRVJSX0lOVF9JVkIpDQo+ID4gIAkJaXZiX2Vycl9pbnRfaGFuZGxlcihkZXZfcHJp dik7DQo+ID4gIA0KPiA+IC0JaWYgKGRlX2lpciAmIERFX0VEUF9QU1JfSU5UX0hTVykNCj4gPiAt CQloc3dfZWRwX3Bzcl9pcnFfaGFuZGxlcihkZXZfcHJpdik7DQo+ID4gKwlpZiAoZGVfaWlyICYg REVfRURQX1BTUl9JTlRfSFNXKSB7DQo+ID4gKwkJdTMyIHBzcl9paXIgPSBJOTE1X1JFQUQoRURQ X1BTUl9JSVIpOw0KPiA+ICsNCj4gPiArCQlpbnRlbF9wc3JfaXJxX2hhbmRsZXIoZGV2X3ByaXYs IHBzcl9paXIpOw0KPiA+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIHBzcl9paXIpOw0KPiA+ ICsJfQ0KPiA+ICANCj4gPiAgCWlmIChkZV9paXIgJiBERV9BVVhfQ0hBTk5FTF9BX0lWQikNCj4g PiAgCQlkcF9hdXhfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOw0KPiA+IEBAIC0yNTgxLDcgKzI1NTEs MTAgQEAgZ2VuOF9kZV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBtYXN0ZXJfY3RsKQ0KPiA+ICAJCQl9DQo+ID4gIA0KPiA+ICAJCQlpZiAoaWlyICYg R0VOOF9ERV9FRFBfUFNSKSB7DQo+ID4gLQkJCQloc3dfZWRwX3Bzcl9pcnFfaGFuZGxlcihkZXZf cHJpdik7DQo+ID4gKwkJCQl1MzIgcHNyX2lpciA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7DQo+ ID4gKw0KPiA+ICsJCQkJaW50ZWxfcHNyX2lycV9oYW5kbGVyKGRldl9wcml2LCBwc3JfaWlyKTsN Cj4gPiArCQkJCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIHBzcl9paXIpOw0KPiA+ICAJCQkJZm91 bmQgPSB0cnVlOw0KPiA+ICAJCQl9DQo+ID4gIA0KPiA+IEBAIC0zNjk5LDYgKzM2NzIsMjMgQEAg c3RhdGljIHZvaWQgZ2VuNV9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRl dikNCj4gPiAgCX0NCj4gPiAgfQ0KPiA+ICANCj4gPiArc3RhdGljIGlubGluZSB1MzIgcHNyX21h c2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ICt7DQo+ID4gKwl1MzIg dHJhbnNjb2RlcnMgPSBCSVQoVFJBTlNDT0RFUl9FRFApOw0KPiA+ICsJdTMyIG1hc2sgPSAwOw0K PiA+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOw0KPiA+ICsNCj4gPiArCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpDQo+ID4gKwkJdHJhbnNjb2RlcnMgfD0gQklUKFRSQU5T Q09ERVJfQSkgfA0KPiA+ICsJCQkgICAgICAgQklUKFRSQU5TQ09ERVJfQikgfA0KPiA+ICsJCQkg ICAgICAgQklUKFRSQU5TQ09ERVJfQyk7DQo+ID4gKw0KPiA+ICsJZm9yX2VhY2hfY3B1X3RyYW5z Y29kZXJfbWFza2VkKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgdHJhbnNjb2RlcnMpDQo+ID4g KwkJbWFzayB8PSAgRURQX1BTUl9FUlJPUihjcHVfdHJhbnNjb2Rlcik7DQo+ID4gKw0KPiA+ICsJ cmV0dXJuIH5tYXNrOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50IGlyb25sYWtlX2ly cV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPiA+ICB7DQo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7DQo+ID4gQEAgLTM3 MjEsNyArMzcxMSw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpDQo+ID4gIA0KPiA+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp KSB7DQo+ID4gIAkJZ2VuM19hc3NlcnRfaWlyX2lzX3plcm8oZGV2X3ByaXYsIEVEUF9QU1JfSUlS KTsNCj4gPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCAwKTsNCj4gPiArCQlJOTE1X1dSSVRF KEVEUF9QU1JfSU1SLCBwc3JfbWFzayhkZXZfcHJpdikpOw0KPiA+ICAJCWRpc3BsYXlfbWFzayB8 PSBERV9FRFBfUFNSX0lOVF9IU1c7DQo+ID4gIAl9DQo+ID4gIA0KPiA+IEBAIC0zODYxLDcgKzM4 NTEsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2RlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gIAkJZGVfcG9ydF9lbmFibGVzIHw9IEdFTjhfUE9S VF9EUF9BX0hPVFBMVUc7DQo+ID4gIA0KPiA+ICAJZ2VuM19hc3NlcnRfaWlyX2lzX3plcm8oZGV2 X3ByaXYsIEVEUF9QU1JfSUlSKTsNCj4gPiAtCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIDApOw0K PiA+ICsJSTkxNV9XUklURShFRFBfUFNSX0lNUiwgcHNyX21hc2soZGV2X3ByaXYpKTsNCj4gDQo+ IHBzcl9tYXNrKCkgc2VlbXMgc29tZXdoYXQgcG9pbnRsZXNzIHRvIG1lLiBDb3VsZCBwZXJoYXBz IGp1c3QNCj4gd3JpdGUgdGhlIGZ1bGwgbWFzayBieSBoYW5kIGluIHRoZXNlIGNhc2VzLg0KPiAN Cg0KT2theS4gSSdsbCByZXBsYWNlIHRoZXNlIHdpdGgNCg0KRURQX1BTUl9FUlJPUihUUkFOU0NP REVSX0VEUCkNCg0KYW5kIA0KDQpwc3JfbWFzayA9IFBTUl9FUlJPUihUUkFOU0NPREVSX0VEUCkg fA0KCSAgIFBTUl9FUlJPUihUUkFOU0NPREVSX0EpIHwNCgkgICBQU1JfRVJST1IoVFJBTlNDT0RF Ul9CKSB8DQoJICAgUFNSX0VSUk9SKFRSQU5TQ09ERVJfQykgfA0KDQo+ID4gIA0KPiA+ICAJZm9y X2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkgew0KPiA+ICAJCWRldl9wcml2LT5kZV9pcnFfbWFz a1twaXBlXSA9IH5kZV9waXBlX21hc2tlZDsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0K PiA+IGluZGV4IGEyMTVhYTc4YjBiZS4uOGJlNzVjYzViZjI0IDEwMDY0NA0KPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiBAQCAtMTg4Nyw2ICsxODg3LDggQEAgdm9pZCBpbnRlbF9w c3Jfc2luZ2xlX2ZyYW1lX3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs DQo+ID4gIAkJCQkgICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsNCj4gPiAgdm9pZCBpbnRl bF9wc3JfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiAgCQkJ ICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOw0KPiA+ICt2b2lkIGlu dGVsX3Bzcl9kZWJ1Z19jb250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg Ym9vbCBlbmFibGUpOw0KPiA+ICt2b2lkIGludGVsX3Bzcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwc3JfaWlyKTsNCj4gPiAgDQo+ID4gIC8qIGlu dGVsX3J1bnRpbWVfcG0uYyAqLw0KPiA+ICBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICopOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jDQo+ ID4gaW5kZXggMzE3Y2I0YTEyNjkzLi42NGVjZWE4MDQzOGQgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wc3IuYw0KPiA+IEBAIC05Myw2ICs5Myw2MiBAQCBzdGF0aWMgdm9pZCBwc3Jf YXV4X2lvX3Bvd2VyX3B1dChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiA+ICAJaW50ZWxf ZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBzcl9hdXhfZG9tYWluKGludGVsX2RwKSk7DQo+ ID4gIH0NCj4gPiAgDQo+ID4gK3ZvaWQgaW50ZWxfcHNyX2RlYnVnX2NvbnRyb2woc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGVuYWJsZSkNCj4gPiArew0KPiA+ICsJdTMy IHRyYW5zY29kZXJzID0gQklUKFRSQU5TQ09ERVJfRURQKTsNCj4gPiArCXUzMiBtYXNrID0gMDsN Cj4gPiArCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcjsNCj4gPiArDQo+ID4gKwkvKiBO byBQU1IgaW50ZXJydXB0cyBvbiBWTFYvQ0hWICovDQo+ID4gKwlpZiAoSVNfVkFMTEVZVklFVyhk ZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpDQo+ID4gKwkJcmV0dXJuOw0KPiA+ ICsNCj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpDQo+ID4gKwkJdHJhbnNjb2Rl cnMgfD0gQklUKFRSQU5TQ09ERVJfQSkgfA0KPiA+ICsJCQkgICAgICAgQklUKFRSQU5TQ09ERVJf QikgfA0KPiA+ICsJCQkgICAgICAgQklUKFRSQU5TQ09ERVJfQyk7DQo+ID4gKw0KPiA+ICsJZm9y X2VhY2hfY3B1X3RyYW5zY29kZXJfbWFza2VkKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgdHJh bnNjb2RlcnMpDQo+ID4gKwkJbWFzayA9IEVEUF9QU1JfUE9TVF9FWElUKGNwdV90cmFuc2NvZGVy KSB8DQo+ID4gKwkJICAgICAgIEVEUF9QU1JfUFJFX0VOVFJZKGNwdV90cmFuc2NvZGVyKTsNCj4g DQo+IFRoaXMgdG9vIGNvdWxkIGJlIGRvbmUgdy9vIHRoZSBsb29wIEkgdGhpbmsuDQo+IA0KDQpP a2F5LCB3aWxsIHdyaXRlIGl0IGFzLg0KDQptYXNrID0gRURQX1BTUl9QT1NUX0VYSVQoVFJBTlND T0RFUl9FRFApIHwNCkRQX1BTUl9QUkVfRU5UUlkoVFJBTlNDT0RFUl9FRFApOw0KDQppZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA4KQ0KCW1hc2sgfD0gIEVEUF9QU1JfUE9TVF9FWElUKFRSQU5T Q09ERVJfQSkgfA0KRURQX1BTUl9QUkVfRU5UUlkoVFJBTlNDT0RFUl9BKSB8DQoJRURQX1BTUl9Q T1NUX0VYSVQoVFJBTlNDT0RFUl9CKSB8IEVEUF9QU1JfUFJFX0VOVFJZKFRSQU5TQ09ERVJfQikg fA0KCUVEUF9QU1JfUE9TVF9FWElUKFRSQU5TQ09ERVJfQykgfCBFRFBfUFNSX1BSRV9FTlRSWShU UkFOU0NPREVSX0MpOw0KDQoNCj4gPiArDQo+ID4gKwlpZiAoZW5hYmxlKSB7DQo+ID4gKwkJV1JJ VEVfT05DRShkZXZfcHJpdi0+cHNyLmRlYnVnLCB0cnVlKTsNCj4gPiArCQlJOTE1X1dSSVRFKEVE UF9QU1JfSU1SLCB+bWFzayk7DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCUk5MTVfV1JJVEUoRURQ X1BTUl9JTVIsIG1hc2spOw0KPiA+ICsJCVdSSVRFX09OQ0UoZGV2X3ByaXYtPnBzci5kZWJ1Zywg ZmFsc2UpOw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIGludGVsX3Bzcl9pcnFf aGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwc3JfaWlyKQ0K PiA+ICt7DQo+ID4gKwl1MzIgdHJhbnNjb2RlcnMgPSBCSVQoVFJBTlNDT0RFUl9FRFApOw0KPiA+ ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOw0KPiA+ICsNCj4gPiArCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDgpDQo+ID4gKwkJdHJhbnNjb2RlcnMgfD0gQklUKFRSQU5TQ09E RVJfQSkgfA0KPiA+ICsJCQkgICAgICAgQklUKFRSQU5TQ09ERVJfQikgfA0KPiA+ICsJCQkgICAg ICAgQklUKFRSQU5TQ09ERVJfQyk7DQo+ID4gKw0KPiA+ICsJZm9yX2VhY2hfY3B1X3RyYW5zY29k ZXJfbWFza2VkKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgdHJhbnNjb2RlcnMpIHsNCj4gPiAr CQkvKiBGSVhNRTogRXhpdCBQU1Igd2hlbiB0aGlzIGhhcHBlbnMuICovDQo+ID4gKwkJaWYgKHBz cl9paXIgJiBFRFBfUFNSX0VSUk9SKGNwdV90cmFuc2NvZGVyKSkNCj4gPiArCQkJRFJNX0RFQlVH X0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBhdXggZXJyb3JcbiIsDQo+ID4gKwkJCQkgICAgICB0 cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsNCj4gPiArDQo+ID4gKwkJaWYgKHBzcl9p aXIgJiBFRFBfUFNSX1BSRV9FTlRSWShjcHVfdHJhbnNjb2RlcikpIHsNCj4gPiArCQkJRFJNX0RF QlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBlbnRyeSBpbiAyIHZibGFua3NcbiIsDQo+ID4g KwkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsNCj4gPiArCQl9DQo+ ID4gKw0KPiA+ICsJCWlmIChwc3JfaWlyICYgRURQX1BTUl9QT1NUX0VYSVQoY3B1X3RyYW5zY29k ZXIpKSB7DQo+ID4gKwkJCURSTV9ERUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQU1IgZXhpdCBj b21wbGV0ZWRcbiIsDQo+ID4gKwkJCQkgICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29k ZXIpKTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRpYyBib29s IGludGVsX2RwX2dldF95X2NvcmRfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ ID4gIHsNCj4gPiAgCXVpbnQ4X3QgcHNyX2NhcHMgPSAwOw0KPiA+IC0tIA0KPiA+IDIuMTQuMQ0K PiANCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=