From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH 1/2] drm/i915: Allow control of PSR at runtime through debugfs, v4. Date: Tue, 07 Aug 2018 17:07:08 -0700 Message-ID: <1f20f635274c99c516cf52b16bb65e6a5a34f457.camel@intel.com> References: <1532755389.7639.59.camel@intel.com> <20180731133559.6892-1-maarten.lankhorst@linux.intel.com> Reply-To: dhinakaran.pandiyan@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9BE2F6E488 for ; Wed, 8 Aug 2018 00:07:10 +0000 (UTC) In-Reply-To: <20180731133559.6892-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE4LTA3LTMxIGF0IDE1OjM1ICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBDdXJyZW50bHkgdGVzdHMgbW9kaWZ5IGk5MTUuZW5hYmxlX3BzciBhbmQgdGhlbiBkbyBh IG1vZGVzZXQgY3ljbGUKPiB0byBjaGFuZ2UgUFNSLiBXZSBjYW4gd3JpdGUgYSB2YWx1ZSB0byBp OTE1X2VkcF9wc3JfZGVidWcgdG8gZm9yY2UKPiBhIGNlcnRhaW4gUFNSIG1vZGUgd2l0aG91dCBh IG1vZGVzZXQuCj4gCj4gVG8gcmV0YWluIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciB1c2Vyc3Bh Y2UsIHdlIGFsc28gc3RpbGwgYWxsb3cKPiB0aGUgb3ZlcnJpZGUgdGhyb3VnaCB0aGUgbW9kdWxl IHBhcmFtZXRlciwgYW5kIGFkZCBzb21lIHRyYWNraW5nCj4gdG8gY2hlY2sgd2hldGhlciBhIGRl YnVnZnMgbW9kZSBpcyBzcGVjaWZpZWQuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAtIFJlbmFt ZSBkZXZfcHJpdi0+cHNyLmVuYWJsZWQgdG8gLmRwLCBhbmQgLmh3X2NvbmZpZ3VyZWQgdG8KPiAu ZW5hYmxlZC4KPiAtIEZpeCBpOTE1X3Bzcl9kZWJ1Z2ZzX21vZGUgdG8gbWF0Y2ggdGhlIHdyaXRl cyB0byBkZWJ1Z2ZzLgo+IC0gUmVuYW1lIF9faTkxNV9lZHBfcHNyX3dyaXRlIHRvIGludGVsX3Bz cl9zZXRfZGVidWdmc19tb2RlLCBzaW1wbGlmeQo+ICAgaXQgYW5kIG1vdmUgaXQgdG8gaW50ZWxf cHNyLmMuIFRoaXMga2VlcHMgYWxsIGludGVybmFscyBpbgo+IGludGVsX3Bzci5jCj4gLSBQZXJm b3JtIGFuIGludGVycnVwdGlibGUgd2FpdCBmb3IgaHcgY29tcGxldGlvbiBvdXRzaWRlIG9mIHRo ZSBwc3IKPiAgIGxvY2ssIGluc3RlYWQgb2YgYmVpbmcgZm9yY2VkIHRvIHRyeXdhaXQgYW5kIHJl dHVybiAtRUJVU1kuCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAtIFJlYmFzZSBvbiB0b3Agb2YgaW50 ZWxfcHNyIGNoYW5nZXMuCj4gQ2hhbmdlcyBzaW5jZSB2MzoKPiAtIEFzc2lnbiBwc3IuZHAgZHVy aW5nIGluaXQuIChkaG5rcm4pCj4gLSBBZGQgcHJlcGFyZWQgYm9vbCwgd2hpY2ggc2hvdWxkIGJl IHVzZWQgaW5zdGVhZCBvZiByZWx5aW5nIG9uCj4gcHNyLmRwLiAoZGhua3JuKQo+IC0gRml4IC1F REVBRExLIGhhbmRsaW5nIGluIGRlYnVnZnMuIChkaG5rcm4pCj4gLSBDbGVhbiB1cCB3YWl0aW5n IGZvciBpZGxlIGluIGludGVsX3Bzcl9zZXRfZGVidWdmc19tb2RlLgo+IC0gUHJpbnQgUFNSIG1v ZGUgd2hlbiB0cnlpbmcgdG8gZW5hYmxlIFBTUi4gKGRobmtybikKPiAtIE1vdmUgY2hhbmdpbmcg cHNyIGRlYnVnIHNldHRpbmcgdG8gaTkxNV9lZHBfcHNyX2RlYnVnX3NldC4gKGRobmtybikKPiAK PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ Cj4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8ICAyMSArKysr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAxMiArKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgfCAgIDUgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAtLQo+ICA1 IGZpbGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggNTlkYzA2MTBlYTQ0Li5hN2U5 Mjc0MTNlOGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yNzA1 LDcgKzI3MDUsNyBAQCBzdGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9m aWxlCj4gKm0sIHZvaWQgKmRhdGEpCj4gIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7 Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiAtCXNlcV9wcmludGYo bSwgIkVuYWJsZWQ6ICVzXG4iLCB5ZXNubygoYm9vbClkZXZfcHJpdi0KPiA+cHNyLmVuYWJsZWQp KTsKPiArCXNlcV9wcmludGYobSwgIkVuYWJsZWQ6ICVzXG4iLCB5ZXNubyhkZXZfcHJpdi0KPiA+ cHNyLmVuYWJsZWQpKTsKPiAgCXNlcV9wcmludGYobSwgIkJ1c3kgZnJvbnRidWZmZXIgYml0czog MHglMDN4XG4iLAo+ICAJCSAgIGRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzKTsK PiAgCj4gQEAgLTI3NDcsMTQgKzI3NDcsMjkgQEAgc3RhdGljIGludAo+ICBpOTE1X2VkcF9wc3Jf ZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggY3R4Owo+ICsJaW50IHJldDsKPiAgCj4gIAlpZiAoIUNBTl9QU1IoZGV2X3ByaXYpKQo+ICAJ CXJldHVybiAtRU5PREVWOwo+ICAKPiAtCURSTV9ERUJVR19LTVMoIlBTUiBkZWJ1ZyAlc1xuIiwg ZW5hYmxlZGRpc2FibGVkKHZhbCkpOwo+ICsJRFJNX0RFQlVHX0tNUygiU2V0dGluZyBQU1IgZGVi dWcgdG8gJWxseFxuIiwgdmFsKTsKPiAgCj4gIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJp dik7Cj4gLQlpbnRlbF9wc3JfaXJxX2NvbnRyb2woZGV2X3ByaXYsICEhdmFsKTsKPiArCj4gKwlk cm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwKPiBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lOVEVS UlVQVElCTEUpOwo+ICsKPiArcmV0cnk6Cj4gKwlyZXQgPSBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNf bW9kZShkZXZfcHJpdiwgJmN0eCwgdmFsKTsKPiArCWlmIChyZXQgPT0gLUVERUFETEspIHsKPiAr CQlyZXQgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwpJcyB0aGVyZSBhbnkgcmVhc29uIG5v dCBiYWNrb2ZmIHdoZXJlIG1vZGVzZXRfbG9jaygpIGlzIGNhbGxlZCwgaS5lLiwKaW5zaWRlIHNl dF9kZWJ1Z2ZzX21vZGUoKT8KCj4gKwkJaWYgKCFyZXQpCj4gKwkJCWdvdG8gcmV0cnk7Cj4gKwl9 Cj4gKwo+ICsJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKU2FtZSB3aXRoIHRoaXM/Cgo+ ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ICsKPiAgCWludGVsX3J1bnRpbWVf cG1fcHV0KGRldl9wcml2KTsKPiAgCj4gIAlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDBmNDlmOTk4OGRmYS4uZWYwNGI2Y2Q3ODYzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTYxMSw4ICs2MTEsMTcgQEAgc3RydWN0IGk5MTVfZHJycyB7Cj4g IAo+ICBzdHJ1Y3QgaTkxNV9wc3Igewo+ICAJc3RydWN0IG11dGV4IGxvY2s7Cj4gKwo+ICsjZGVm aW5lIEk5MTVfUFNSX0RFQlVHX0lSUQlCSVQoMCkKbml0OiBsb29rcyBhIGJpdCBvZGQgdG8gdXNl IHRoZSBCSVQgbWFjcm8gb25seSBmb3IgdGhlIGZpcnN0IGJpdC4gSXMKdGhpcyB0aGUgbmV3IGd1 aWRlbGluZSBmb3Igc2luZ2xlIGJpdCBkZWZpbml0aW9ucz8KCj4gKyNkZWZpbmUgSTkxNV9QU1Jf REVCVUdfTU9ERV9NQVNLICg3IDw8IDEpCj4gKyNkZWZpbmUgSTkxNV9QU1JfREVCVUdfREVGQVVM VAkoMCA8PCAxKQo+ICsjZGVmaW5lIEk5MTVfUFNSX0RFQlVHX0RJU0FCTEUJKDEgPDwgMSkKPiAr I2RlZmluZSBJOTE1X1BTUl9ERUJVR19FTkFCTEUJKDIgPDwgMSkKCkNhbiB3ZSBhbHNvIHBsZWFz ZSBkZWZpbmUgdGhlIGVuYWJsZS9kaXNhYmxlIGJpdHMgZnJvbSAwIGFuZCBtb3ZlIHRoZQpkZWJ1 ZyBvbmUgdG93YXJkcyBNU0I/IFRoZSBlbmFibGUvZGlzYWJsZSBiaXRzIHdpbGwgYmUgdGhlIG1v c3QKY29tbW9ubHkgdXNlZCBvbmVzIGFuZCBpdCdkIGJlIGVhc3kgdG8gcmVtZW1iZXIgaWYgdGhl cmUgd2FzIG5vIHNoaWZ0PwpJJ20gZmluZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdG9v LgoKPiArCj4gKwl1MzIgZGVidWc7Cj4gIAlib29sIHNpbmtfc3VwcG9ydDsKPiAtCXN0cnVjdCBp bnRlbF9kcCAqZW5hYmxlZDsKPiArCWJvb2wgcHJlcGFyZWQsIGVuYWJsZWQ7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmRwOwo+ICAJYm9vbCBhY3RpdmU7Cj4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29y azsKPiAgCXVuc2lnbmVkIGJ1c3lfZnJvbnRidWZmZXJfYml0czsKPiBAQCAtNjIyLDcgKzYzMSw2 IEBAIHN0cnVjdCBpOTE1X3BzciB7Cj4gIAlib29sIGFscG07Cj4gIAlib29sIHBzcjJfZW5hYmxl ZDsKPiAgCXU4IHNpbmtfc3luY19sYXRlbmN5Owo+IC0JYm9vbCBkZWJ1ZzsKPiAgCWt0aW1lX3Qg bGFzdF9lbnRyeV9hdHRlbXB0Owo+ICAJa3RpbWVfdCBsYXN0X2V4aXQ7Cj4gIH07Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCA1ZGFkZWZjYTJhZDIuLmRlZmQ2OTZlNzFmYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC00MDUxLDcgKzQwNTEsNyBAQCBzdGF0aWMg aW50IGlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QKPiBkcm1fZGV2aWNlICpkZXYpCj4g IAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJZ2VuM19hc3NlcnRfaWlyX2lz X3plcm8oZGV2X3ByaXYsIEVEUF9QU1JfSUlSKTsKPiAtCQlpbnRlbF9wc3JfaXJxX2NvbnRyb2wo ZGV2X3ByaXYsIGRldl9wcml2LQo+ID5wc3IuZGVidWcpOwo+ICsJCWludGVsX3Bzcl9pcnFfY29u dHJvbChkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci5kZWJ1Zwo+ICYgSTkxNV9QU1JfREVCVUdfSVJR KTsKPiAgCQlkaXNwbGF5X21hc2sgfD0gREVfRURQX1BTUl9JTlRfSFNXOwo+ICAJfQo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggOTlhNWY1YmU1YjgyLi5mNGNmYjdlZDIy NjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xOTMwLDYgKzE5MzAsOSBA QCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLAo+ICAJ CSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9p ZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCSAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gKm9sZF9jcnRjX3N0YXRlKTsKPiAraW50 IGludGVsX3Bzcl9zZXRfZGVidWdmc19tb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAo+ ICsJCQkgICAgICAgdTY0IHZhbHVlKTsKPiAgdm9pZCBpbnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgdW5zaWduZWQgZnJvbnRidWZm ZXJfYml0cywKPiAgCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcHNyLmMKPiBpbmRleCA0YmQ1NzY4NzMxZWUuLjc4NDg4MjkwOTRjYSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gQEAgLTU2LDYgKzU2LDE4IEBACj4gICNpbmNsdWRl ICJpbnRlbF9kcnYuaCIKPiAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gIAo+ICtzdGF0aWMgYm9v bCBwc3JfZ2xvYmFsX2VuYWJsZWQodTMyIGRlYnVnKQo+ICt7Cj4gKwlzd2l0Y2ggKGRlYnVnICYg STkxNV9QU1JfREVCVUdfTU9ERV9NQVNLKSB7Cj4gKwljYXNlIEk5MTVfUFNSX0RFQlVHX0RFRkFV TFQ6Cj4gKwkJcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3I7Cj4gKwljYXNlIEk5MTVf UFNSX0RFQlVHX0RJU0FCTEU6Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJZGVmYXVsdDoKPiArCQly ZXR1cm4gdHJ1ZTsKPiArCX0KPiArfQo+ICsKPiAgdm9pZCBpbnRlbF9wc3JfaXJxX2NvbnRyb2wo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sCj4gZGVidWcpCj4gIHsKPiAg CXUzMiBkZWJ1Z19tYXNrLCBtYXNrOwo+IEBAIC04MCw3ICs5Miw2IEBAIHZvaWQgaW50ZWxfcHNy X2lycV9jb250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LCBib29sIGRl YnVnKQo+ICAJaWYgKGRlYnVnKQo+ICAJCW1hc2sgfD0gZGVidWdfbWFzazsKPiAgCj4gLQlXUklU RV9PTkNFKGRldl9wcml2LT5wc3IuZGVidWcsIGRlYnVnKTsKPiAgCUk5MTVfV1JJVEUoRURQX1BT Ul9JTVIsIH5tYXNrKTsKPiAgfQo+ICAKPiBAQCAtMjEyLDYgKzIyMyw3IEBAIHZvaWQgaW50ZWxf cHNyX2luaXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHApCj4gIAlkZXZfcHJpdi0+ cHNyLnNpbmtfc3VwcG9ydCA9IHRydWU7Cj4gIAlkZXZfcHJpdi0+cHNyLnNpbmtfc3luY19sYXRl bmN5ID0KPiAgCQlpbnRlbF9kcF9nZXRfc2lua19zeW5jX2xhdGVuY3koaW50ZWxfZHApOwo+ICsJ ZGV2X3ByaXYtPnBzci5kcCA9IGludGVsX2RwOwo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDkgJiYKPiAgCSAgICAoaW50ZWxfZHAtPnBzcl9kcGNkWzBdID09Cj4gRFBfUFNSMl9X SVRIX1lfQ09PUkRfSVNfU1VQUE9SVEVEKSkgewo+IEBAIC00NzEsMTEgKzQ4Myw2IEBAIHZvaWQg aW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwKPiAg CWlmICghQ0FOX1BTUihkZXZfcHJpdikpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWlmICghaTkxNV9t b2RwYXJhbXMuZW5hYmxlX3Bzcikgewo+IC0JCURSTV9ERUJVR19LTVMoIlBTUiBkaXNhYmxlIGJ5 IGZsYWdcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gIAkvKgo+ICAJICogSFNXIHNwZWMg ZXhwbGljaXRseSBzYXlzIFBTUiBpcyB0aWVkIHRvIHBvcnQgQS4KPiAgCSAqIEJEVysgcGxhdGZv cm1zIHdpdGggRERJIGltcGxlbWVudGF0aW9uIG9mIFBTUiBoYXZlCj4gZGlmZmVyZW50Cj4gQEAg LTUxNyw3ICs1MjQsNiBAQCB2b2lkIGludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZHAKPiAqaW50ZWxfZHAsCj4gIAo+ICAJY3J0Y19zdGF0ZS0+aGFzX3BzciA9IHRydWU7Cj4g IAljcnRjX3N0YXRlLT5oYXNfcHNyMiA9IGludGVsX3BzcjJfY29uZmlnX3ZhbGlkKGludGVsX2Rw LAo+IGNydGNfc3RhdGUpOwo+IC0JRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgUFNSJXNcbiIsIGNy dGNfc3RhdGUtPmhhc19wc3IyID8gIjIiCj4gOiAiIik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGludGVsX3Bzcl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+IEBAIC01ODks NiArNTk1LDIzIEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdAo+ IGludGVsX2RwICppbnRlbF9kcCwKPiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxf cHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4g KwkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiAqY3J0Y19zdGF0ZSkKPiAr ewo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGRldl9wcml2LT5wc3IuZHA7Cj4gKwo+ ICsJaWYgKGRldl9wcml2LT5wc3IuZW5hYmxlZCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJRFJNX0RF QlVHX0tNUygiRW5hYmxpbmcgUFNSJXNcbiIsIGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkIAo+ ID8gIjIiIDogIjEiKTsKPiArCWludGVsX3Bzcl9zZXR1cF92c2MoaW50ZWxfZHAsIGNydGNfc3Rh dGUpOwo+ICsJaW50ZWxfcHNyX2VuYWJsZV9zaW5rKGludGVsX2RwKTsKPiArCWludGVsX3Bzcl9l bmFibGVfc291cmNlKGludGVsX2RwLCBjcnRjX3N0YXRlKTsKPiArCWRldl9wcml2LT5wc3IuZW5h YmxlZCA9IHRydWU7Cj4gKwo+ICsJaW50ZWxfcHNyX2FjdGl2YXRlKGludGVsX2RwKTsKPiArfQo+ ICsKPiAgLyoqCj4gICAqIGludGVsX3Bzcl9lbmFibGUgLSBFbmFibGUgUFNSCj4gICAqIEBpbnRl bF9kcDogSW50ZWwgRFAKPiBAQCAtNjExLDIwICs2MzQsMjAgQEAgdm9pZCBpbnRlbF9wc3JfZW5h YmxlKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwKPiAgCj4gIAlXQVJOX09OKGRldl9wcml2 LT5kcnJzLmRwKTsKV2UgY291bGQgYWRkIGEgbmV3IGxpbmUgaGVyZT8KCj4gIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+IC0JaWYgKGRldl9wcml2LT5wc3IuZW5hYmxlZCkgewo+ ICsJaWYgKGRldl9wcml2LT5wc3IucHJlcGFyZWQpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJQU1Ig YWxyZWFkeSBpbiB1c2VcbiIpOwo+ICAJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ICAKPiAgCWRldl9w cml2LT5wc3IucHNyMl9lbmFibGVkID0gY3J0Y19zdGF0ZS0+aGFzX3BzcjI7Cj4gIAlkZXZfcHJp di0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7Cj4gKwlkZXZfcHJpdi0+cHNyLnByZXBh cmVkID0gdHJ1ZTsKPiArCWRldl9wcml2LT5wc3IuZHAgPSBpbnRlbF9kcDsKLmRwIGlzIGFscmVh ZHkgc2V0IGluIGluaXRfZHBjZCgpCgo+ICAKPiAtCWludGVsX3Bzcl9zZXR1cF92c2MoaW50ZWxf ZHAsIGNydGNfc3RhdGUpOwo+IC0JaW50ZWxfcHNyX2VuYWJsZV9zaW5rKGludGVsX2RwKTsKPiAt CWludGVsX3Bzcl9lbmFibGVfc291cmNlKGludGVsX2RwLCBjcnRjX3N0YXRlKTsKPiAtCWRldl9w cml2LT5wc3IuZW5hYmxlZCA9IGludGVsX2RwOwo+IC0KPiAtCWludGVsX3Bzcl9hY3RpdmF0ZShp bnRlbF9kcCk7Cj4gKwlpZiAocHNyX2dsb2JhbF9lbmFibGVkKGRldl9wcml2LT5wc3IuZGVidWcp KQo+ICsJCWludGVsX3Bzcl9lbmFibGVfbG9ja2VkKGRldl9wcml2LCBjcnRjX3N0YXRlKTsKPiAr CWVsc2UKPiArCQlEUk1fREVCVUdfS01TKCJQU1IgZGlzYWJsZWQgYnkgZmxhZ1xuIik7Cj4gIAo+ ICB1bmxvY2s6Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gQEAgLTY4 MywxMiArNzA2LDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9kaXNhYmxlX2xvY2tlZChzdHJ1 Y3QKPiBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlpZiAoIWRldl9wcml2LT5wc3IuZW5hYmxlZCkK PiAgCQlyZXR1cm47Cj4gIAo+ICsJRFJNX0RFQlVHX0tNUygiRGlzYWJsaW5nIFBTUlxuIik7ClBy aW50IFBTUjEvMiB0b28/IExpa2UgeW91J3ZlIGRvbmUgaW4gdGhlIGVuYWJsZSBjb3VudGVyIHBh cnQuCgo+ICAJaW50ZWxfcHNyX2Rpc2FibGVfc291cmNlKGludGVsX2RwKTsKPiAgCj4gIAkvKiBE aXNhYmxlIFBTUiBvbiBTaW5rICovCj4gIAlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5h dXgsIERQX1BTUl9FTl9DRkcsIDApOwo+ICAKPiAtCWRldl9wcml2LT5wc3IuZW5hYmxlZCA9IE5V TEw7Cj4gKwlkZXZfcHJpdi0+cHNyLmVuYWJsZWQgPSBmYWxzZTsKPiAgfQo+ICAKPiAgLyoqCj4g QEAgLTcxMiw3ICs3MzYsMTQgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZHAKPiAqaW50ZWxfZHAsCj4gIAkJcmV0dXJuOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5wc3IubG9jayk7Cj4gKwlpZiAoaW50ZWxfZHAgIT0gZGV2X3ByaXYtPnBzci5kcCB8fCAhZGV2 X3ByaXYtPnBzci5wcmVwYXJlZCkKV29uJ3QgaW50ZWxfZHAgPT0gZGV2X3ByaXYtPnBzci5kcCBp ZiBvbGRfY3J0Y19zdGF0ZS0+aGFzX3BzciB3YXMgdHJ1ZT8KCj4gIHsKPiArCQltdXRleF91bmxv Y2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiAgCWludGVs X3Bzcl9kaXNhYmxlX2xvY2tlZChpbnRlbF9kcCk7Cj4gKwo+ICsJZGV2X3ByaXYtPnBzci5wcmVw YXJlZCA9IGZhbHNlOwo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICAJ Y2FuY2VsX3dvcmtfc3luYygmZGV2X3ByaXYtPnBzci53b3JrKTsKPiAgfQo+IEBAIC03MjQsOSAr NzU1LDYgQEAgaW50IGludGVsX3Bzcl93YWl0X2Zvcl9pZGxlKGNvbnN0IHN0cnVjdAo+IGludGVs X2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ICAJaTkxNV9yZWdfdCByZWc7Cj4gIAl1MzIg bWFzazsKPiAgCj4gLQlpZiAoIW5ld19jcnRjX3N0YXRlLT5oYXNfcHNyKQo+IC0JCXJldHVybiAw Owo+IC0KPiAgCS8qCj4gIAkgKiBUaGUgc29sZSB1c2VyIHJpZ2h0IG5vdyBpcyBpbnRlbF9waXBl X3VwZGF0ZV9zdGFydCgpLAo+ICAJICogd2hpY2ggd29uJ3QgcmFjZSB3aXRoIHBzcl9lbmFibGUv ZGlzYWJsZSwgd2hpY2ggaXMKPiBAQCAtNzM3LDYgKzc2NSw5IEBAIGludCBpbnRlbF9wc3Jfd2Fp dF9mb3JfaWRsZShjb25zdCBzdHJ1Y3QKPiBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0 ZSkKPiAgCSAqIG5vdCBuZWVkZWQgYW5kIHdpbGwgaW5kdWNlIGxhdGVuY2llcyBpbiB0aGUgYXRv bWljCj4gIAkgKiB1cGRhdGUgcGF0aC4KPiAgCSAqLwo+ICsJaWYgKCFkZXZfcHJpdi0+cHNyLmVu YWJsZWQpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICAJaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFi bGVkKSB7Cj4gIAkJcmVnID0gRURQX1BTUjJfU1RBVFVTOwo+ICAJCW1hc2sgPSBFRFBfUFNSMl9T VEFUVVNfU1RBVEVfTUFTSzsKPiBAQCAtNzU2LDEzICs3ODcsMTEgQEAgaW50IGludGVsX3Bzcl93 YWl0X2Zvcl9pZGxlKGNvbnN0IHN0cnVjdAo+IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlKQo+ICAKPiAgc3RhdGljIGJvb2wgX19wc3Jfd2FpdF9mb3JfaWRsZV9sb2NrZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHA7Cj4gIAlpOTE1X3JlZ190IHJlZzsKPiAgCXUzMiBtYXNrOwo+ICAJaW50IGVycjsK PiAgCj4gLQlpbnRlbF9kcCA9IGRldl9wcml2LT5wc3IuZW5hYmxlZDsKPiAtCWlmICghaW50ZWxf ZHApCj4gKwlpZiAoIWRldl9wcml2LT5wc3IuZW5hYmxlZCkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4g IAo+ICAJaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkKSB7Cj4gQEAgLTc4NCw2ICs4MTMs NjIgQEAgc3RhdGljIGJvb2wgX19wc3Jfd2FpdF9mb3JfaWRsZV9sb2NrZWQoc3RydWN0Cj4gZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlyZXR1cm4gZXJyID09IDAgJiYgZGV2X3ByaXYt PnBzci5lbmFibGVkOwo+ICB9Cj4gIAo+ICtpbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgICAgc3RydWN0IGRy bV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCj4gKwkJCSAgICAgICB1NjQgdmFsKQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gKwlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsK PiArCXN0cnVjdCBpbnRlbF9kcCAqZHA7Cj4gKwlpbnQgcmV0Owo+ICsJYm9vbCBlbmFibGU7Cj4g Kwo+ICsJaWYgKHZhbCAmIH4oSTkxNV9QU1JfREVCVUdfSVJRIHwgSTkxNV9QU1JfREVCVUdfTU9E RV9NQVNLKQo+IHx8Cj4gKwkgICAgKHZhbCAmIEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSykgPgo+ IEk5MTVfUFNSX0RFQlVHX0VOQUJMRSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkludmFsaWQgZGVi dWcgbWFzayAlbGx4XG4iLCB2YWwpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiAr CXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCwKPiBjdHgpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCS8qIGRldl9w cml2LT5wc3IuZHAgc2hvdWxkIGJlIHNldCBvbmNlIGFuZCB0aGVuIG5ldmVyCj4gdG91Y2hlZCBh Z2Fpbi4gKi8KPiArCWRwID0gUkVBRF9PTkNFKGRldl9wcml2LT5wc3IuZHApOwo+ICsJY29ubl9z dGF0ZSA9IGRwLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2Uuc3RhdGU7Cj4gKwljcnRjID0gY29u bl9zdGF0ZS0+Y3J0YzsKPiArCWlmIChjcnRjKSB7Cj4gKwkJcmV0ID0gZHJtX21vZGVzZXRfbG9j aygmY3J0Yy0+bXV0ZXgsIGN0eCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiAr Cj4gKwkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjcnRjLQo+ID5z dGF0ZS0+Y29tbWl0LT5od19kb25lKTsKPiArCX0gZWxzZQo+ICsJCXJldCA9IHdhaXRfZm9yX2Nv bXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29ubl9zdGF0ZS0KPiA+Y29tbWl0LT5od19kb25lKTsK U2hvdWxkbid0IHRoaXMgd2FpdCBvbiBjb25uZWN0aW9uIHN0YXRlIGJlIGRvbmUgZXZlbiBpZiBh IGNydGMgd2FzCnByZXNlbnQ/Cgo+ICsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiAr Cj4gKwlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldl9wcml2LT5wc3IubG9jayk7 Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJZW5hYmxlID0gcHNyX2dsb2Jh bF9lbmFibGVkKHZhbCk7Cj4gKwo+ICsJaWYgKCFlbmFibGUpCj4gKwkJaW50ZWxfcHNyX2Rpc2Fi bGVfbG9ja2VkKGRldl9wcml2LT5wc3IuZHApOwo+ICsKPiArCWRldl9wcml2LT5wc3IuZGVidWcg PSB2YWw7Cj4gKwlpbnRlbF9wc3JfaXJxX2NvbnRyb2woZGV2X3ByaXYsIGRldl9wcml2LT5wc3Iu ZGVidWcgJgo+IEk5MTVfUFNSX0RFQlVHX0lSUSk7Cj4gKwo+ICsJaWYgKGRldl9wcml2LT5wc3Iu cHJlcGFyZWQgJiYgZW5hYmxlKQo+ICsJCWludGVsX3Bzcl9lbmFibGVfbG9ja2VkKGRldl9wcml2 LAo+IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpKTsKPiArCj4gKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICBzdGF0 aWMgdm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gQEAgLTgxMSw3ICs4OTYsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QKPiAqd29yaykK PiAgCWlmIChkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyB8fCBkZXZfcHJpdi0K PiA+cHNyLmFjdGl2ZSkKPiAgCQlnb3RvIHVubG9jazsKPiAgCj4gLQlpbnRlbF9wc3JfYWN0aXZh dGUoZGV2X3ByaXYtPnBzci5lbmFibGVkKTsKPiArCWludGVsX3Bzcl9hY3RpdmF0ZShkZXZfcHJp di0+cHNyLmRwCj4gKyk7Cl50eXBvCgo+ICB1bmxvY2s6Cj4gIAltdXRleF91bmxvY2soJmRldl9w cml2LT5wc3IubG9jayk7Cj4gIH0KPiBAQCAtODY2LDcgKzk1Miw3IEBAIHZvaWQgaW50ZWxfcHNy X2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gIAkJcmV0 dXJuOwo+ICAJfQo+ICAKPiAtCWNydGMgPSBkcF90b19kaWdfcG9ydChkZXZfcHJpdi0+cHNyLmVu YWJsZWQpLQo+ID5iYXNlLmJhc2UuY3J0YzsKPiArCWNydGMgPSBkcF90b19kaWdfcG9ydChkZXZf cHJpdi0+cHNyLmRwKS0+YmFzZS5iYXNlLmNydGM7Cj4gIAlwaXBlID0gdG9faW50ZWxfY3J0Yyhj cnRjKS0+cGlwZTsKPiAgCj4gIAlmcm9udGJ1ZmZlcl9iaXRzICY9IElOVEVMX0ZST05UQlVGRkVS X0FMTF9NQVNLKHBpcGUpOwo+IEBAIC05MDksNyArOTk1LDcgQEAgdm9pZCBpbnRlbF9wc3JfZmx1 c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gIAkJcmV0dXJuOwo+ICAJ fQo+ICAKPiAtCWNydGMgPSBkcF90b19kaWdfcG9ydChkZXZfcHJpdi0+cHNyLmVuYWJsZWQpLQo+ ID5iYXNlLmJhc2UuY3J0YzsKPiArCWNydGMgPSBkcF90b19kaWdfcG9ydChkZXZfcHJpdi0+cHNy LmRwKS0+YmFzZS5iYXNlLmNydGM7Cj4gIAlwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlw ZTsKPiAgCj4gIAlmcm9udGJ1ZmZlcl9iaXRzICY9IElOVEVMX0ZST05UQlVGRkVSX0FMTF9NQVNL KHBpcGUpOwo+IEBAIC05OTEsNyArMTA3Nyw3IEBAIHZvaWQgaW50ZWxfcHNyX3Nob3J0X3B1bHNl KHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCkKPiAgCj4gIAltdXRleF9sb2NrKCZwc3ItPmxv Y2spOwo+ICAKPiAtCWlmIChwc3ItPmVuYWJsZWQgIT0gaW50ZWxfZHApCj4gKwlpZiAoIXBzci0+ ZW5hYmxlZCB8fCBwc3ItPmRwICE9IGludGVsX2RwKQo+ICAJCWdvdG8gZXhpdDsKPiAgCj4gIAlp ZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsIERQX1BTUl9TVEFUVVMsICZ2YWwp Cj4gIT0gMSkgewpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK