From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 03/12] drm/i915: Clean up AUX power domain handling Date: Thu, 12 Nov 2015 12:15:35 +0200 Message-ID: <20151112101535.GP4437@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> <20151112090236.GA30759@patrik-desktop.isw.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id BD75A6EC45 for ; Thu, 12 Nov 2015 02:15:38 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151112090236.GA30759@patrik-desktop.isw.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMTIsIDIwMTUgYXQgMTA6MDI6MzZBTSArMDEwMCwgUGF0cmlrIEpha29ic3Nv biB3cm90ZToKPiBPbiBXZWQsIE5vdiAxMSwgMjAxNSBhdCAwODozNzozNlBNICswMjAwLCBWaWxs ZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIE5vdiAxMSwgMjAxNSBhdCAwODoyMjowM1BN ICswMjAwLCBJbXJlIERlYWsgd3JvdGU6Cj4gPiA+IE9uIG1hLCAyMDE1LTExLTA5IGF0IDE2OjQ4 ICswMTAwLCBQYXRyaWsgSmFrb2Jzc29uIHdyb3RlOgo+ID4gPiA+IEZyb206IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gCj4gPiA+ID4gSW50 cm9kdWNlIGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKCkgd2hpY2ggc2ltcGx5 IHJldHVybnMKPiA+ID4gPiB0aGUgYXBwcm9wcmlhdGUgQVVYIHBvd2VyIGRvbWFpbiBmb3IgYSBz cGVjaWZpYyBwb3J0LCBhbmQgdGhlbgo+ID4gPiA+IHJlcGxhY2UKPiA+ID4gPiB0aGUgaW50ZWxf ZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbigpIHdpdGggY2FsbHMgdG8gdGhlIG5ldyBmdW5jdGlv bgo+ID4gPiA+IGluIHRoZSBEUCBjb2RlLiBBcyBsb25nIGFzIHdlJ3JlIG5vdCBhY3R1YWxseSBl bmFibGluZyB0aGUgcG9ydCB3ZQo+ID4gPiA+IGRvbid0Cj4gPiA+ID4gbmVlZCB0aGUgbGFuZSBw b3dlciBkb21haW5zLCBhbmQgdGhvc2UgYXJlIGhhbmRsZWQgbm93IHB1cmVseSBmcm9tCj4gPiA+ ID4gbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5zKCkuCj4gPiA+ID4gCj4gPiA+ID4g TXkgaW5pdGlhbCBtb3RpdmF0aW9uIGZvciB0aGlzIHdhcyB0byBzZWUgaWYgSSBjb3VsZCBrZWVw IHRoZSBEUElPCj4gPiA+ID4gcG93ZXIKPiA+ID4gPiB3ZWxscyBwb3dlcmVkIGRvd24gd2hpbGUg ZG9pbmcgQVVYIG9uIENIViwgYnV0IHR1cm5zIG91dCBJIGNhbid0IHNvCj4gPiA+ID4gdGhpcwo+ ID4gPiA+IGRvZXNuJ3QgY2hhbmdlIGFueXRoaW5nIGZvciBDSFYgYXQgbGVhc3QuIEJ1dCBJIHRo aW5rIGl0J3Mgc3RpbGwgYQo+ID4gPiA+IHdvcnRod2lsZSBjaGFuZ2UuCj4gPiA+ID4gCj4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+ID4gPiBSZXZpZXdlZC1ieTogUGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLmph a29ic3NvbkBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDQwCj4gPiA+ID4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAg ICB8IDQ4ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gLS0tLS0tLS0tLQo+ID4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArKwo+ID4gPiA+ ICAzIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQo+ID4g PiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4g PiA+IGluZGV4IGQwZmVjMDcuLmMyNTc4ZDkgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gQEAgLTUxNDMsNiArNTE0MywyMyBAQCBzdGF0 aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgo+ID4gPiA+IHBvcnRfdG9fcG93ZXJf ZG9tYWluKGVudW0gcG9ydCBwb3J0KQo+ID4gPiA+ICAJfQo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ ID4gPiA+ICtzdGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3J0X3RvX2F1 eF9wb3dlcl9kb21haW4oZW51bQo+ID4gPiA+IHBvcnQgcG9ydCkKPiA+ID4gPiArewo+ID4gPiA+ ICsJc3dpdGNoIChwb3J0KSB7Cj4gPiA+ID4gKwljYXNlIFBPUlRfQToKPiA+ID4gPiArCQlyZXR1 cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ID4gPiA+ICsJY2FzZSBQT1JUX0I6Cj4gPiA+ID4gKwkJ cmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQjsKPiA+ID4gPiArCWNhc2UgUE9SVF9DOgo+ID4gPiA+ ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0M7Cj4gPiA+ID4gKwljYXNlIFBPUlRfRDoKPiA+ ID4gPiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9EOwo+ID4gPiA+ICsJZGVmYXVsdDoKPiA+ ID4gPiArCQlXQVJOX09OX09OQ0UoMSk7Cj4gPiA+ID4gKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9B VVhfQTsKPiA+ID4gPiArCX0KPiA+ID4gPiArfQo+ID4gPiAKPiA+ID4gTG9va3MgbGlrZSBwb3J0 IEUgaXMgbWlzc2luZy4gSSBjaGF0dGVkIHdpdGggVmlsbGUgaGUgaGFzIHNvbWUgaWRlYSB0bwo+ ID4gPiBmaXggdGhpcy4KPiA+IAo+ID4gWWVhaCwgc28gdGhlcmUncyBubyBkZWRpY2F0ZWQgQVVY IGJsb2NrIGZvciBwb3J0IEUsIGFuZCBpbnN0ZWFkIFZCVAo+ID4gdGVsbHMgdXMgd2hpY2ggQVVY IGJsb2NrIHRvIHVzZS4gVGhlIGN1cnJlbnQgY29kZSBkb2luIHRoYXQgaXMgcmF0aGVyCj4gPiBt ZXNzeSwgYnV0IEkgaGF2ZSBhIGNsZWFuZWQgaXQgdXAgZHVyaW5nIG15IHJlZ2lzdGVyIHR5cGUt c2FmZXR5Cj4gPiBqb3VybmV5LiBJIGp1c3QgcmVwb3N0ZWQgdGhlIHJlbWFpbmluZyBBVVggcmVs YXRlZCBwYXRjaGVzIFsxXSBmcm9tCj4gPiB0aGF0IHNlcmllcy4KPiA+IAo+ID4gU28gSSB3YXMg dGhpbmtpbmcgdGhhdCB3ZSBjb3VsZCBpbmNsdWRlIGFuICdlbnVtIHBvcnQgYXV4X3BvcnQnIGlu c2lkZQo+ID4gaW50ZWxfZHAsIGFuZCB1c2UgdGhhdCB0byBwaWNrIHRoZSByaWdodCBwb3dlciBk b21haW4uCj4gPiAKPiA+IFsxXSBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVz L2ludGVsLWdmeC8yMDE1LU5vdmVtYmVyLzA3OTkxOC5odG1sCj4gCj4gT2sgc28gb25lIG9mIEF1 eCBBLUQgaXMgaGFyZHdpcmVkIHRvIHBvcnQgRSBhbmQgb25seSBWQlQgY2FuIHRlbGwgdXMgd2hp Y2g/CgpZZXAuCgo+IERvCj4gd2UgbmVlZCB0byBjaGFuZ2UgYW55dGhpbmcgaW4gdGhpcyBwYXRj aCBvciBjYW4gd2UgYWRkIHRoZSBhdXhfcG9ydCBlbnVtIGxhdGVyCj4gb24/CgpIbW0uIExlbW1l IHRoaW5rLiBCZWZvcmUsIHdlIHRvbyB0aGUgcG9ydCBwb3dlciBkb21haW4sIHNvIERESV9FLCBh bmQKYWZ0ZXIgdGhlIHBhdGNoIHdlIHdvdWxkIGhpdCB0aGUgZGVmYXVsdDogY2FzZSBhbmQgZ2V0 IHRoZSBXQVJOLgpTbyB0aGF0IHdvdWxkIGJlIGEgcmVncmVzc2lvbiBvZiBzb3J0cy4gSSBndWVz cyBhcyBhIHF1aWNrIGhhY2sgeW91CmNvdWxkIHJldHVybiBlZy4gUE9XRVJfRE9NQUlOX0FVWF9E IGZvciBwb3J0IEUsIGFuZCBhZGQgYSBGSVhNRSB0aGF0IGl0Cm5lZWRzIHRvIGJlIGZpeGVkLCBp ZiB5b3UgZG9uJ3Qgd2FudCB0byB0YWNrbGUgdGhlIGF1eF9wb3J0IGlkZWEgKG9yCnNvbWV0aGlu ZyBzaWxpbWFyIHJpZ2h0IG5vdykuCgpPbiBhIHNpZGUgbm90ZSBtYXliZSB3ZSBzaG91bGQgYWRk IE1JU1NJTkdfQ0FTRV9PTkNFKCkgdG8gZ2V0IHNvbWUKYmV0dGVyIGRlYnVnIG91dHB1dCBmcm9t IHRoZXNlIGtpbmRzIG9mIGNhc2VzLi4uCgo+IAo+ID4gCj4gPiA+IAo+ID4gPiA+ICsKPiA+ID4g PiAgI2RlZmluZSBmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBtYXNrKQkJCQkKPiA+ID4g PiBcCj4gPiA+ID4gIAlmb3IgKChkb21haW4pID0gMDsgKGRvbWFpbikgPCBQT1dFUl9ET01BSU5f TlVNOyAoZG9tYWluKSsrKQkKPiA+ID4gPiBcCj4gPiA+ID4gIAkJaWYgKCgxIDw8IChkb21haW4p KSAmIChtYXNrKSkKPiA+ID4gPiBAQCAtNTE3NCw2ICs1MTkxLDI5IEBAIGludGVsX2Rpc3BsYXlf cG9ydF9wb3dlcl9kb21haW4oc3RydWN0Cj4gPiA+ID4gaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlcikKPiA+ID4gPiAgCX0KPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiArZW51bSBpbnRl bF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgo+ID4gPiA+ICtpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bv d2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gPiA+ICppbnRlbF9lbmNvZGVyKQo+ ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZW5jb2Rl ci0+YmFzZS5kZXY7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydDsKPiA+ID4gPiArCj4gPiA+ID4gKwlzd2l0Y2ggKGludGVsX2VuY29kZXItPnR5cGUp IHsKPiA+ID4gPiArCWNhc2UgSU5URUxfT1VUUFVUX1VOS05PV046Cj4gPiA+ID4gKwkJLyogT25s eSBEREkgcGxhdGZvcm1zIHNob3VsZCBldmVyIHVzZSB0aGlzIG91dHB1dAo+ID4gPiA+IHR5cGUg Ki8KPiA+ID4gPiArCQlXQVJOX09OX09OQ0UoIUhBU19EREkoZGV2KSk7Cj4gPiA+ID4gKwljYXNl IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVDoKPiA+ID4gPiArCWNhc2UgSU5URUxfT1VUUFVUX0VE UDoKPiA+ID4gPiArCQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmaW50ZWxfZW5j b2Rlcgo+ID4gPiA+IC0+YmFzZSk7Cj4gPiA+ID4gKwkJcmV0dXJuIHBvcnRfdG9fYXV4X3Bvd2Vy X2RvbWFpbihpbnRlbF9kaWdfcG9ydAo+ID4gPiA+IC0+cG9ydCk7Cj4gPiA+ID4gKwljYXNlIElO VEVMX09VVFBVVF9EUF9NU1Q6Cj4gPiA+ID4gKwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fbXN0 KCZpbnRlbF9lbmNvZGVyLT5iYXNlKQo+ID4gPiA+IC0+cHJpbWFyeTsKPiA+ID4gPiArCQlyZXR1 cm4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGludGVsX2RpZ19wb3J0Cj4gPiA+ID4gLT5wb3J0 KTsKPiA+ID4gPiArCWRlZmF1bHQ6Cj4gPiA+ID4gKwkJV0FSTl9PTl9PTkNFKDEpOwo+ID4gPiA+ ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0E7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gK30KPiA+ ID4gPiArCj4gPiA+ID4gIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9jcnRjX3Bvd2VyX2RvbWFp bnMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gPiA+ICB7Cj4gPiA+ID4gIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gPiA+ID4gaW5kZXggNDY1NWFmMC4uMzk3ODU0MCAxMDA2NDQKPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+IEBAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGlj IHZvaWQgcHBzX2xvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiAgCSAqIFNl ZSB2bHZfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KCkgd2h5IHdlIG5lZWQKPiA+ID4gPiAgCSAqIGEg cG93ZXIgZG9tYWluIHJlZmVyZW5jZSBoZXJlLgo+ID4gPiA+ICAJICovCj4gPiA+ID4gLQlwb3dl cl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGVuY29kZXIpOwo+ID4g PiA+ICsJcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4o ZW5jb2Rlcik7Cj4gPiA+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93 ZXJfZG9tYWluKTsKPiA+ID4gPiAgCj4gPiA+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBz X211dGV4KTsKPiA+ID4gPiBAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyB2b2lkIHBwc191bmxv Y2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiAgCj4gPiA+ID4gIAltdXRleF91 bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ID4gPiA+ICAKPiA+ID4gPiAtCXBvd2VyX2Rv bWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oZW5jb2Rlcik7Cj4gPiA+ID4g Kwlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihlbmNv ZGVyKTsKPiA+ID4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9k b21haW4pOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC04MTYsOCArODE2LDYgQEAg aW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ID4gIAo+ID4g PiA+ICAJaW50ZWxfZHBfY2hlY2tfZWRwKGludGVsX2RwKTsKPiA+ID4gPiAgCj4gPiA+ID4gLQlp bnRlbF9hdXhfZGlzcGxheV9ydW50aW1lX2dldChkZXZfcHJpdik7Cj4gPiA+ID4gLQo+ID4gPiA+ IAkvKiBUcnkgdG8gd2FpdCBmb3IgYW55IHByZXZpb3VzIEFVWCBjaGFubmVsIGFjdGl2aXR5ICov Cj4gPiA+ID4gIAlmb3IgKHRyeSA9IDA7IHRyeSA8IDM7IHRyeSsrKSB7Cj4gPiA+ID4gIAkJc3Rh dHVzID0gSTkxNV9SRUFEX05PVFJBQ0UoY2hfY3RsKTsKPiA+ID4gPiBAQCAtOTI2LDcgKzkyNCw2 IEBAIGRvbmU6Cj4gPiA+ID4gIAlyZXQgPSByZWN2X2J5dGVzOwo+ID4gPiA+ICBvdXQ6Cj4gPiA+ ID4gIAlwbV9xb3NfdXBkYXRlX3JlcXVlc3QoJmRldl9wcml2LT5wbV9xb3MsCj4gPiA+ID4gUE1f UU9TX0RFRkFVTFRfVkFMVUUpOwo+ID4gPiA+IC0JaW50ZWxfYXV4X2Rpc3BsYXlfcnVudGltZV9w dXQoZGV2X3ByaXYpOwo+ID4gPiA+ICAKPiA+ID4gPiAgCWlmICh2ZGQpCj4gPiA+ID4gIAkJZWRw X3BhbmVsX3ZkZF9vZmYoaW50ZWxfZHAsIGZhbHNlKTsKPiA+ID4gPiBAQCAtMTc4NCw3ICsxNzgx LDcgQEAgc3RhdGljIGJvb2wgZWRwX3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAKPiA+ID4g PiAqaW50ZWxfZHApCj4gPiA+ID4gIAlpZiAoZWRwX2hhdmVfcGFuZWxfdmRkKGludGVsX2RwKSkK PiA+ID4gPiAgCQlyZXR1cm4gbmVlZF90b19kaXNhYmxlOwo+ID4gPiA+ICAKPiA+ID4gPiAtCXBv d2VyX2RvbWFpbiA9Cj4gPiA+ID4gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRl bF9lbmNvZGVyKTsKPiA+ID4gPiArCXBvd2VyX2RvbWFpbiA9Cj4gPiA+ID4gaW50ZWxfZGlzcGxh eV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ID4gIAlpbnRlbF9k aXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPiA+ID4gPiAgCj4gPiA+ ID4gIAlEUk1fREVCVUdfS01TKCJUdXJuaW5nIGVEUCBwb3J0ICVjIFZERCBvblxuIiwKPiA+ID4g PiBAQCAtMTg3NCw3ICsxODcxLDcgQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX3ZkZF9vZmZfc3lu YyhzdHJ1Y3QKPiA+ID4gPiBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ID4gIAlpZiAoKHBwICYg UE9XRVJfVEFSR0VUX09OKSA9PSAwKQo+ID4gPiA+ICAJCWludGVsX2RwLT5sYXN0X3Bvd2VyX2N5 Y2xlID0gamlmZmllczsKPiA+ID4gPiAgCj4gPiA+ID4gLQlwb3dlcl9kb21haW4gPQo+ID4gPiA+ IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ID4g Kwlwb3dlcl9kb21haW4gPQo+ID4gPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9t YWluKGludGVsX2VuY29kZXIpOwo+ID4gPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2 X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gQEAgLTIw MjUsNyArMjAyMiw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vZmYoc3RydWN0IGludGVsX2Rw Cj4gPiA+ID4gKmludGVsX2RwKQo+ID4gPiA+ICAJd2FpdF9wYW5lbF9vZmYoaW50ZWxfZHApOwo+ ID4gPiA+ICAKPiA+ID4gPiAgCS8qIFdlIGdvdCBhIHJlZmVyZW5jZSB3aGVuIHdlIGVuYWJsZWQg dGhlIFZERC4gKi8KPiA+ID4gPiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiA+ID4gaW50ZWxfZGlzcGxh eV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKPiA+ID4gPiArCXBvd2VyX2RvbWFp biA9Cj4gPiA+ID4gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5j b2Rlcik7Cj4gPiA+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJf ZG9tYWluKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiBAQCAtNDc2NSwyNiArNDc2Miw2 IEBAIGludGVsX2RwX3Vuc2V0X2VkaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4g PiAgCWludGVsX2RwLT5oYXNfYXVkaW8gPSBmYWxzZTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ ID4gPiAtc3RhdGljIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KPiA+ID4gPiAtaW50 ZWxfZHBfcG93ZXJfZ2V0KHN0cnVjdCBpbnRlbF9kcCAqZHApCj4gPiA+ID4gLXsKPiA+ID4gPiAt CXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0KGRwKS0+YmFz ZTsKPiA+ID4gPiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWlu Owo+ID4gPiA+IC0KPiA+ID4gPiAtCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9w b3dlcl9kb21haW4oZW5jb2Rlcik7Cj4gPiA+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSwKPiA+ID4gPiBwb3dlcl9kb21haW4pOwo+ID4gPiA+ IC0KPiA+ID4gPiAtCXJldHVybiBwb3dlcl9kb21haW47Cj4gPiA+ID4gLX0KPiA+ID4gPiAtCj4g PiA+ID4gLXN0YXRpYyB2b2lkCj4gPiA+ID4gLWludGVsX2RwX3Bvd2VyX3B1dChzdHJ1Y3QgaW50 ZWxfZHAgKmRwLAo+ID4gPiA+IC0JCSAgIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4g cG93ZXJfZG9tYWluKQo+ID4gPiA+IC17Cj4gPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChkcCktPmJhc2U7Cj4gPiA+ID4gLQlpbnRlbF9kaXNw bGF5X3Bvd2VyX3B1dCh0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSwKPiA+ID4gPiBwb3dlcl9k b21haW4pOwo+ID4gPiA+IC19Cj4gPiA+ID4gLQo+ID4gPiA+ICBzdGF0aWMgZW51bSBkcm1fY29u bmVjdG9yX3N0YXR1cwo+ID4gPiA+ICBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+ID4gPiAgewo+ID4gPiA+IEBAIC00ODA4LDcg KzQ3ODUsOCBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IKPiA+ID4gPiAq Y29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gPiA+ICAJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVz X2Rpc2Nvbm5lY3RlZDsKPiA+ID4gPiAgCX0KPiA+ID4gPiAgCj4gPiA+ID4gLQlwb3dlcl9kb21h aW4gPSBpbnRlbF9kcF9wb3dlcl9nZXQoaW50ZWxfZHApOwo+ID4gPiA+ICsJcG93ZXJfZG9tYWlu ID0KPiA+ID4gPiBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNv ZGVyKTsKPiA+ID4gPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KHRvX2k5MTUoZGV2KSwgcG93 ZXJfZG9tYWluKTsKPiA+ID4gPiAgCj4gPiA+ID4gIAkvKiBDYW4ndCBkaXNjb25uZWN0IGVEUCwg YnV0IHlvdSBjYW4gY2xvc2UgdGhlIGxpZC4uLiAqLwo+ID4gPiA+ICAJaWYgKGlzX2VkcChpbnRl bF9kcCkpCj4gPiA+ID4gQEAgLTQ4NTMsNyArNDgzMSw3IEBAIGludGVsX2RwX2RldGVjdChzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gPiA+ICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPiA+ID4g IAl9Cj4gPiA+ID4gIAo+ID4gPiA+ICBvdXQ6Cj4gPiA+ID4gLQlpbnRlbF9kcF9wb3dlcl9wdXQo aW50ZWxfZHAsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1 dCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gPiA+ID4gIAlyZXR1cm4gc3RhdHVzOwo+ ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC00ODYyLDYgKzQ4NDAsNyBAQCBpbnRlbF9k cF9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gPiA+ICB7Cj4gPiA+ ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVj dG9yKTsKPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0KPiA+ ID4gPiAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ID4gPiA+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyCj4gPiA+ID4g LT5iYXNlLmRldik7Cj4gPiA+ID4gIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBv d2VyX2RvbWFpbjsKPiA+ID4gPiAgCj4gPiA+ID4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9S OiVkOiVzXVxuIiwKPiA+ID4gPiBAQCAtNDg3MSwxMSArNDg1MCwxMiBAQCBpbnRlbF9kcF9mb3Jj ZShzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gPiA+ICpjb25uZWN0b3IpCj4gPiA+ID4gIAlpZiAo Y29ubmVjdG9yLT5zdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQpCj4gPiA+ID4g IAkJcmV0dXJuOwo+ID4gPiA+ICAKPiA+ID4gPiAtCXBvd2VyX2RvbWFpbiA9IGludGVsX2RwX3Bv d2VyX2dldChpbnRlbF9kcCk7Cj4gPiA+ID4gKwlwb3dlcl9kb21haW4gPQo+ID4gPiA+IGludGVs X2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gPiA+ICsJ aW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ID4g IAo+ID4gPiA+ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxfZHApOwo+ID4gPiA+ICAKPiA+ID4g PiAtCWludGVsX2RwX3Bvd2VyX3B1dChpbnRlbF9kcCwgcG93ZXJfZG9tYWluKTsKPiA+ID4gPiAr CWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4gPiA+ ICAKPiA+ID4gPiAgCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFAp Cj4gPiA+ID4gIAkJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9ESVNQTEFZUE9S VDsKPiA+ID4gPiBAQCAtNTA5MSw3ICs1MDcxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZWRwX3Bh bmVsX3ZkZF9zYW5pdGl6ZShzdHJ1Y3QKPiA+ID4gPiBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ ID4gIAkgKiBpbmRlZmluaXRlbHkuCj4gPiA+ID4gIAkgKi8KPiA+ID4gPiAgCURSTV9ERUJVR19L TVMoIlZERCBsZWZ0IG9uIGJ5IEJJT1MsIGFkanVzdGluZyBzdGF0ZQo+ID4gPiA+IHRyYWNraW5n XG4iKTsKPiA+ID4gPiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiA+ID4gaW50ZWxfZGlzcGxheV9wb3J0 X3Bvd2VyX2RvbWFpbigmaW50ZWxfZGlnX3BvcnQtPmJhc2UpOwo+ID4gPiA+ICsJcG93ZXJfZG9t YWluID0KPiA+ID4gPiBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbigmaW50ZWxf ZGlnX3BvcnQtPmJhc2UpOwo+ID4gPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3By aXYsIHBvd2VyX2RvbWFpbik7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJZWRwX3BhbmVsX3ZkZF9zY2hl ZHVsZV9vZmYoaW50ZWxfZHApOwo+ID4gPiA+IEBAIC01MTcyLDcgKzUxNTIsNyBAQCBpbnRlbF9k cF9ocGRfcHVsc2Uoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydAo+ID4gPiA+ICppbnRlbF9kaWdf cG9ydCwgYm9vbCBsb25nX2hwZCkKPiA+ID4gPiAgCQkgICAgICBwb3J0X25hbWUoaW50ZWxfZGln X3BvcnQtPnBvcnQpLAo+ID4gPiA+ICAJCSAgICAgIGxvbmdfaHBkID8gImxvbmciIDogInNob3J0 Iik7Cj4gPiA+ID4gIAo+ID4gPiA+IC0JcG93ZXJfZG9tYWluID0KPiA+ID4gPiBpbnRlbF9kaXNw bGF5X3BvcnRfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gPiA+ICsJcG93ZXJfZG9t YWluID0KPiA+ID4gPiBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9l bmNvZGVyKTsKPiA+ID4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dl cl9kb21haW4pOwo+ID4gPiA+ICAKPiA+ID4gPiAgCWlmIChsb25nX2hwZCkgewo+ID4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiBpbmRleCBhNjhiNmNkLi43ZDEx YWEwIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiBA QCAtMTE4OCw2ICsxMTg4LDggQEAgdm9pZCBoc3dfZW5hYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0Yyk7Cj4gPiA+ID4gIHZvaWQgaHN3X2Rpc2FibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKTsKPiA+ID4gPiAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgo+ID4gPiA+ ICBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4g PiA+ID4gKmludGVsX2VuY29kZXIpOwo+ID4gPiA+ICtlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJf ZG9tYWluCj4gPiA+ID4gK2ludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKHN0cnVj dCBpbnRlbF9lbmNvZGVyCj4gPiA+ID4gKmludGVsX2VuY29kZXIpOwo+ID4gPiA+ICB2b2lkIGlu dGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwK PiA+ID4gPiAgCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ID4gPiA+ICpwaXBlX2NvbmZp Zyk7Cj4gPiA+ID4gIHZvaWQgaW50ZWxfbW9kZXNldF9wcmVjbG9zZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUKPiA+ID4gPiAqZmlsZSk7Cj4gPiAKPiA+IC0tIAo+ID4g VmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbCBPVEMKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==