From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Vivi, Rodrigo" Subject: Re: [PATCH 1/5] drm/i915: Add sys PSR toggle interface Date: Wed, 13 Apr 2016 20:43:05 +0000 Message-ID: <1460580255.7829.110.camel@intel.com> References: <1460488728-23319-1-git-send-email-alexandra.yates@linux.intel.com> <1460488728-23319-2-git-send-email-alexandra.yates@linux.intel.com> <1460553974.8441.22.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 494EC6E9A3 for ; Wed, 13 Apr 2016 20:43:28 +0000 (UTC) In-Reply-To: <1460553974.8441.22.camel@intel.com> Content-Language: en-US Content-ID: <1B85C78A9899EA46AD433DB4D8843FC2@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "alexandra.yates@linux.intel.com" , "Konno, Joe" , "Zanoni, Paulo R" , "Swaminathan, Nivedita" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE2LTA0LTEzIGF0IDEzOjI2ICswMDAwLCBaYW5vbmksIFBhdWxvIFIgd3JvdGU6 DQo+IEVtIFRlciwgMjAxNi0wNC0xMiDDoHMgMTI6MTggLTA3MDAsIEFsZXhhbmRyYSBZYXRlcyBl c2NyZXZldToNCj4gPiBUaGlzIGludGVyZmFjZSBhbGxvd3MgYW4gaW1tZWRpYXRlIGVuYWJsaW5n IG9mIFBTUiBmZWF0dXJlLiBXaGF0DQo+ID4gYWxsb3cgdXMNCj4gPiB0byBzZWUgaW1tZWRpYXRl bHkgdGhlIFBTUiBzYXZpbmdzIGFuZCB3aWxsIGFsbG93IHVzIHRvIGV4cG9zZSB0aGlzDQo+ID4g dGhyb3VnaCBzeXNmcyBpbnRlcmZhY2UgZm9yIHBvd2VydG9wIHRvIGxldmVyYWdlIGl0cyBmdW5j dGlvbmFsaXR5Lg0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyYSBZYXRlcyA8YWxl eGFuZHJhLnlhdGVzQGxpbnV4LmludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgIHwgIDEgKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3N5c2ZzLmMgfCA3OQ0KPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgfCAgNiArKy0NCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgIHwgMTEgKysrKy0tDQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICB8ICA0ICstDQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Bzci5jICB8IDM2ICsrKysrKysrKysrKysrLS0tLQ0KPiA+ICA2IGZp bGVzIGNoYW5nZWQsIDEyMiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkNCj4gPiANCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IGluZGV4IGY1YzkxYjAuLmM5NmRhNGQg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiBAQCAtOTc2LDYgKzk3Niw3 IEBAIHN0cnVjdCBpOTE1X3BzciB7DQo+ID4gIAlib29sIHBzcjJfc3VwcG9ydDsNCj4gPiAgCWJv b2wgYXV4X2ZyYW1lX3N5bmM7DQo+ID4gIAlib29sIGxpbmtfc3RhbmRieTsNCj4gPiArCWJvb2wg c3lzZnNfc2V0Ow0KPiA+ICB9Ow0KPiA+ICANCj4gPiAgZW51bSBpbnRlbF9wY2ggew0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMNCj4gPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYw0KPiA+IGluZGV4IDJkNTc2YjcuLjIwOGM2ZWMg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jDQo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jDQo+ID4gQEAgLTEwNiwxMiAr MTA2LDg0IEBAIHNob3dfbWVkaWFfcmM2X21zKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdA0K PiA+IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikNCj4gPiAgCXJldHVybiBzbnBy aW50ZihidWYsIFBBR0VfU0laRSwgIiV1XG4iLCByYzZfcmVzaWRlbmN5KTsNCj4gPiAgfQ0KPiA+ ICANCj4gPiArc3RhdGljIHNzaXplX3QNCj4gPiArc2hvd19wc3Ioc3RydWN0IGRldmljZSAqa2Rl diwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXINCj4gPiAqYnVmKQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgZHJtX21pbm9yICpkbWlub3IgPSBkZXZfdG9fZHJtX21pbm9yKGtkZXYp Ow0KPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRtaW5vci0+ZGV2Ow0KPiA+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4gPiAr CXNzaXplX3QgcmV0Ow0KPiA+ICsNCj4gPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5wc3IubG9j ayk7DQo+ID4gKwlyZXQgPSBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzXG4iLCBkZXZfcHJp dg0KPiA+IC0+cHNyLmVuYWJsZWQgDQo+ID4gPw0KPiA+ICsJCQkiZW5hYmxlZCI6ImRpc2FibGVk Iik7DQo+ID4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7DQo+ID4gKwlyZXR1 cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3NpemVfdA0KPiA+ICt0b2dnbGVf cHNyKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0K PiA+ICsJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpDQo+ID4gK3sNCj4gPiArCXN0cnVj dCBkcm1fbWlub3IgKmRtaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7DQo+ID4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZG1pbm9yLT5kZXY7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3I7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsN Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gTlVMTDsNCj4gPiArCXUzMiB2YWw7DQo+ ID4gKwlzc2l6ZV90IHJldDsNCj4gPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBOVUxM Ow0KPiA+ICsJYm9vbCBzeXNmc19zZXQgPSB0cnVlOw0KPiA+ICsNCj4gPiArCXJldCA9IGtzdHJ0 b3UzMihidWYsIDAsICZ2YWwpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0K PiA+ICsNCj4gPiArCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3RvcihkZXYsIGNvbm5lY3Rvcikgew0K PiA+ICsJCWlmICghY29ubmVjdG9yLT5iYXNlLmVuY29kZXIpDQo+ID4gKwkJCWNvbnRpbnVlOw0K PiA+ICsJCWVuY29kZXIgPSB0b19pbnRlbF9lbmNvZGVyKGNvbm5lY3Rvcg0KPiA+IC0+YmFzZS5l bmNvZGVyKTsNCj4gPiArCQljcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMp Ow0KPiA+ICsJCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsNCj4g PiArCX0NCj4gDQo+IFNhbWUgcHJvYmxlbSBoZXJlOiBubyBndWFyYW50ZWUgdGhhdCB0aGUgZW5j b2RlciBpcyBEUCwgbm9yIHRoYXQgaXQNCj4gc3VwcG9ydHMgUFNSLCBub3IgdGhhdCBpdCBpcyBl bmFibGVkIGFuZCBoYXMgYSBtb2RlIHNldC4NCg0KSSBhZ3JlZS4gQWxzbyB3ZSBoYXZlIGFuIGlz c3VlIHdpdGggbmV3IHBsYXRmb3JtcyBpZiB3ZSBlbmQgdXAgaGF2aW5nDQphbnkgbGFwdG9wIHdp dGggMiBlRFBzIHN1cHBvcnRpbmcgUFNSIHRoaW5ncyBjb3VsZCBnZXQgY3JhenkuDQoNClNvIHdl IGNvdWxkIGFjdHVhbGx5IGNyZWF0ZSBhIA0Kc3RydWN0IGludGVsX2RwICplZHBfd2l0aF9wc3Jf c3VwcG9ydDsgaW5zaWRlIHBzciBzdHJ1Y3R1cmUgdGhhdCB3ZSBzZXQNCmluIHRoZSBtb21lbnQg d2UgZmluZCB0aGUgZmlyc3QgZURQIHBhbmVsIHRoYXQgc3VwcG9ydHMgUFNSDQphbmQgY2hhbmdl IHRoZSBlbmFibGVkIGZyb20gaW50ZWxfZHAgcG9pbnRlciB0byBhIGJvb2xlYW4uDQoNCj4gDQo+ ID4gKw0KPiA+ICsJaWYgKCFjcnRjKQ0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsJc3dp dGNoICh2YWwpIHsNCj4gPiArCWNhc2UgMDoNCj4gPiArCQlyZXQgPSBpbnRlbF9wc3JfZGlzYWJs ZShpbnRlbF9kcCwgc3lzZnNfc2V0KTsNCj4gPiArCQlpZiAocmV0KQ0KPiA+ICsJCQlyZXR1cm4g cmV0Ow0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSAxOg0KPiA+ICsJCXJldCA9IGludGVsX3Bz cl9lbmFibGUoaW50ZWxfZHAsIHN5c2ZzX3NldCk7DQo+ID4gKwkJaWYgKHJldCkNCj4gPiArCQkJ cmV0dXJuIHJldDsNCj4gPiArCQlicmVhazsNCj4gPiArCWRlZmF1bHQ6DQo+ID4gKwkJcmV0dXJu IC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJfQ0KPiA+ICsJcmV0dXJuIGNvdW50Ow0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgREVWSUNFX0FUVFIocHNyX2VuYWJsZSwgU19JUlVHTyB8IFNfSVdV U1IsIHNob3dfcHNyLA0KPiA+IHRvZ2dsZV9wc3IpOw0KPiA+ICBzdGF0aWMgREVWSUNFX0FUVFIo cmM2X2VuYWJsZSwgU19JUlVHTywgc2hvd19yYzZfbWFzaywgTlVMTCk7DQo+ID4gIHN0YXRpYyBE RVZJQ0VfQVRUUihyYzZfcmVzaWRlbmN5X21zLCBTX0lSVUdPLCBzaG93X3JjNl9tcywgTlVMTCk7 DQo+ID4gIHN0YXRpYyBERVZJQ0VfQVRUUihyYzZwX3Jlc2lkZW5jeV9tcywgU19JUlVHTywgc2hv d19yYzZwX21zLA0KPiA+IE5VTEwpOw0KPiA+ICBzdGF0aWMgREVWSUNFX0FUVFIocmM2cHBfcmVz aWRlbmN5X21zLCBTX0lSVUdPLCBzaG93X3JjNnBwX21zLA0KPiA+IE5VTEwpOw0KPiA+ICBzdGF0 aWMgREVWSUNFX0FUVFIobWVkaWFfcmM2X3Jlc2lkZW5jeV9tcywgU19JUlVHTywNCj4gPiBzaG93 X21lZGlhX3JjNl9tcywgTlVMTCk7DQo+ID4gIA0KPiA+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0 ZSAqcHNyX2F0dHJzW10gPSB7DQo+ID4gKwkmZGV2X2F0dHJfcHNyX2VuYWJsZS5hdHRyLA0KPiA+ ICsJTlVMTA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgcHNyX2F0dHJfZ3JvdXAgPSB7DQo+ID4gKwkubmFtZSA9IHBvd2VyX2dyb3VwX25hbWUsDQo+ ID4gKwkuYXR0cnMgPSBwc3JfYXR0cnMNCj4gPiArfTsNCj4gPiArDQo+ID4gIHN0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlICpyYzZfYXR0cnNbXSA9IHsNCj4gPiAgCSZkZXZfYXR0cl9yYzZfZW5hYmxl LmF0dHIsDQo+ID4gIAkmZGV2X2F0dHJfcmM2X3Jlc2lkZW5jeV9tcy5hdHRyLA0KPiA+IEBAIC01 OTYsNiArNjY4LDEyIEBAIHZvaWQgaTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQ0KPiA+ICAJaW50IHJldDsNCj4gPiAgDQo+ID4gICNpZmRlZiBDT05GSUdfUE0NCj4gPiAr CWlmIChIQVNfUFNSKGRldikpIHsNCj4gPiArCQlyZXQgPSBzeXNmc19tZXJnZV9ncm91cCgmZGV2 LT5wcmltYXJ5LT5rZGV2LT5rb2JqLA0KPiA+ICsJCQkJCSZwc3JfYXR0cl9ncm91cCk7DQo+ID4g KwkJaWYgKHJldCkNCj4gPiArCQkJRFJNX0VSUk9SKCJQU1Igc3lzZnMgc2V0dXAgZmFpbGVkXG4i KTsNCj4gPiArCX0NCj4gPiAgCWlmIChIQVNfUkM2KGRldikpIHsNCj4gPiAgCQlyZXQgPSBzeXNm c19tZXJnZV9ncm91cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLA0KPiA+ICAJCQkJCSZyYzZf YXR0cl9ncm91cCk7DQo+ID4gQEAgLTY1Miw2ICs3MzAsNyBAQCB2b2lkIGk5MTVfdGVhcmRvd25f c3lzZnMoc3RydWN0IGRybV9kZXZpY2UNCj4gPiAqZGV2KQ0KPiA+ICAJZGV2aWNlX3JlbW92ZV9i aW5fZmlsZShkZXYtPnByaW1hcnktPmtkZXYsICAmZHBmX2F0dHJzXzEpOw0KPiA+ICAJZGV2aWNl X3JlbW92ZV9iaW5fZmlsZShkZXYtPnByaW1hcnktPmtkZXYsICAmZHBmX2F0dHJzKTsNCj4gPiAg I2lmZGVmIENPTkZJR19QTQ0KPiA+ICsJc3lzZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5wcmltYXJ5 LT5rZGV2LT5rb2JqLA0KPiA+ICZwc3JfYXR0cl9ncm91cCk7DQo+ID4gIAlzeXNmc191bm1lcmdl X2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosDQo+ID4gJnJjNl9hdHRyX2dyb3VwKTsN Cj4gPiAgCXN5c2ZzX3VubWVyZ2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwNCj4g PiAmcmM2cF9hdHRyX2dyb3VwKTsNCj4gPiAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYw0KPiA+IGluZGV4IDkyMWVkZjEuLjhlMzg0ZTUgMTAwNjQ0DQo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYw0KPiA+IEBAIC0xNjg5LDcgKzE2ODksOCBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9lbmFibGVfZGRpKHN0cnVjdA0KPiA+IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIpDQo+ID4gIAkJCWludGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7DQo+ID4gIA0K PiA+ICAJCWludGVsX2VkcF9iYWNrbGlnaHRfb24oaW50ZWxfZHApOw0KPiA+IC0JCWludGVsX3Bz cl9lbmFibGUoaW50ZWxfZHApOw0KPiA+ICsJCWlmIChkZXZfcHJpdi0+cHNyLnN5c2ZzX3NldCAh PSB0cnVlKQ0KPiA+ICsJCQlpbnRlbF9wc3JfZW5hYmxlKGludGVsX2RwLCBkZXZfcHJpdi0NCj4g PiA+IHBzci5zeXNmc19zZXQpOw0KPiA+ICAJCWludGVsX2VkcF9kcnJzX2VuYWJsZShpbnRlbF9k cCk7DQo+ID4gIAl9DQo+ID4gIA0KPiA+IEBAIC0xNzE3LDcgKzE3MTgsOCBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QNCj4gPiBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyKQ0KPiA+ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPQ0KPiA+IGVuY190b19pbnRl bF9kcChlbmNvZGVyKTsNCj4gPiAgDQo+ID4gIAkJaW50ZWxfZWRwX2RycnNfZGlzYWJsZShpbnRl bF9kcCk7DQo+ID4gLQkJaW50ZWxfcHNyX2Rpc2FibGUoaW50ZWxfZHApOw0KPiA+ICsJCWlmIChk ZXZfcHJpdi0+cHNyLnN5c2ZzX3NldCAhPSB0cnVlKQ0KPiA+ICsJCQlpbnRlbF9wc3JfZGlzYWJs ZShpbnRlbF9kcCwgZGV2X3ByaXYtDQo+ID4gPiBwc3Iuc3lzZnNfc2V0KTsNCj4gPiAgCQlpbnRl bF9lZHBfYmFja2xpZ2h0X29mZihpbnRlbF9kcCk7DQo+ID4gIAl9DQo+ID4gIH0NCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+IGluZGV4IDc1MjM1NTguLjE4M2E2MGEgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMNCj4gPiBAQCAtMjQyMSwxMyArMjQyMSwxNiBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0cnVjdA0KPiA+IGludGVsX2VuY29kZXIg KmVuY29kZXIpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNf dG9faW50ZWxfZHAoJmVuY29kZXINCj4gPiAtPmJhc2UpOw0KPiA+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Ow0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyDQo+ID4gLT5iYXNlLmNydGMpOw0KPiA+ICAN Cj4gPiAgCWlmIChjcnRjLT5jb25maWctPmhhc19hdWRpbykNCj4gPiAgCQlpbnRlbF9hdWRpb19j b2RlY19kaXNhYmxlKGVuY29kZXIpOw0KPiA+ICANCj4gPiAtCWlmIChIQVNfUFNSKGRldikgJiYg IUhBU19EREkoZGV2KSkNCj4gPiAtCQlpbnRlbF9wc3JfZGlzYWJsZShpbnRlbF9kcCk7DQo+ID4g KwlpZiAoSEFTX1BTUihkZXYpICYmICFIQVNfRERJKGRldikpIHsNCj4gPiArCQlpZiAoZGV2X3By aXYtPnBzci5zeXNmc19zZXQgIT0gdHJ1ZSkNCj4gPiArCQkJaW50ZWxfcHNyX2Rpc2FibGUoaW50 ZWxfZHAsIGRldl9wcml2LQ0KPiA+ID4gcHNyLnN5c2ZzX3NldCk7DQo+ID4gKwl9DQo+ID4gIA0K PiA+ICAJLyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBvZmYgYmVmb3JlIHRyeWluZyB0byBjaGFu Z2UgdGhlDQo+ID4gbW9kZS4gQnV0IGFsc28NCj4gPiAgCSAqIGVuc3VyZSB0aGF0IHdlIGhhdmUg dmRkIHdoaWxlIHdlIHN3aXRjaCBvZmYgdGhlIHBhbmVsLg0KPiA+ICovDQo+ID4gQEAgLTI2ODks OSArMjY5MiwxMSBAQCBzdGF0aWMgdm9pZCBnNHhfZW5hYmxlX2RwKHN0cnVjdA0KPiA+IGludGVs X2VuY29kZXINCj4gPiAqZW5jb2RlcikNCj4gPiAgc3RhdGljIHZvaWQgdmx2X2VuYWJsZV9kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikNCj4gPiAgew0KPiA+ICAJc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlcg0KPiA+IC0+YmFzZSk7DQo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt DQo+ID4gPiBiYXNlLmRldik7DQo+ID4gIA0KPiA+ICAJaW50ZWxfZWRwX2JhY2tsaWdodF9vbihp bnRlbF9kcCk7DQo+ID4gLQlpbnRlbF9wc3JfZW5hYmxlKGludGVsX2RwKTsNCj4gPiArCWlmIChk ZXZfcHJpdi0+cHNyLnN5c2ZzX3NldCAhPSB0cnVlKQ0KPiA+ICsJCWludGVsX3Bzcl9lbmFibGUo aW50ZWxfZHAsIGRldl9wcml2DQo+ID4gLT5wc3Iuc3lzZnNfc2V0KTsNCj4gPiAgfQ0KPiA+ICAN Cj4gPiAgc3RhdGljIHZvaWQgZzR4X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+IGluZGV4IGUw ZmNmYTEuLjE5OWU4Y2MgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+ IEBAIC0xNDQ2LDggKzE0NDYsOCBAQCB2b2lkIGludGVsX2JhY2tsaWdodF91bnJlZ2lzdGVyKHN0 cnVjdA0KPiA+IGRybV9kZXZpY2UgKmRldik7DQo+ID4gIA0KPiA+ICANCj4gPiAgLyogaW50ZWxf cHNyLmMgKi8NCj4gPiAtdm9pZCBpbnRlbF9wc3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApOw0KPiA+IC12b2lkIGludGVsX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApOw0KPiA+ICtpbnQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLCBib29sIHN5c2ZzX3NldCk7DQo+ID4gK2ludCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBib29sIHN5c2ZzX3NldCk7DQo+ID4gIHZvaWQgaW50ZWxfcHNy X2ludmFsaWRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gPiAgCQkJICB1bnNpZ25lZCBm cm9udGJ1ZmZlcl9iaXRzKTsNCj4gPiAgdm9pZCBpbnRlbF9wc3JfZmx1c2goc3RydWN0IGRybV9k ZXZpY2UgKmRldiwNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cHNyLmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jDQo+ID4gaW5kZXgg YzNhYmFlNC4uNjRjYjcxNCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wc3IuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jDQo+ ID4gQEAgLTM3OCwzNCArMzc4LDQzIEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9hY3RpdmF0ZShz dHJ1Y3QNCj4gPiBpbnRlbF9kcA0KPiA+ICppbnRlbF9kcCkNCj4gPiAgLyoqDQo+ID4gICAqIGlu dGVsX3Bzcl9lbmFibGUgLSBFbmFibGUgUFNSDQo+ID4gICAqIEBpbnRlbF9kcDogSW50ZWwgRFAN Cj4gPiArICogQHN5c2ZzX3NldDogSWRlbnRpZmllcyBpZiB0aGlzIGZlYXR1cmUgaXMgc2V0IGZy b20gc3lzZnMNCj4gPiAgICoNCj4gPiAgICogVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxs ZWQgYWZ0ZXIgdGhlIHBpcGUgaXMgZnVsbHkNCj4gPiB0cmFpbmVkDQo+ID4gYW5kIGVuYWJsZWQu DQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybnM6DQo+ID4gKyAqIDAgb24gc3VjY2VzcyBhbmQgLWVy cm5vIG90aGVyd2lzZS4NCj4gPiAgICovDQo+ID4gLXZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiA+ICtpbnQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBib29sIHN5c2ZzX3NldCkNCj4gPiAgew0KPiA+ICAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQ0KPiA+IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsNCj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9y dC0+YmFzZS5iYXNlLmRldjsNCj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoaW50ZWxfZGlnX3BvcnQtDQo+ID4gPiBiYXNlLmJhc2UuY3J0Yyk7DQo+ID4g KwlpbnQgcmV0ID0gMDsNCj4gPiArDQo+ID4gIA0KPiA+ICAJaWYgKCFIQVNfUFNSKGRldikpIHsN Cj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1Igbm90IHN1cHBvcnRlZCBvbiB0aGlzDQo+ID4gcGxh dGZvcm1cbiIpOw0KPiA+IC0JCXJldHVybjsNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiAg CX0NCj4gPiAgDQo+ID4gIAlpZiAoIWlzX2VkcF9wc3IoaW50ZWxfZHApKSB7DQo+ID4gIAkJRFJN X0RFQlVHX0tNUygiUFNSIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcw0KPiA+IHBhbmVsXG4iKTsNCj4g PiAtCQlyZXR1cm47DQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gIAl9DQo+ID4gIA0KPiA+ ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsNCj4gPiAgCWlmIChkZXZfcHJpdi0+ cHNyLmVuYWJsZWQpIHsNCj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1IgYWxyZWFkeSBpbiB1c2Vc biIpOw0KPiA+ICsJCXJldCA9IC1FQUxSRUFEWTsNCj4gPiAgCQlnb3RvIHVubG9jazsNCj4gPiAg CX0NCj4gPiAgDQo+ID4gLQlpZiAoIWludGVsX3Bzcl9tYXRjaF9jb25kaXRpb25zKGludGVsX2Rw KSkNCj4gPiArCWlmICghaW50ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoaW50ZWxfZHApKSB7DQo+ ID4gKwkJcmV0ID0gLUVOT1RUWTsNCj4gPiAgCQlnb3RvIHVubG9jazsNCj4gPiArCX0NCj4gPiAg DQo+ID4gIAlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7DQo+ID4gIA0K PiA+IEBAIC00NjQsOCArNDczLDEyIEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZHANCj4gPiAqaW50ZWxfZHApDQo+ID4gIAkJCQkgICAgICBtc2Vjc190b19qaWZmaWVzKGlu dGVsX2RwLQ0KPiA+ID4gcGFuZWxfcG93ZXJfY3ljbGVfZGVsYXkgKiA1KSk7DQo+ID4gIA0KPiA+ ICAJZGV2X3ByaXYtPnBzci5lbmFibGVkID0gaW50ZWxfZHA7DQo+ID4gKwlpZiAoc3lzZnNfc2V0 KQ0KPiA+ICsJCWRldl9wcml2LT5wc3Iuc3lzZnNfc2V0ID0gc3lzZnNfc2V0Ow0KPiA+ICsNCj4g PiAgdW5sb2NrOg0KPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOw0KPiA+ ICsJcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIHZvaWQgdmx2X3Bzcl9k aXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ID4gQEAgLTUyMCwxMCArNTMzLDEx IEBAIHN0YXRpYyB2b2lkIGhzd19wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHANCj4gPiAqaW50 ZWxfZHApDQo+ID4gIC8qKg0KPiA+ICAgKiBpbnRlbF9wc3JfZGlzYWJsZSAtIERpc2FibGUgUFNS DQo+ID4gICAqIEBpbnRlbF9kcDogSW50ZWwgRFANCj4gPiArICogQHN5c2ZzX3NldDogSWRlbnRp ZmllcyBpZiB0aGlzIGZlYXR1cmUgaXMgc2V0IGZyb20gc3lzZnMNCj4gPiAgICoNCj4gPiAgICog VGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIGRpc2FibGluZyBwaXBlLg0K PiA+ICAgKi8NCj4gPiAtdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQ0KPiA+ICtpbnQgaW50ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwgYm9vbCBzeXNmc19zZXQpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0NCj4gPiBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7DQo+ ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5k ZXY7DQo+ID4gQEAgLTUzMiw3ICs1NDYsNyBAQCB2b2lkIGludGVsX3Bzcl9kaXNhYmxlKHN0cnVj dCBpbnRlbF9kcA0KPiA+ICppbnRlbF9kcCkNCj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5w c3IubG9jayk7DQo+ID4gIAlpZiAoIWRldl9wcml2LT5wc3IuZW5hYmxlZCkgew0KPiA+ICAJCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsNCj4gPiAtCQlyZXR1cm47DQo+ID4gKwkJ cmV0dXJuIC1FQUxSRUFEWTsNCj4gPiAgCX0NCj4gPiAgDQo+ID4gIAkvKiBEaXNhYmxlIFBTUiBv biBTb3VyY2UgKi8NCj4gPiBAQCAtNTQ1LDkgKzU1OSwxMyBAQCB2b2lkIGludGVsX3Bzcl9kaXNh YmxlKHN0cnVjdCBpbnRlbF9kcA0KPiA+ICppbnRlbF9kcCkNCj4gPiAgCWRybV9kcF9kcGNkX3dy aXRlYigmaW50ZWxfZHAtPmF1eCwgRFBfUFNSX0VOX0NGRywgMCk7DQo+ID4gIA0KPiA+ICAJZGV2 X3ByaXYtPnBzci5lbmFibGVkID0gTlVMTDsNCj4gPiArCWlmIChzeXNmc19zZXQpDQo+ID4gKwkJ ZGV2X3ByaXYtPnBzci5zeXNmc19zZXQgPSBzeXNmc19zZXQ7DQo+ID4gKw0KPiA+ICAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOw0KPiA+ICANCj4gPiAgCWNhbmNlbF9kZWxheWVk X3dvcmtfc3luYygmZGV2X3ByaXYtPnBzci53b3JrKTsNCj4gPiArCXJldHVybiAwOw0KPiA+ICB9 DQo+ID4gIA0KPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspDQo+ID4gQEAgLTc4MSw4ICs3OTksMTAgQEAgdm9pZCBpbnRlbF9wc3JfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPiA+ICANCj4gPiAgCS8qIFBlciBwbGF0Zm9ybSBkZWZh dWx0ICovDQo+ID4gIAlpZiAoaTkxNS5lbmFibGVfcHNyID09IC0xKSB7DQo+ID4gLQkJaWYgKElT X0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkNCj4gPiAtCQkJaTkxNS5lbmFibGVf cHNyID0gMTsNCj4gPiArCQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYp KSB7DQo+ID4gKwkJCWlmIChkZXZfcHJpdi0+cHNyLnN5c2ZzX3NldCAhPSB0cnVlKQ0KPiA+ICsJ CQkJaTkxNS5lbmFibGVfcHNyID0gMTsNCj4gPiArCQl9DQo+ID4gIAkJZWxzZQ0KPiA+ICAJCQlp OTE1LmVuYWJsZV9wc3IgPSAwOwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK