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: Wed, 11 Nov 2015 20:37:36 +0200 Message-ID: <20151111183736.GO4437@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 09A3E6EAC1 for ; Wed, 11 Nov 2015 10:37:41 -0800 (PST) Content-Disposition: inline In-Reply-To: <1447266123.24928.19.camel@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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMTEsIDIwMTUgYXQgMDg6MjI6MDNQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIG1hLCAyMDE1LTExLTA5IGF0IDE2OjQ4ICswMTAwLCBQYXRyaWsgSmFrb2Jzc29uIHdy b3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+IAo+ID4gSW50cm9kdWNlIGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9t YWluKCkgd2hpY2ggc2ltcGx5IHJldHVybnMKPiA+IHRoZSBhcHByb3ByaWF0ZSBBVVggcG93ZXIg ZG9tYWluIGZvciBhIHNwZWNpZmljIHBvcnQsIGFuZCB0aGVuCj4gPiByZXBsYWNlCj4gPiB0aGUg aW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbigpIHdpdGggY2FsbHMgdG8gdGhlIG5ldyBm dW5jdGlvbgo+ID4gaW4gdGhlIERQIGNvZGUuIEFzIGxvbmcgYXMgd2UncmUgbm90IGFjdHVhbGx5 IGVuYWJsaW5nIHRoZSBwb3J0IHdlCj4gPiBkb24ndAo+ID4gbmVlZCB0aGUgbGFuZSBwb3dlciBk b21haW5zLCBhbmQgdGhvc2UgYXJlIGhhbmRsZWQgbm93IHB1cmVseSBmcm9tCj4gPiBtb2Rlc2V0 X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFpbnMoKS4KPiA+IAo+ID4gTXkgaW5pdGlhbCBtb3RpdmF0 aW9uIGZvciB0aGlzIHdhcyB0byBzZWUgaWYgSSBjb3VsZCBrZWVwIHRoZSBEUElPCj4gPiBwb3dl cgo+ID4gd2VsbHMgcG93ZXJlZCBkb3duIHdoaWxlIGRvaW5nIEFVWCBvbiBDSFYsIGJ1dCB0dXJu cyBvdXQgSSBjYW4ndCBzbwo+ID4gdGhpcwo+ID4gZG9lc24ndCBjaGFuZ2UgYW55dGhpbmcgZm9y IENIViBhdCBsZWFzdC4gQnV0IEkgdGhpbmsgaXQncyBzdGlsbCBhCj4gPiB3b3J0aHdpbGUgY2hh bmdlLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IFBhdHJpayBKYWtvYnNzb24gPHBh dHJpay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNDAKPiA+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDQ4ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gPiAtLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDIgKysKPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDU2 IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggZDBmZWMwNy4uYzI1NzhkOSAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtNTE0Myw2ICs1MTQzLDIz IEBAIHN0YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4gPiBwb3J0X3RvX3Bv d2VyX2RvbWFpbihlbnVtIHBvcnQgcG9ydCkKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0 aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3J0X3RvX2F1eF9wb3dlcl9kb21h aW4oZW51bQo+ID4gcG9ydCBwb3J0KQo+ID4gK3sKPiA+ICsJc3dpdGNoIChwb3J0KSB7Cj4gPiAr CWNhc2UgUE9SVF9BOgo+ID4gKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKPiA+ICsJY2Fz ZSBQT1JUX0I6Cj4gPiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9COwo+ID4gKwljYXNlIFBP UlRfQzoKPiA+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0M7Cj4gPiArCWNhc2UgUE9SVF9E Ogo+ID4gKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfRDsKPiA+ICsJZGVmYXVsdDoKPiA+ICsJ CVdBUk5fT05fT05DRSgxKTsKPiA+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0E7Cj4gPiAr CX0KPiA+ICt9Cj4gCj4gTG9va3MgbGlrZSBwb3J0IEUgaXMgbWlzc2luZy4gSSBjaGF0dGVkIHdp dGggVmlsbGUgaGUgaGFzIHNvbWUgaWRlYSB0bwo+IGZpeCB0aGlzLgoKWWVhaCwgc28gdGhlcmUn cyBubyBkZWRpY2F0ZWQgQVVYIGJsb2NrIGZvciBwb3J0IEUsIGFuZCBpbnN0ZWFkIFZCVAp0ZWxs cyB1cyB3aGljaCBBVVggYmxvY2sgdG8gdXNlLiBUaGUgY3VycmVudCBjb2RlIGRvaW4gdGhhdCBp cyByYXRoZXIKbWVzc3ksIGJ1dCBJIGhhdmUgYSBjbGVhbmVkIGl0IHVwIGR1cmluZyBteSByZWdp c3RlciB0eXBlLXNhZmV0eQpqb3VybmV5LiBJIGp1c3QgcmVwb3N0ZWQgdGhlIHJlbWFpbmluZyBB VVggcmVsYXRlZCBwYXRjaGVzIFsxXSBmcm9tCnRoYXQgc2VyaWVzLgoKU28gSSB3YXMgdGhpbmtp bmcgdGhhdCB3ZSBjb3VsZCBpbmNsdWRlIGFuICdlbnVtIHBvcnQgYXV4X3BvcnQnIGluc2lkZQpp bnRlbF9kcCwgYW5kIHVzZSB0aGF0IHRvIHBpY2sgdGhlIHJpZ2h0IHBvd2VyIGRvbWFpbi4KClsx XSBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE1LU5v dmVtYmVyLzA3OTkxOC5odG1sCgo+IAo+ID4gKwo+ID4gICNkZWZpbmUgZm9yX2VhY2hfcG93ZXJf ZG9tYWluKGRvbWFpbiwgbWFzaykJCQkJCj4gPiBcCj4gPiAgCWZvciAoKGRvbWFpbikgPSAwOyAo ZG9tYWluKSA8IFBPV0VSX0RPTUFJTl9OVU07IChkb21haW4pKyspCQo+ID4gXAo+ID4gIAkJaWYg KCgxIDw8IChkb21haW4pKSAmIChtYXNrKSkKPiA+IEBAIC01MTc0LDYgKzUxOTEsMjkgQEAgaW50 ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihzdHJ1Y3QKPiA+IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIpCj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiArZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbgo+ID4gK2ludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKHN0 cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiAqaW50ZWxfZW5jb2RlcikKPiA+ICt7Cj4gPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKPiA+ICsJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Cj4gPiArCj4gPiArCXN3aXRjaCAo aW50ZWxfZW5jb2Rlci0+dHlwZSkgewo+ID4gKwljYXNlIElOVEVMX09VVFBVVF9VTktOT1dOOgo+ ID4gKwkJLyogT25seSBEREkgcGxhdGZvcm1zIHNob3VsZCBldmVyIHVzZSB0aGlzIG91dHB1dAo+ ID4gdHlwZSAqLwo+ID4gKwkJV0FSTl9PTl9PTkNFKCFIQVNfRERJKGRldikpOwo+ID4gKwljYXNl IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVDoKPiA+ICsJY2FzZSBJTlRFTF9PVVRQVVRfRURQOgo+ ID4gKwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXIKPiA+ IC0+YmFzZSk7Cj4gPiArCQlyZXR1cm4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGludGVsX2Rp Z19wb3J0Cj4gPiAtPnBvcnQpOwo+ID4gKwljYXNlIElOVEVMX09VVFBVVF9EUF9NU1Q6Cj4gPiAr CQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19tc3QoJmludGVsX2VuY29kZXItPmJhc2UpCj4gPiAt PnByaW1hcnk7Cj4gPiArCQlyZXR1cm4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGludGVsX2Rp Z19wb3J0Cj4gPiAtPnBvcnQpOwo+ID4gKwlkZWZhdWx0Ogo+ID4gKwkJV0FSTl9PTl9PTkNFKDEp Owo+ID4gKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKPiA+ICsJfQo+ID4gK30KPiA+ICsK PiA+ICBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCA0NjU1YWYwLi4z OTc4NTQwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTI3Nyw3ICsy NzcsNyBAQCBzdGF0aWMgdm9pZCBwcHNfbG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ ID4gIAkgKiBTZWUgdmx2X3Bvd2VyX3NlcXVlbmNlcl9yZXNldCgpIHdoeSB3ZSBuZWVkCj4gPiAg CSAqIGEgcG93ZXIgZG9tYWluIHJlZmVyZW5jZSBoZXJlLgo+ID4gIAkgKi8KPiA+IC0JcG93ZXJf ZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihlbmNvZGVyKTsKPiA+ICsJ cG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oZW5jb2Rl cik7Cj4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4p Owo+ID4gIAo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiA+IEBAIC0y OTMsNyArMjkzLDcgQEAgc3RhdGljIHZvaWQgcHBzX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ID4gIAo+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ ID4gIAo+ID4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWlu KGVuY29kZXIpOwo+ID4gKwlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bv d2VyX2RvbWFpbihlbmNvZGVyKTsKPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3By aXYsIHBvd2VyX2RvbWFpbik7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTgxNiw4ICs4MTYsNiBAQCBp bnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAKPiA+ICAJaW50 ZWxfZHBfY2hlY2tfZWRwKGludGVsX2RwKTsKPiA+ICAKPiA+IC0JaW50ZWxfYXV4X2Rpc3BsYXlf cnVudGltZV9nZXQoZGV2X3ByaXYpOwo+ID4gLQo+ID4gCS8qIFRyeSB0byB3YWl0IGZvciBhbnkg cHJldmlvdXMgQVVYIGNoYW5uZWwgYWN0aXZpdHkgKi8KPiA+ICAJZm9yICh0cnkgPSAwOyB0cnkg PCAzOyB0cnkrKykgewo+ID4gIAkJc3RhdHVzID0gSTkxNV9SRUFEX05PVFJBQ0UoY2hfY3RsKTsK PiA+IEBAIC05MjYsNyArOTI0LDYgQEAgZG9uZToKPiA+ICAJcmV0ID0gcmVjdl9ieXRlczsKPiA+ ICBvdXQ6Cj4gPiAgCXBtX3Fvc191cGRhdGVfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3FvcywKPiA+ IFBNX1FPU19ERUZBVUxUX1ZBTFVFKTsKPiA+IC0JaW50ZWxfYXV4X2Rpc3BsYXlfcnVudGltZV9w dXQoZGV2X3ByaXYpOwo+ID4gIAo+ID4gIAlpZiAodmRkKQo+ID4gIAkJZWRwX3BhbmVsX3ZkZF9v ZmYoaW50ZWxfZHAsIGZhbHNlKTsKPiA+IEBAIC0xNzg0LDcgKzE3ODEsNyBAQCBzdGF0aWMgYm9v bCBlZHBfcGFuZWxfdmRkX29uKHN0cnVjdCBpbnRlbF9kcAo+ID4gKmludGVsX2RwKQo+ID4gIAlp ZiAoZWRwX2hhdmVfcGFuZWxfdmRkKGludGVsX2RwKSkKPiA+ICAJCXJldHVybiBuZWVkX3RvX2Rp c2FibGU7Cj4gPiAgCj4gPiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiBpbnRlbF9kaXNwbGF5X3BvcnRf cG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gKwlwb3dlcl9kb21haW4gPQo+ID4gaW50 ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiAgCWlu dGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4gIAo+ID4g IAlEUk1fREVCVUdfS01TKCJUdXJuaW5nIGVEUCBwb3J0ICVjIFZERCBvblxuIiwKPiA+IEBAIC0x ODc0LDcgKzE4NzEsNyBAQCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX29mZl9zeW5jKHN0cnVj dAo+ID4gaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAlpZiAoKHBwICYgUE9XRVJfVEFSR0VUX09O KSA9PSAwKQo+ID4gIAkJaW50ZWxfZHAtPmxhc3RfcG93ZXJfY3ljbGUgPSBqaWZmaWVzOwo+ID4g IAo+ID4gLQlwb3dlcl9kb21haW4gPQo+ID4gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFp bihpbnRlbF9lbmNvZGVyKTsKPiA+ICsJcG93ZXJfZG9tYWluID0KPiA+IGludGVsX2Rpc3BsYXlf cG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gIAlpbnRlbF9kaXNwbGF5 X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAt MjAyNSw3ICsyMDIyLDcgQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxf ZHAKPiA+ICppbnRlbF9kcCkKPiA+ICAJd2FpdF9wYW5lbF9vZmYoaW50ZWxfZHApOwo+ID4gIAo+ ID4gIAkvKiBXZSBnb3QgYSByZWZlcmVuY2Ugd2hlbiB3ZSBlbmFibGVkIHRoZSBWREQuICovCj4g PiAtCXBvd2VyX2RvbWFpbiA9Cj4gPiBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGlu dGVsX2VuY29kZXIpOwo+ID4gKwlwb3dlcl9kb21haW4gPQo+ID4gaW50ZWxfZGlzcGxheV9wb3J0 X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gPiAgCWludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC00NzY1 LDI2ICs0NzYyLDYgQEAgaW50ZWxfZHBfdW5zZXRfZWRpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ID4gIAlpbnRlbF9kcC0+aGFzX2F1ZGlvID0gZmFsc2U7Cj4gPiAgfQo+ID4gIAo+ID4g LXN0YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4gPiAtaW50ZWxfZHBfcG93 ZXJfZ2V0KHN0cnVjdCBpbnRlbF9kcCAqZHApCj4gPiAtewo+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChkcCktPmJhc2U7Cj4gPiAtCWVudW0gaW50 ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ID4gLQo+ID4gLQlwb3dlcl9k b21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGVuY29kZXIpOwo+ID4gLQlp bnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSwKPiA+IHBv d2VyX2RvbWFpbik7Cj4gPiAtCj4gPiAtCXJldHVybiBwb3dlcl9kb21haW47Cj4gPiAtfQo+ID4g LQo+ID4gLXN0YXRpYyB2b2lkCj4gPiAtaW50ZWxfZHBfcG93ZXJfcHV0KHN0cnVjdCBpbnRlbF9k cCAqZHAsCj4gPiAtCQkgICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2Rv bWFpbikKPiA+IC17Cj4gPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRwX3Rv X2RpZ19wb3J0KGRwKS0+YmFzZTsKPiA+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9faTkx NShlbmNvZGVyLT5iYXNlLmRldiksCj4gPiBwb3dlcl9kb21haW4pOwo+ID4gLX0KPiA+IC0KPiA+ ICBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ID4gIGludGVsX2RwX2RldGVjdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gIHsKPiA+IEBA IC00ODA4LDcgKzQ3ODUsOCBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IK PiA+ICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPiAgCQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1 c19kaXNjb25uZWN0ZWQ7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxf ZHBfcG93ZXJfZ2V0KGludGVsX2RwKTsKPiA+ICsJcG93ZXJfZG9tYWluID0KPiA+IGludGVsX2Rp c3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gKwlpbnRlbF9k aXNwbGF5X3Bvd2VyX2dldCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gPiAgCj4gPiAg CS8qIENhbid0IGRpc2Nvbm5lY3QgZURQLCBidXQgeW91IGNhbiBjbG9zZSB0aGUgbGlkLi4uICov Cj4gPiAgCWlmIChpc19lZHAoaW50ZWxfZHApKQo+ID4gQEAgLTQ4NTMsNyArNDgzMSw3IEBAIGlu dGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gKmNvbm5lY3RvciwgYm9vbCBm b3JjZSkKPiA+ICAJfQo+ID4gIAo+ID4gIG91dDoKPiA+IC0JaW50ZWxfZHBfcG93ZXJfcHV0KGlu dGVsX2RwLCBwb3dlcl9kb21haW4pOwo+ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dCh0b19p OTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gPiAgCXJldHVybiBzdGF0dXM7Cj4gPiAgfQo+ID4g IAo+ID4gQEAgLTQ4NjIsNiArNDg0MCw3IEBAIGludGVsX2RwX2ZvcmNlKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiA+ICAJc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIgPQo+ID4gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsK PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9l bmNvZGVyCj4gPiAtPmJhc2UuZGV2KTsKPiA+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2Rv bWFpbiBwb3dlcl9kb21haW47Cj4gPiAgCj4gPiAgCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6 JWQ6JXNdXG4iLAo+ID4gQEAgLTQ4NzEsMTEgKzQ4NTAsMTIgQEAgaW50ZWxfZHBfZm9yY2Uoc3Ry dWN0IGRybV9jb25uZWN0b3IKPiA+ICpjb25uZWN0b3IpCj4gPiAgCWlmIChjb25uZWN0b3ItPnN0 YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKPiA+ICAJCXJldHVybjsKPiA+ICAK PiA+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZHBfcG93ZXJfZ2V0KGludGVsX2RwKTsKPiA+ICsJ cG93ZXJfZG9tYWluID0KPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGlu dGVsX2VuY29kZXIpOwo+ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93 ZXJfZG9tYWluKTsKPiA+ICAKPiA+ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxfZHApOwo+ID4g IAo+ID4gLQlpbnRlbF9kcF9wb3dlcl9wdXQoaW50ZWxfZHAsIHBvd2VyX2RvbWFpbik7Cj4gPiAr CWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4gIAo+ ID4gIAlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQKQo+ID4gIAkJ aW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVDsKPiA+IEBAIC01 MDkxLDcgKzUwNzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXpl KHN0cnVjdAo+ID4gaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkgKiBpbmRlZmluaXRlbHkuCj4g PiAgCSAqLwo+ID4gIAlEUk1fREVCVUdfS01TKCJWREQgbGVmdCBvbiBieSBCSU9TLCBhZGp1c3Rp bmcgc3RhdGUKPiA+IHRyYWNraW5nXG4iKTsKPiA+IC0JcG93ZXJfZG9tYWluID0KPiA+IGludGVs X2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oJmludGVsX2RpZ19wb3J0LT5iYXNlKTsKPiA+ICsJ cG93ZXJfZG9tYWluID0KPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKCZp bnRlbF9kaWdfcG9ydC0+YmFzZSk7Cj4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9w cml2LCBwb3dlcl9kb21haW4pOwo+ID4gIAo+ID4gIAllZHBfcGFuZWxfdmRkX3NjaGVkdWxlX29m ZihpbnRlbF9kcCk7Cj4gPiBAQCAtNTE3Miw3ICs1MTUyLDcgQEAgaW50ZWxfZHBfaHBkX3B1bHNl KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPiA+ICppbnRlbF9kaWdfcG9ydCwgYm9vbCBsb25n X2hwZCkKPiA+ICAJCSAgICAgIHBvcnRfbmFtZShpbnRlbF9kaWdfcG9ydC0+cG9ydCksCj4gPiAg CQkgICAgICBsb25nX2hwZCA/ICJsb25nIiA6ICJzaG9ydCIpOwo+ID4gIAo+ID4gLQlwb3dlcl9k b21haW4gPQo+ID4gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVy KTsKPiA+ICsJcG93ZXJfZG9tYWluID0KPiA+IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJf ZG9tYWluKGludGVsX2VuY29kZXIpOwo+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZf cHJpdiwgcG93ZXJfZG9tYWluKTsKPiA+ICAKPiA+ICAJaWYgKGxvbmdfaHBkKSB7Cj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGE2OGI2Y2QuLjdkMTFhYTAgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0xMTg4LDYgKzExODgsOCBAQCB2 b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiA+ICB2b2lkIGhz d19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gPiAgZW51bSBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbgo+ID4gIGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4o c3RydWN0IGludGVsX2VuY29kZXIKPiA+ICppbnRlbF9lbmNvZGVyKTsKPiA+ICtlbnVtIGludGVs X2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4gPiAraW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9k b21haW4oc3RydWN0IGludGVsX2VuY29kZXIKPiA+ICppbnRlbF9lbmNvZGVyKTsKPiA+ICB2b2lk IGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSwKPiA+ICAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiAqcGlwZV9jb25maWcpOwo+ ID4gIHZvaWQgaW50ZWxfbW9kZXNldF9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2ZpbGUKPiA+ICpmaWxlKTsKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RD Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==