From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 03/12] drm/i915: Clean up AUX power domain handling Date: Wed, 11 Nov 2015 20:22:03 +0200 Message-ID: <1447266123.24928.19.camel@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> Reply-To: imre.deak@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 920FE6EAAB for ; Wed, 11 Nov 2015 10:24:15 -0800 (PST) In-Reply-To: <1447084107-8521-4-git-send-email-patrik.jakobsson@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: Patrik Jakobsson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gbWEsIDIwMTUtMTEtMDkgYXQgMTY6NDggKzAxMDAsIFBhdHJpayBKYWtvYnNzb24gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiAKPiBJbnRyb2R1Y2UgaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oKSB3aGlj aCBzaW1wbHkgcmV0dXJucwo+IHRoZSBhcHByb3ByaWF0ZSBBVVggcG93ZXIgZG9tYWluIGZvciBh IHNwZWNpZmljIHBvcnQsIGFuZCB0aGVuCj4gcmVwbGFjZQo+IHRoZSBpbnRlbF9kaXNwbGF5X3Bv cnRfcG93ZXJfZG9tYWluKCkgd2l0aCBjYWxscyB0byB0aGUgbmV3IGZ1bmN0aW9uCj4gaW4gdGhl IERQIGNvZGUuIEFzIGxvbmcgYXMgd2UncmUgbm90IGFjdHVhbGx5IGVuYWJsaW5nIHRoZSBwb3J0 IHdlCj4gZG9uJ3QKPiBuZWVkIHRoZSBsYW5lIHBvd2VyIGRvbWFpbnMsIGFuZCB0aG9zZSBhcmUg aGFuZGxlZCBub3cgcHVyZWx5IGZyb20KPiBtb2Rlc2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFp bnMoKS4KPiAKPiBNeSBpbml0aWFsIG1vdGl2YXRpb24gZm9yIHRoaXMgd2FzIHRvIHNlZSBpZiBJ IGNvdWxkIGtlZXAgdGhlIERQSU8KPiBwb3dlcgo+IHdlbGxzIHBvd2VyZWQgZG93biB3aGlsZSBk b2luZyBBVVggb24gQ0hWLCBidXQgdHVybnMgb3V0IEkgY2FuJ3Qgc28KPiB0aGlzCj4gZG9lc24n dCBjaGFuZ2UgYW55dGhpbmcgZm9yIENIViBhdCBsZWFzdC4gQnV0IEkgdGhpbmsgaXQncyBzdGls bCBhCj4gd29ydGh3aWxlIGNoYW5nZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBQYXRyaWsg SmFrb2Jzc29uIDxwYXRyaWsuamFrb2Jzc29uQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNDAKPiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwg NDggKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsrCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTYg aW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gaW5kZXggZDBmZWMwNy4uYzI1NzhkOSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTE0Myw2ICs1MTQzLDIzIEBAIHN0YXRpYyBlbnVt IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4gcG9ydF90b19wb3dlcl9kb21haW4oZW51bSBw b3J0IHBvcnQpCj4gIAl9Cj4gIH0KPiAgCj4gK3N0YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIHBvcnRfdG9fYXV4X3Bvd2VyX2RvbWFpbihlbnVtCj4gcG9ydCBwb3J0KQo+ICt7 Cj4gKwlzd2l0Y2ggKHBvcnQpIHsKPiArCWNhc2UgUE9SVF9BOgo+ICsJCXJldHVybiBQT1dFUl9E T01BSU5fQVVYX0E7Cj4gKwljYXNlIFBPUlRfQjoKPiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FV WF9COwo+ICsJY2FzZSBQT1JUX0M6Cj4gKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQzsKPiAr CWNhc2UgUE9SVF9EOgo+ICsJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0Q7Cj4gKwlkZWZhdWx0 Ogo+ICsJCVdBUk5fT05fT05DRSgxKTsKPiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ ICsJfQo+ICt9CgpMb29rcyBsaWtlIHBvcnQgRSBpcyBtaXNzaW5nLiBJIGNoYXR0ZWQgd2l0aCBW aWxsZSBoZSBoYXMgc29tZSBpZGVhIHRvCmZpeCB0aGlzLgoKPiArCj4gICNkZWZpbmUgZm9yX2Vh Y2hfcG93ZXJfZG9tYWluKGRvbWFpbiwgbWFzaykJCQkJCj4gXAo+ICAJZm9yICgoZG9tYWluKSA9 IDA7IChkb21haW4pIDwgUE9XRVJfRE9NQUlOX05VTTsgKGRvbWFpbikrKykJCj4gXAo+ICAJCWlm ICgoMSA8PCAoZG9tYWluKSkgJiAobWFzaykpCj4gQEAgLTUxNzQsNiArNTE5MSwyOSBAQCBpbnRl bF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKHN0cnVjdAo+IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIpCj4gIAl9Cj4gIH0KPiAgCj4gK2VudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21h aW4KPiAraW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2Vu Y29kZXIKPiAqaW50ZWxfZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGludGVsX2VuY29kZXItPmJhc2UuZGV2Owo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQ7Cj4gKwo+ICsJc3dpdGNoIChpbnRlbF9lbmNvZGVyLT50eXBlKSB7Cj4g KwljYXNlIElOVEVMX09VVFBVVF9VTktOT1dOOgo+ICsJCS8qIE9ubHkgRERJIHBsYXRmb3JtcyBz aG91bGQgZXZlciB1c2UgdGhpcyBvdXRwdXQKPiB0eXBlICovCj4gKwkJV0FSTl9PTl9PTkNFKCFI QVNfRERJKGRldikpOwo+ICsJY2FzZSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQ6Cj4gKwljYXNl IElOVEVMX09VVFBVVF9FRFA6Cj4gKwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQo JmludGVsX2VuY29kZXIKPiAtPmJhc2UpOwo+ICsJCXJldHVybiBwb3J0X3RvX2F1eF9wb3dlcl9k b21haW4oaW50ZWxfZGlnX3BvcnQKPiAtPnBvcnQpOwo+ICsJY2FzZSBJTlRFTF9PVVRQVVRfRFBf TVNUOgo+ICsJCWludGVsX2RpZ19wb3J0ID0gZW5jX3RvX21zdCgmaW50ZWxfZW5jb2Rlci0+YmFz ZSkKPiAtPnByaW1hcnk7Cj4gKwkJcmV0dXJuIHBvcnRfdG9fYXV4X3Bvd2VyX2RvbWFpbihpbnRl bF9kaWdfcG9ydAo+IC0+cG9ydCk7Cj4gKwlkZWZhdWx0Ogo+ICsJCVdBUk5fT05fT05DRSgxKTsK PiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ICsJfQo+ICt9Cj4gKwo+ICBzdGF0aWMg dW5zaWduZWQgbG9uZyBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IDQ2NTVhZjAuLjM5Nzg1NDAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBAQCAtMjc3LDcgKzI3Nyw3IEBAIHN0YXRpYyB2b2lkIHBwc19sb2Nr KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkgKiBTZWUgdmx2X3Bvd2VyX3NlcXVlbmNl cl9yZXNldCgpIHdoeSB3ZSBuZWVkCj4gIAkgKiBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2UgaGVy ZS4KPiAgCSAqLwo+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2Rv bWFpbihlbmNvZGVyKTsKPiArCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhf cG93ZXJfZG9tYWluKGVuY29kZXIpOwo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3By aXYsIHBvd2VyX2RvbWFpbik7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRl eCk7Cj4gQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgdm9pZCBwcHNfdW5sb2NrKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211 dGV4KTsKPiAgCj4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9t YWluKGVuY29kZXIpOwo+ICsJcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9w b3dlcl9kb21haW4oZW5jb2Rlcik7Cj4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJp diwgcG93ZXJfZG9tYWluKTsKPiAgfQo+ICAKPiBAQCAtODE2LDggKzgxNiw2IEBAIGludGVsX2Rw X2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAKPiAgCWludGVsX2RwX2NoZWNr X2VkcChpbnRlbF9kcCk7Cj4gIAo+IC0JaW50ZWxfYXV4X2Rpc3BsYXlfcnVudGltZV9nZXQoZGV2 X3ByaXYpOwo+IC0KPiAJLyogVHJ5IHRvIHdhaXQgZm9yIGFueSBwcmV2aW91cyBBVVggY2hhbm5l bCBhY3Rpdml0eSAqLwo+ICAJZm9yICh0cnkgPSAwOyB0cnkgPCAzOyB0cnkrKykgewo+ICAJCXN0 YXR1cyA9IEk5MTVfUkVBRF9OT1RSQUNFKGNoX2N0bCk7Cj4gQEAgLTkyNiw3ICs5MjQsNiBAQCBk b25lOgo+ICAJcmV0ID0gcmVjdl9ieXRlczsKPiAgb3V0Ogo+ICAJcG1fcW9zX3VwZGF0ZV9yZXF1 ZXN0KCZkZXZfcHJpdi0+cG1fcW9zLAo+IFBNX1FPU19ERUZBVUxUX1ZBTFVFKTsKPiAtCWludGVs X2F1eF9kaXNwbGF5X3J1bnRpbWVfcHV0KGRldl9wcml2KTsKPiAgCj4gIAlpZiAodmRkKQo+ICAJ CWVkcF9wYW5lbF92ZGRfb2ZmKGludGVsX2RwLCBmYWxzZSk7Cj4gQEAgLTE3ODQsNyArMTc4MSw3 IEBAIHN0YXRpYyBib29sIGVkcF9wYW5lbF92ZGRfb24oc3RydWN0IGludGVsX2RwCj4gKmludGVs X2RwKQo+ICAJaWYgKGVkcF9oYXZlX3BhbmVsX3ZkZChpbnRlbF9kcCkpCj4gIAkJcmV0dXJuIG5l ZWRfdG9fZGlzYWJsZTsKPiAgCj4gLQlwb3dlcl9kb21haW4gPQo+IGludGVsX2Rpc3BsYXlfcG9y dF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gKwlwb3dlcl9kb21haW4gPQo+IGludGVs X2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ICAJaW50ZWxf ZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gIAo+ICAJRFJNX0RF QlVHX0tNUygiVHVybmluZyBlRFAgcG9ydCAlYyBWREQgb25cbiIsCj4gQEAgLTE4NzQsNyArMTg3 MSw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoc3RydWN0Cj4gaW50ZWxf ZHAgKmludGVsX2RwKQo+ICAJaWYgKChwcCAmIFBPV0VSX1RBUkdFVF9PTikgPT0gMCkKPiAgCQlp bnRlbF9kcC0+bGFzdF9wb3dlcl9jeWNsZSA9IGppZmZpZXM7Cj4gIAo+IC0JcG93ZXJfZG9tYWlu ID0KPiBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ICsJ cG93ZXJfZG9tYWluID0KPiBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRl bF9lbmNvZGVyKTsKPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9k b21haW4pOwo+ICB9Cj4gIAo+IEBAIC0yMDI1LDcgKzIwMjIsNyBAQCBzdGF0aWMgdm9pZCBlZHBf cGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCkKPiAgCXdhaXRfcGFuZWxfb2Zm KGludGVsX2RwKTsKPiAgCj4gIAkvKiBXZSBnb3QgYSByZWZlcmVuY2Ugd2hlbiB3ZSBlbmFibGVk IHRoZSBWREQuICovCj4gLQlwb3dlcl9kb21haW4gPQo+IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dl cl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gKwlwb3dlcl9kb21haW4gPQo+IGludGVsX2Rpc3Bs YXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+ICAJaW50ZWxfZGlzcGxh eV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gIH0KPiAgCj4gQEAgLTQ3NjUs MjYgKzQ3NjIsNiBAQCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gIAlpbnRlbF9kcC0+aGFzX2F1ZGlvID0gZmFsc2U7Cj4gIH0KPiAgCj4gLXN0YXRpYyBl bnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4gLWludGVsX2RwX3Bvd2VyX2dldChzdHJ1 Y3QgaW50ZWxfZHAgKmRwKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9 ICZkcF90b19kaWdfcG9ydChkcCktPmJhc2U7Cj4gLQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJf ZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAtCj4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5 X3BvcnRfcG93ZXJfZG9tYWluKGVuY29kZXIpOwo+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQo dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldiksCj4gcG93ZXJfZG9tYWluKTsKPiAtCj4gLQlyZXR1 cm4gcG93ZXJfZG9tYWluOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZAo+IC1pbnRlbF9kcF9wb3dl cl9wdXQoc3RydWN0IGludGVsX2RwICpkcCwKPiAtCQkgICBlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIHBvd2VyX2RvbWFpbikKPiAtewo+IC0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoZHApLT5iYXNlOwo+IC0JaW50ZWxfZGlzcGxheV9wb3dl cl9wdXQodG9faTkxNShlbmNvZGVyLT5iYXNlLmRldiksCj4gcG93ZXJfZG9tYWluKTsKPiAtfQo+ IC0KPiAgc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKPiAgaW50ZWxfZHBfZGV0ZWN0 KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIHsKPiBAQCAt NDgwOCw3ICs0Nzg1LDggQEAgaW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yCj4g KmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c19kaXNj b25uZWN0ZWQ7Cj4gIAl9Cj4gIAo+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZHBfcG93ZXJfZ2V0 KGludGVsX2RwKTsKPiArCXBvd2VyX2RvbWFpbiA9Cj4gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9w b3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0 b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gIAo+ICAJLyogQ2FuJ3QgZGlzY29ubmVjdCBl RFAsIGJ1dCB5b3UgY2FuIGNsb3NlIHRoZSBsaWQuLi4gKi8KPiAgCWlmIChpc19lZHAoaW50ZWxf ZHApKQo+IEBAIC00ODUzLDcgKzQ4MzEsNyBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9j b25uZWN0b3IKPiAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ICAJfQo+ICAKPiAgb3V0Ogo+IC0J aW50ZWxfZHBfcG93ZXJfcHV0KGludGVsX2RwLCBwb3dlcl9kb21haW4pOwo+ICsJaW50ZWxfZGlz cGxheV9wb3dlcl9wdXQodG9faTkxNShkZXYpLCBwb3dlcl9kb21haW4pOwo+ICAJcmV0dXJuIHN0 YXR1czsKPiAgfQo+ICAKPiBAQCAtNDg2Miw2ICs0ODQwLDcgQEAgaW50ZWxfZHBfZm9yY2Uoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9Cj4gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFz ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxf ZW5jb2Rlcgo+IC0+YmFzZS5kZXYpOwo+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFp biBwb3dlcl9kb21haW47Cj4gIAo+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11c biIsCj4gQEAgLTQ4NzEsMTEgKzQ4NTAsMTIgQEAgaW50ZWxfZHBfZm9yY2Uoc3RydWN0IGRybV9j b25uZWN0b3IKPiAqY29ubmVjdG9yKQo+ICAJaWYgKGNvbm5lY3Rvci0+c3RhdHVzICE9IGNvbm5l Y3Rvcl9zdGF0dXNfY29ubmVjdGVkKQo+ICAJCXJldHVybjsKPiAgCj4gLQlwb3dlcl9kb21haW4g PSBpbnRlbF9kcF9wb3dlcl9nZXQoaW50ZWxfZHApOwo+ICsJcG93ZXJfZG9tYWluID0KPiBpbnRl bF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKPiArCWludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ICAKPiAgCWludGVs X2RwX3NldF9lZGlkKGludGVsX2RwKTsKPiAgCj4gLQlpbnRlbF9kcF9wb3dlcl9wdXQoaW50ZWxf ZHAsIHBvd2VyX2RvbWFpbik7Cj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwg cG93ZXJfZG9tYWluKTsKPiAgCj4gIAlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9P VVRQVVRfRURQKQo+ICAJCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRElTUExB WVBPUlQ7Cj4gQEAgLTUwOTEsNyArNTA3MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VkcF9wYW5l bF92ZGRfc2FuaXRpemUoc3RydWN0Cj4gaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJICogaW5kZWZp bml0ZWx5Lgo+ICAJICovCj4gIAlEUk1fREVCVUdfS01TKCJWREQgbGVmdCBvbiBieSBCSU9TLCBh ZGp1c3Rpbmcgc3RhdGUKPiB0cmFja2luZ1xuIik7Cj4gLQlwb3dlcl9kb21haW4gPQo+IGludGVs X2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oJmludGVsX2RpZ19wb3J0LT5iYXNlKTsKPiArCXBv d2VyX2RvbWFpbiA9Cj4gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oJmludGVs X2RpZ19wb3J0LT5iYXNlKTsKPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBw b3dlcl9kb21haW4pOwo+ICAKPiAgCWVkcF9wYW5lbF92ZGRfc2NoZWR1bGVfb2ZmKGludGVsX2Rw KTsKPiBAQCAtNTE3Miw3ICs1MTUyLDcgQEAgaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQKPiAqaW50ZWxfZGlnX3BvcnQsIGJvb2wgbG9uZ19ocGQpCj4gIAkJICAg ICAgcG9ydF9uYW1lKGludGVsX2RpZ19wb3J0LT5wb3J0KSwKPiAgCQkgICAgICBsb25nX2hwZCA/ ICJsb25nIiA6ICJzaG9ydCIpOwo+ICAKPiAtCXBvd2VyX2RvbWFpbiA9Cj4gaW50ZWxfZGlzcGxh eV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKPiArCXBvd2VyX2RvbWFpbiA9Cj4g aW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gIAlp bnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPiAgCj4gIAlp ZiAobG9uZ19ocGQpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggYTY4YjZj ZC4uN2QxMWFhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExODgsNiAr MTE4OCw4IEBAIHZvaWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ ICB2b2lkIGhzd19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gIGVudW0g aW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KPiAgaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2Rv bWFpbihzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ICppbnRlbF9lbmNvZGVyKTsKPiArZW51bSBpbnRl bF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgo+ICtpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2Rv bWFpbihzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ICppbnRlbF9lbmNvZGVyKTsKPiAgdm9pZCBpbnRl bF9tb2RlX2Zyb21fcGlwZV9jb25maWcoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4g IAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiAqcGlwZV9jb25maWcpOwo+ICB2b2lkIGlu dGVsX21vZGVzZXRfcHJlY2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9m aWxlCj4gKmZpbGUpOwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=