From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrik Jakobsson Subject: Re: [PATCH 03/12] drm/i915: Clean up AUX power domain handling Date: Thu, 12 Nov 2015 10:02:36 +0100 Message-ID: <20151112090236.GA30759@patrik-desktop.isw.intel.com> References: <1447084107-8521-1-git-send-email-patrik.jakobsson@linux.intel.com> <1447084107-8521-4-git-send-email-patrik.jakobsson@linux.intel.com> <1447266123.24928.19.camel@intel.com> <20151111183736.GO4437@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 35BB57A13F for ; Thu, 12 Nov 2015 01:02:33 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151111183736.GO4437@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMTEsIDIwMTUgYXQgMDg6Mzc6MzZQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgTm92IDExLCAyMDE1IGF0IDA4OjIyOjAzUE0gKzAyMDAsIEltcmUg RGVhayB3cm90ZToKPiA+IE9uIG1hLCAyMDE1LTExLTA5IGF0IDE2OjQ4ICswMTAwLCBQYXRyaWsg SmFrb2Jzc29uIHdyb3RlOgo+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gSW50cm9kdWNlIGludGVsX2Rpc3BsYXlf cG9ydF9hdXhfcG93ZXJfZG9tYWluKCkgd2hpY2ggc2ltcGx5IHJldHVybnMKPiA+ID4gdGhlIGFw cHJvcHJpYXRlIEFVWCBwb3dlciBkb21haW4gZm9yIGEgc3BlY2lmaWMgcG9ydCwgYW5kIHRoZW4K PiA+ID4gcmVwbGFjZQo+ID4gPiB0aGUgaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbigp IHdpdGggY2FsbHMgdG8gdGhlIG5ldyBmdW5jdGlvbgo+ID4gPiBpbiB0aGUgRFAgY29kZS4gQXMg bG9uZyBhcyB3ZSdyZSBub3QgYWN0dWFsbHkgZW5hYmxpbmcgdGhlIHBvcnQgd2UKPiA+ID4gZG9u J3QKPiA+ID4gbmVlZCB0aGUgbGFuZSBwb3dlciBkb21haW5zLCBhbmQgdGhvc2UgYXJlIGhhbmRs ZWQgbm93IHB1cmVseSBmcm9tCj4gPiA+IG1vZGVzZXRfdXBkYXRlX2NydGNfcG93ZXJfZG9tYWlu cygpLgo+ID4gPiAKPiA+ID4gTXkgaW5pdGlhbCBtb3RpdmF0aW9uIGZvciB0aGlzIHdhcyB0byBz ZWUgaWYgSSBjb3VsZCBrZWVwIHRoZSBEUElPCj4gPiA+IHBvd2VyCj4gPiA+IHdlbGxzIHBvd2Vy ZWQgZG93biB3aGlsZSBkb2luZyBBVVggb24gQ0hWLCBidXQgdHVybnMgb3V0IEkgY2FuJ3Qgc28K PiA+ID4gdGhpcwo+ID4gPiBkb2Vzbid0IGNoYW5nZSBhbnl0aGluZyBmb3IgQ0hWIGF0IGxlYXN0 LiBCdXQgSSB0aGluayBpdCdzIHN0aWxsIGEKPiA+ID4gd29ydGh3aWxlIGNoYW5nZS4KPiA+ID4g Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBQYXRyaWsgSmFrb2Jzc29uIDxwYXRyaWsu amFrb2Jzc29uQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA0MAo+ID4gPiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDQ4 ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gPiA+IC0tLS0tLS0tLS0KPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsrCj4gPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCBkMGZlYzA3Li5j MjU3OGQ5IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiA+IEBAIC01MTQzLDYgKzUxNDMsMjMgQEAgc3RhdGljIGVudW0gaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW4KPiA+ID4gcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpCj4gPiA+ ICAJfQo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBwb3J0X3RvX2F1eF9wb3dlcl9kb21haW4oZW51bQo+ID4gPiBwb3J0IHBvcnQp Cj4gPiA+ICt7Cj4gPiA+ICsJc3dpdGNoIChwb3J0KSB7Cj4gPiA+ICsJY2FzZSBQT1JUX0E6Cj4g PiA+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0E7Cj4gPiA+ICsJY2FzZSBQT1JUX0I6Cj4g PiA+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0I7Cj4gPiA+ICsJY2FzZSBQT1JUX0M6Cj4g PiA+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0M7Cj4gPiA+ICsJY2FzZSBQT1JUX0Q6Cj4g PiA+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0Q7Cj4gPiA+ICsJZGVmYXVsdDoKPiA+ID4g KwkJV0FSTl9PTl9PTkNFKDEpOwo+ID4gPiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ ID4gPiArCX0KPiA+ID4gK30KPiA+IAo+ID4gTG9va3MgbGlrZSBwb3J0IEUgaXMgbWlzc2luZy4g SSBjaGF0dGVkIHdpdGggVmlsbGUgaGUgaGFzIHNvbWUgaWRlYSB0bwo+ID4gZml4IHRoaXMuCj4g Cj4gWWVhaCwgc28gdGhlcmUncyBubyBkZWRpY2F0ZWQgQVVYIGJsb2NrIGZvciBwb3J0IEUsIGFu ZCBpbnN0ZWFkIFZCVAo+IHRlbGxzIHVzIHdoaWNoIEFVWCBibG9jayB0byB1c2UuIFRoZSBjdXJy ZW50IGNvZGUgZG9pbiB0aGF0IGlzIHJhdGhlcgo+IG1lc3N5LCBidXQgSSBoYXZlIGEgY2xlYW5l ZCBpdCB1cCBkdXJpbmcgbXkgcmVnaXN0ZXIgdHlwZS1zYWZldHkKPiBqb3VybmV5LiBJIGp1c3Qg cmVwb3N0ZWQgdGhlIHJlbWFpbmluZyBBVVggcmVsYXRlZCBwYXRjaGVzIFsxXSBmcm9tCj4gdGhh dCBzZXJpZXMuCj4gCj4gU28gSSB3YXMgdGhpbmtpbmcgdGhhdCB3ZSBjb3VsZCBpbmNsdWRlIGFu ICdlbnVtIHBvcnQgYXV4X3BvcnQnIGluc2lkZQo+IGludGVsX2RwLCBhbmQgdXNlIHRoYXQgdG8g cGljayB0aGUgcmlnaHQgcG93ZXIgZG9tYWluLgo+IAo+IFsxXSBodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE1LU5vdmVtYmVyLzA3OTkxOC5odG1sCgpP ayBzbyBvbmUgb2YgQXV4IEEtRCBpcyBoYXJkd2lyZWQgdG8gcG9ydCBFIGFuZCBvbmx5IFZCVCBj YW4gdGVsbCB1cyB3aGljaD8gRG8Kd2UgbmVlZCB0byBjaGFuZ2UgYW55dGhpbmcgaW4gdGhpcyBw YXRjaCBvciBjYW4gd2UgYWRkIHRoZSBhdXhfcG9ydCBlbnVtIGxhdGVyCm9uPwoKPiAKPiA+IAo+ ID4gPiArCj4gPiA+ICAjZGVmaW5lIGZvcl9lYWNoX3Bvd2VyX2RvbWFpbihkb21haW4sIG1hc2sp CQkJCQo+ID4gPiBcCj4gPiA+ICAJZm9yICgoZG9tYWluKSA9IDA7IChkb21haW4pIDwgUE9XRVJf RE9NQUlOX05VTTsgKGRvbWFpbikrKykJCj4gPiA+IFwKPiA+ID4gIAkJaWYgKCgxIDw8IChkb21h aW4pKSAmIChtYXNrKSkKPiA+ID4gQEAgLTUxNzQsNiArNTE5MSwyOSBAQCBpbnRlbF9kaXNwbGF5 X3BvcnRfcG93ZXJfZG9tYWluKHN0cnVjdAo+ID4gPiBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyKQo+ID4gPiAgCX0KPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiArZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbgo+ID4gPiAraW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4o c3RydWN0IGludGVsX2VuY29kZXIKPiA+ID4gKmludGVsX2VuY29kZXIpCj4gPiA+ICt7Cj4gPiA+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2VuY29kZXItPmJhc2UuZGV2Owo+ID4g PiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0Owo+ID4gPiArCj4g PiA+ICsJc3dpdGNoIChpbnRlbF9lbmNvZGVyLT50eXBlKSB7Cj4gPiA+ICsJY2FzZSBJTlRFTF9P VVRQVVRfVU5LTk9XTjoKPiA+ID4gKwkJLyogT25seSBEREkgcGxhdGZvcm1zIHNob3VsZCBldmVy IHVzZSB0aGlzIG91dHB1dAo+ID4gPiB0eXBlICovCj4gPiA+ICsJCVdBUk5fT05fT05DRSghSEFT X0RESShkZXYpKTsKPiA+ID4gKwljYXNlIElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVDoKPiA+ID4g KwljYXNlIElOVEVMX09VVFBVVF9FRFA6Cj4gPiA+ICsJCWludGVsX2RpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KCZpbnRlbF9lbmNvZGVyCj4gPiA+IC0+YmFzZSk7Cj4gPiA+ICsJCXJldHVybiBw b3J0X3RvX2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZGlnX3BvcnQKPiA+ID4gLT5wb3J0KTsKPiA+ ID4gKwljYXNlIElOVEVMX09VVFBVVF9EUF9NU1Q6Cj4gPiA+ICsJCWludGVsX2RpZ19wb3J0ID0g ZW5jX3RvX21zdCgmaW50ZWxfZW5jb2Rlci0+YmFzZSkKPiA+ID4gLT5wcmltYXJ5Owo+ID4gPiAr CQlyZXR1cm4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGludGVsX2RpZ19wb3J0Cj4gPiA+IC0+ cG9ydCk7Cj4gPiA+ICsJZGVmYXVsdDoKPiA+ID4gKwkJV0FSTl9PTl9PTkNFKDEpOwo+ID4gPiAr CQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ID4gPiArCX0KPiA+ID4gK30KPiA+ID4gKwo+ ID4gPiAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gPiA+ICB7Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IGluZGV4 IDQ2NTVhZjAuLjM5Nzg1NDAgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gPiBAQCAtMjc3LDcgKzI3Nyw3IEBAIHN0YXRpYyB2b2lkIHBwc19sb2NrKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiA+ICAJICogU2VlIHZsdl9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQo KSB3aHkgd2UgbmVlZAo+ID4gPiAgCSAqIGEgcG93ZXIgZG9tYWluIHJlZmVyZW5jZSBoZXJlLgo+ ID4gPiAgCSAqLwo+ID4gPiAtCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dl cl9kb21haW4oZW5jb2Rlcik7Cj4gPiA+ICsJcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9w b3J0X2F1eF9wb3dlcl9kb21haW4oZW5jb2Rlcik7Cj4gPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dl cl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ICAKPiA+ID4gIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiA+ID4gQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMg dm9pZCBwcHNfdW5sb2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ICAKPiA+ID4g IAltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ID4gPiAgCj4gPiA+IC0JcG93 ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihlbmNvZGVyKTsKPiA+ ID4gKwlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihl bmNvZGVyKTsKPiA+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJf ZG9tYWluKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiBAQCAtODE2LDggKzgxNiw2IEBAIGludGVs X2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiAgCj4gPiA+ICAJaW50 ZWxfZHBfY2hlY2tfZWRwKGludGVsX2RwKTsKPiA+ID4gIAo+ID4gPiAtCWludGVsX2F1eF9kaXNw bGF5X3J1bnRpbWVfZ2V0KGRldl9wcml2KTsKPiA+ID4gLQo+ID4gPiAJLyogVHJ5IHRvIHdhaXQg Zm9yIGFueSBwcmV2aW91cyBBVVggY2hhbm5lbCBhY3Rpdml0eSAqLwo+ID4gPiAgCWZvciAodHJ5 ID0gMDsgdHJ5IDwgMzsgdHJ5KyspIHsKPiA+ID4gIAkJc3RhdHVzID0gSTkxNV9SRUFEX05PVFJB Q0UoY2hfY3RsKTsKPiA+ID4gQEAgLTkyNiw3ICs5MjQsNiBAQCBkb25lOgo+ID4gPiAgCXJldCA9 IHJlY3ZfYnl0ZXM7Cj4gPiA+ICBvdXQ6Cj4gPiA+ICAJcG1fcW9zX3VwZGF0ZV9yZXF1ZXN0KCZk ZXZfcHJpdi0+cG1fcW9zLAo+ID4gPiBQTV9RT1NfREVGQVVMVF9WQUxVRSk7Cj4gPiA+IC0JaW50 ZWxfYXV4X2Rpc3BsYXlfcnVudGltZV9wdXQoZGV2X3ByaXYpOwo+ID4gPiAgCj4gPiA+ICAJaWYg KHZkZCkKPiA+ID4gIAkJZWRwX3BhbmVsX3ZkZF9vZmYoaW50ZWxfZHAsIGZhbHNlKTsKPiA+ID4g QEAgLTE3ODQsNyArMTc4MSw3IEBAIHN0YXRpYyBib29sIGVkcF9wYW5lbF92ZGRfb24oc3RydWN0 IGludGVsX2RwCj4gPiA+ICppbnRlbF9kcCkKPiA+ID4gIAlpZiAoZWRwX2hhdmVfcGFuZWxfdmRk KGludGVsX2RwKSkKPiA+ID4gIAkJcmV0dXJuIG5lZWRfdG9fZGlzYWJsZTsKPiA+ID4gIAo+ID4g PiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4o aW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICsJcG93ZXJfZG9tYWluID0KPiA+ID4gaW50ZWxfZGlzcGxh eV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICAJaW50ZWxfZGlz cGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ICAKPiA+ID4gIAlE Uk1fREVCVUdfS01TKCJUdXJuaW5nIGVEUCBwb3J0ICVjIFZERCBvblxuIiwKPiA+ID4gQEAgLTE4 NzQsNyArMTg3MSw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoc3RydWN0 Cj4gPiA+IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gIAlpZiAoKHBwICYgUE9XRVJfVEFSR0VU X09OKSA9PSAwKQo+ID4gPiAgCQlpbnRlbF9kcC0+bGFzdF9wb3dlcl9jeWNsZSA9IGppZmZpZXM7 Cj4gPiA+ICAKPiA+ID4gLQlwb3dlcl9kb21haW4gPQo+ID4gPiBpbnRlbF9kaXNwbGF5X3BvcnRf cG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gPiArCXBvd2VyX2RvbWFpbiA9Cj4gPiA+ IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4g PiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4g PiAgfQo+ID4gPiAgCj4gPiA+IEBAIC0yMDI1LDcgKzIwMjIsNyBAQCBzdGF0aWMgdm9pZCBlZHBf cGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcAo+ID4gPiAqaW50ZWxfZHApCj4gPiA+ICAJd2FpdF9w YW5lbF9vZmYoaW50ZWxfZHApOwo+ID4gPiAgCj4gPiA+ICAJLyogV2UgZ290IGEgcmVmZXJlbmNl IHdoZW4gd2UgZW5hYmxlZCB0aGUgVkRELiAqLwo+ID4gPiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiA+ IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICsJ cG93ZXJfZG9tYWluID0KPiA+ID4gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4o aW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYs IHBvd2VyX2RvbWFpbik7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gQEAgLTQ3NjUsMjYgKzQ3NjIs NiBAQCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ ICAJaW50ZWxfZHAtPmhhc19hdWRpbyA9IGZhbHNlOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1z dGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgo+ID4gPiAtaW50ZWxfZHBfcG93 ZXJfZ2V0KHN0cnVjdCBpbnRlbF9kcCAqZHApCj4gPiA+IC17Cj4gPiA+IC0Jc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoZHApLT5iYXNlOwo+ID4gPiAtCWVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ID4gPiAtCj4gPiA+ IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihlbmNvZGVy KTsKPiA+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KSwKPiA+ID4gcG93ZXJfZG9tYWluKTsKPiA+ID4gLQo+ID4gPiAtCXJldHVybiBwb3dlcl9k b21haW47Cj4gPiA+IC19Cj4gPiA+IC0KPiA+ID4gLXN0YXRpYyB2b2lkCj4gPiA+IC1pbnRlbF9k cF9wb3dlcl9wdXQoc3RydWN0IGludGVsX2RwICpkcCwKPiA+ID4gLQkJICAgZW51bSBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW4pCj4gPiA+IC17Cj4gPiA+IC0Jc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoZHApLT5iYXNlOwo+ID4g PiAtCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpLAo+ ID4gPiBwb3dlcl9kb21haW4pOwo+ID4gPiAtfQo+ID4gPiAtCj4gPiA+ICBzdGF0aWMgZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cwo+ID4gPiAgaW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPiA+ICB7Cj4gPiA+IEBAIC00ODA4LDcg KzQ3ODUsOCBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IKPiA+ID4gKmNv bm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+ID4gIAkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfZGlz Y29ubmVjdGVkOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAtCXBvd2VyX2RvbWFpbiA9IGludGVs X2RwX3Bvd2VyX2dldChpbnRlbF9kcCk7Cj4gPiA+ICsJcG93ZXJfZG9tYWluID0KPiA+ID4gaW50 ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICsJ aW50ZWxfZGlzcGxheV9wb3dlcl9nZXQodG9faTkxNShkZXYpLCBwb3dlcl9kb21haW4pOwo+ID4g PiAgCj4gPiA+ICAJLyogQ2FuJ3QgZGlzY29ubmVjdCBlRFAsIGJ1dCB5b3UgY2FuIGNsb3NlIHRo ZSBsaWQuLi4gKi8KPiA+ID4gIAlpZiAoaXNfZWRwKGludGVsX2RwKSkKPiA+ID4gQEAgLTQ4NTMs NyArNDgzMSw3IEBAIGludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gPiAq Y29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgb3V0Ogo+ID4g PiAtCWludGVsX2RwX3Bvd2VyX3B1dChpbnRlbF9kcCwgcG93ZXJfZG9tYWluKTsKPiA+ID4gKwlp bnRlbF9kaXNwbGF5X3Bvd2VyX3B1dCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gPiA+ ICAJcmV0dXJuIHN0YXR1czsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiBAQCAtNDg2Miw2ICs0ODQw LDcgQEAgaW50ZWxfZHBfZm9yY2Uoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRf ZHAoY29ubmVjdG9yKTsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciA9Cj4gPiA+ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2U7Cj4gPiA+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyCj4gPiA+ IC0+YmFzZS5kZXYpOwo+ID4gPiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93 ZXJfZG9tYWluOwo+ID4gPiAgCj4gPiA+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDol c11cbiIsCj4gPiA+IEBAIC00ODcxLDExICs0ODUwLDEyIEBAIGludGVsX2RwX2ZvcmNlKHN0cnVj dCBkcm1fY29ubmVjdG9yCj4gPiA+ICpjb25uZWN0b3IpCj4gPiA+ICAJaWYgKGNvbm5lY3Rvci0+ c3RhdHVzICE9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKQo+ID4gPiAgCQlyZXR1cm47Cj4g PiA+ICAKPiA+ID4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kcF9wb3dlcl9nZXQoaW50ZWxfZHAp Owo+ID4gPiArCXBvd2VyX2RvbWFpbiA9Cj4gPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93 ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0 KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4gPiAgCj4gPiA+ICAJaW50ZWxfZHBfc2V0X2Vk aWQoaW50ZWxfZHApOwo+ID4gPiAgCj4gPiA+IC0JaW50ZWxfZHBfcG93ZXJfcHV0KGludGVsX2Rw LCBwb3dlcl9kb21haW4pOwo+ID4gPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2 LCBwb3dlcl9kb21haW4pOwo+ID4gPiAgCj4gPiA+ICAJaWYgKGludGVsX2VuY29kZXItPnR5cGUg IT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+ID4gIAkJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVM X09VVFBVVF9ESVNQTEFZUE9SVDsKPiA+ID4gQEAgLTUwOTEsNyArNTA3MSw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2VkcF9wYW5lbF92ZGRfc2FuaXRpemUoc3RydWN0Cj4gPiA+IGludGVsX2RwICpp bnRlbF9kcCkKPiA+ID4gIAkgKiBpbmRlZmluaXRlbHkuCj4gPiA+ICAJICovCj4gPiA+ICAJRFJN X0RFQlVHX0tNUygiVkREIGxlZnQgb24gYnkgQklPUywgYWRqdXN0aW5nIHN0YXRlCj4gPiA+IHRy YWNraW5nXG4iKTsKPiA+ID4gLQlwb3dlcl9kb21haW4gPQo+ID4gPiBpbnRlbF9kaXNwbGF5X3Bv cnRfcG93ZXJfZG9tYWluKCZpbnRlbF9kaWdfcG9ydC0+YmFzZSk7Cj4gPiA+ICsJcG93ZXJfZG9t YWluID0KPiA+ID4gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oJmludGVsX2Rp Z19wb3J0LT5iYXNlKTsKPiA+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwg cG93ZXJfZG9tYWluKTsKPiA+ID4gIAo+ID4gPiAgCWVkcF9wYW5lbF92ZGRfc2NoZWR1bGVfb2Zm KGludGVsX2RwKTsKPiA+ID4gQEAgLTUxNzIsNyArNTE1Miw3IEBAIGludGVsX2RwX2hwZF9wdWxz ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiA+ICppbnRlbF9kaWdfcG9ydCwgYm9vbCBs b25nX2hwZCkKPiA+ID4gIAkJICAgICAgcG9ydF9uYW1lKGludGVsX2RpZ19wb3J0LT5wb3J0KSwK PiA+ID4gIAkJICAgICAgbG9uZ19ocGQgPyAibG9uZyIgOiAic2hvcnQiKTsKPiA+ID4gIAo+ID4g PiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4o aW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICsJcG93ZXJfZG9tYWluID0KPiA+ID4gaW50ZWxfZGlzcGxh eV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICAJaW50ZWxfZGlz cGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ICAKPiA+ID4gIAlp ZiAobG9uZ19ocGQpIHsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4g aW5kZXggYTY4YjZjZC4uN2QxMWFhMCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+ID4gQEAgLTExODgsNiArMTE4OCw4IEBAIHZvaWQgaHN3X2VuYWJsZV9pcHMoc3Ry dWN0IGludGVsX2NydGMgKmNydGMpOwo+ID4gPiAgdm9pZCBoc3dfZGlzYWJsZV9pcHMoc3RydWN0 IGludGVsX2NydGMgKmNydGMpOwo+ID4gPiAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFp bgo+ID4gPiAgaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZW5j b2Rlcgo+ID4gPiAqaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICtlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluCj4gPiA+ICtpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1 Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gPiAqaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ICB2b2lkIGludGVs X21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+ ID4gIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+ID4gKnBpcGVfY29uZmlnKTsKPiA+ ID4gIHZvaWQgaW50ZWxfbW9kZXNldF9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2ZpbGUKPiA+ID4gKmZpbGUpOwo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+ IEludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=