From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrik Jakobsson Subject: [PATCH v2 03/12] drm/i915: Clean up AUX power domain handling Date: Mon, 16 Nov 2015 15:01:04 +0100 Message-ID: <1447682467-6237-1-git-send-email-patrik.jakobsson@linux.intel.com> References: <1447084107-8521-4-git-send-email-patrik.jakobsson@linux.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 ESMTP id D432D6E10D for ; Mon, 16 Nov 2015 06:04:26 -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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCklu dHJvZHVjZSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbigpIHdoaWNoIHNpbXBs eSByZXR1cm5zCnRoZSBhcHByb3ByaWF0ZSBBVVggcG93ZXIgZG9tYWluIGZvciBhIHNwZWNpZmlj IHBvcnQsIGFuZCB0aGVuIHJlcGxhY2UKdGhlIGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21h aW4oKSB3aXRoIGNhbGxzIHRvIHRoZSBuZXcgZnVuY3Rpb24KaW4gdGhlIERQIGNvZGUuIEFzIGxv bmcgYXMgd2UncmUgbm90IGFjdHVhbGx5IGVuYWJsaW5nIHRoZSBwb3J0IHdlIGRvbid0Cm5lZWQg dGhlIGxhbmUgcG93ZXIgZG9tYWlucywgYW5kIHRob3NlIGFyZSBoYW5kbGVkIG5vdyBwdXJlbHkg ZnJvbQptb2Rlc2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFpbnMoKS4KCk15IGluaXRpYWwgbW90 aXZhdGlvbiBmb3IgdGhpcyB3YXMgdG8gc2VlIGlmIEkgY291bGQga2VlcCB0aGUgRFBJTyBwb3dl cgp3ZWxscyBwb3dlcmVkIGRvd24gd2hpbGUgZG9pbmcgQVVYIG9uIENIViwgYnV0IHR1cm5zIG91 dCBJIGNhbid0IHNvIHRoaXMKZG9lc24ndCBjaGFuZ2UgYW55dGhpbmcgZm9yIENIViBhdCBsZWFz dC4gQnV0IEkgdGhpbmsgaXQncyBzdGlsbCBhCndvcnRod2lsZSBjaGFuZ2UuCgp2MjogQWRkIGNh c2UgZm9yIFBPUlQgRS4gRGVmYXVsdCB0byBQT1dFUl9ET01BSU5fQVVYX0QgZm9yIG5vdy4gKFZp bGxlKQoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5qYWtvYnNz b25AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCA0OCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsrCiAz IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBkMGZlYzA3Li5jZGVkYWYyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC01MTQzLDYgKzUxNDMsMjYgQEAgc3RhdGlj IGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG9ydF90b19wb3dlcl9kb21haW4oZW51 bSBwb3J0IHBvcnQpCiAJfQogfQogCitzdGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2Rv bWFpbiBwb3J0X3RvX2F1eF9wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpCit7CisJc3dpdGNo IChwb3J0KSB7CisJY2FzZSBQT1JUX0E6CisJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0E7CisJ Y2FzZSBQT1JUX0I6CisJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0I7CisJY2FzZSBQT1JUX0M6 CisJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0M7CisJY2FzZSBQT1JUX0Q6CisJCXJldHVybiBQ T1dFUl9ET01BSU5fQVVYX0Q7CisJY2FzZSBQT1JUX0U6CisJCS8qIEZJWE1FOiBDaGVjayBWQlQg Zm9yIGFjdHVhbCB3aXJpbmcgb2YgUE9SVCBFICovCisJCXJldHVybiBQT1dFUl9ET01BSU5fQVVY X0Q7CisJZGVmYXVsdDoKKwkJV0FSTl9PTl9PTkNFKDEpOworCQlyZXR1cm4gUE9XRVJfRE9NQUlO X0FVWF9BOworCX0KK30KKwogI2RlZmluZSBmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBt YXNrKQkJCQlcCiAJZm9yICgoZG9tYWluKSA9IDA7IChkb21haW4pIDwgUE9XRVJfRE9NQUlOX05V TTsgKGRvbWFpbikrKykJXAogCQlpZiAoKDEgPDwgKGRvbWFpbikpICYgKG1hc2spKQpAQCAtNTE3 NCw2ICs1MTk0LDI5IEBAIGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCiAJfQogfQogCitlbnVtIGludGVsX2Rpc3BsYXlf cG93ZXJfZG9tYWluCitpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQ7CisKKwlzd2l0Y2ggKGludGVsX2VuY29kZXItPnR5cGUpIHsKKwljYXNl IElOVEVMX09VVFBVVF9VTktOT1dOOgorCQkvKiBPbmx5IERESSBwbGF0Zm9ybXMgc2hvdWxkIGV2 ZXIgdXNlIHRoaXMgb3V0cHV0IHR5cGUgKi8KKwkJV0FSTl9PTl9PTkNFKCFIQVNfRERJKGRldikp OworCWNhc2UgSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUOgorCWNhc2UgSU5URUxfT1VUUFVUX0VE UDoKKwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXItPmJh c2UpOworCQlyZXR1cm4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGludGVsX2RpZ19wb3J0LT5w b3J0KTsKKwljYXNlIElOVEVMX09VVFBVVF9EUF9NU1Q6CisJCWludGVsX2RpZ19wb3J0ID0gZW5j X3RvX21zdCgmaW50ZWxfZW5jb2Rlci0+YmFzZSktPnByaW1hcnk7CisJCXJldHVybiBwb3J0X3Rv X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZGlnX3BvcnQtPnBvcnQpOworCWRlZmF1bHQ6CisJCVdB Uk5fT05fT05DRSgxKTsKKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKKwl9Cit9CisKIHN0 YXRpYyB1bnNpZ25lZCBsb25nIGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwppbmRleCA0NjU1YWYwLi4zOTc4NTQwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGF0aWMgdm9pZCBwcHNfbG9jayhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQogCSAqIFNlZSB2bHZfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KCkgd2h5 IHdlIG5lZWQKIAkgKiBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2UgaGVyZS4KIAkgKi8KLQlwb3dl cl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGVuY29kZXIpOworCXBv d2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGVuY29kZXIp OwogCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwogCiAJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CkBAIC0yOTMsNyArMjkzLDcgQEAgc3Rh dGljIHZvaWQgcHBzX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIAotCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rp c3BsYXlfcG9ydF9wb3dlcl9kb21haW4oZW5jb2Rlcik7CisJcG93ZXJfZG9tYWluID0gaW50ZWxf ZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oZW5jb2Rlcik7CiAJaW50ZWxfZGlzcGxheV9w b3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7CiB9CiAKQEAgLTgxNiw4ICs4MTYsNiBA QCBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAogCWludGVsX2Rw X2NoZWNrX2VkcChpbnRlbF9kcCk7CiAKLQlpbnRlbF9hdXhfZGlzcGxheV9ydW50aW1lX2dldChk ZXZfcHJpdik7Ci0KIAkvKiBUcnkgdG8gd2FpdCBmb3IgYW55IHByZXZpb3VzIEFVWCBjaGFubmVs IGFjdGl2aXR5ICovCiAJZm9yICh0cnkgPSAwOyB0cnkgPCAzOyB0cnkrKykgewogCQlzdGF0dXMg PSBJOTE1X1JFQURfTk9UUkFDRShjaF9jdGwpOwpAQCAtOTI2LDcgKzkyNCw2IEBAIGRvbmU6CiAJ cmV0ID0gcmVjdl9ieXRlczsKIG91dDoKIAlwbV9xb3NfdXBkYXRlX3JlcXVlc3QoJmRldl9wcml2 LT5wbV9xb3MsIFBNX1FPU19ERUZBVUxUX1ZBTFVFKTsKLQlpbnRlbF9hdXhfZGlzcGxheV9ydW50 aW1lX3B1dChkZXZfcHJpdik7CiAKIAlpZiAodmRkKQogCQllZHBfcGFuZWxfdmRkX29mZihpbnRl bF9kcCwgZmFsc2UpOwpAQCAtMTc4NCw3ICsxNzgxLDcgQEAgc3RhdGljIGJvb2wgZWRwX3BhbmVs X3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWlmIChlZHBfaGF2ZV9wYW5lbF92 ZGQoaW50ZWxfZHApKQogCQlyZXR1cm4gbmVlZF90b19kaXNhYmxlOwogCi0JcG93ZXJfZG9tYWlu ID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKKwlwb3dl cl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNv ZGVyKTsKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsK IAogCURSTV9ERUJVR19LTVMoIlR1cm5pbmcgZURQIHBvcnQgJWMgVkREIG9uXG4iLApAQCAtMTg3 NCw3ICsxODcxLDcgQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQogCWlmICgocHAgJiBQT1dFUl9UQVJHRVRfT04pID09IDApCiAJ CWludGVsX2RwLT5sYXN0X3Bvd2VyX2N5Y2xlID0gamlmZmllczsKIAotCXBvd2VyX2RvbWFpbiA9 IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7CisJcG93ZXJf ZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rl cik7CiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7CiB9 CiAKQEAgLTIwMjUsNyArMjAyMiw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vZmYoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKIAl3YWl0X3BhbmVsX29mZihpbnRlbF9kcCk7CiAKIAkvKiBX ZSBnb3QgYSByZWZlcmVuY2Ugd2hlbiB3ZSBlbmFibGVkIHRoZSBWREQuICovCi0JcG93ZXJfZG9t YWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKKwlw b3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9l bmNvZGVyKTsKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWlu KTsKIH0KIApAQCAtNDc2NSwyNiArNDc2Miw2IEBAIGludGVsX2RwX3Vuc2V0X2VkaWQoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKIAlpbnRlbF9kcC0+aGFzX2F1ZGlvID0gZmFsc2U7CiB9CiAK LXN0YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCi1pbnRlbF9kcF9wb3dlcl9n ZXQoc3RydWN0IGludGVsX2RwICpkcCkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciA9ICZkcF90b19kaWdfcG9ydChkcCktPmJhc2U7Ci0JZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2Vy X2RvbWFpbiBwb3dlcl9kb21haW47Ci0KLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3Bv cnRfcG93ZXJfZG9tYWluKGVuY29kZXIpOwotCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpLCBwb3dlcl9kb21haW4pOwotCi0JcmV0dXJuIHBvd2VyX2Rv bWFpbjsKLX0KLQotc3RhdGljIHZvaWQKLWludGVsX2RwX3Bvd2VyX3B1dChzdHJ1Y3QgaW50ZWxf ZHAgKmRwLAotCQkgICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFp bikKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChk cCktPmJhc2U7Ci0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9faTkxNShlbmNvZGVyLT5iYXNl LmRldiksIHBvd2VyX2RvbWFpbik7Ci19Ci0KIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzCiBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9v bCBmb3JjZSkKIHsKQEAgLTQ4MDgsNyArNDc4NSw4IEBAIGludGVsX2RwX2RldGVjdChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCQlyZXR1cm4gY29ubmVjdG9y X3N0YXR1c19kaXNjb25uZWN0ZWQ7CiAJfQogCi0JcG93ZXJfZG9tYWluID0gaW50ZWxfZHBfcG93 ZXJfZ2V0KGludGVsX2RwKTsKKwlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4 X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0 b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7CiAKIAkvKiBDYW4ndCBkaXNjb25uZWN0IGVEUCwg YnV0IHlvdSBjYW4gY2xvc2UgdGhlIGxpZC4uLiAqLwogCWlmIChpc19lZHAoaW50ZWxfZHApKQpA QCAtNDg1Myw3ICs0ODMxLDcgQEAgaW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCiAJfQogCiBvdXQ6Ci0JaW50ZWxfZHBfcG93ZXJfcHV0 KGludGVsX2RwLCBwb3dlcl9kb21haW4pOworCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHRvX2k5 MTUoZGV2KSwgcG93ZXJfZG9tYWluKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC00ODYyLDYg KzQ4NDAsNyBAQCBpbnRlbF9kcF9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25u ZWN0b3IpOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKS0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGludGVsX2VuY29kZXItPmJhc2UuZGV2KTsKIAllbnVtIGludGVsX2Rpc3Bs YXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKIAogCURSTV9ERUJVR19LTVMoIltDT05ORUNU T1I6JWQ6JXNdXG4iLApAQCAtNDg3MSwxMSArNDg1MCwxMiBAQCBpbnRlbF9kcF9mb3JjZShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCWlmIChjb25uZWN0b3ItPnN0YXR1cyAhPSBj b25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKIAkJcmV0dXJuOwogCi0JcG93ZXJfZG9tYWluID0g aW50ZWxfZHBfcG93ZXJfZ2V0KGludGVsX2RwKTsKKwlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNw bGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKTsKKwlpbnRlbF9kaXNwbGF5 X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKIAogCWludGVsX2RwX3NldF9lZGlk KGludGVsX2RwKTsKIAotCWludGVsX2RwX3Bvd2VyX3B1dChpbnRlbF9kcCwgcG93ZXJfZG9tYWlu KTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKIAog CWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCiAJCWludGVsX2Vu Y29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQ7CkBAIC01MDkxLDcgKzUwNzEs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCiAJICogaW5kZWZpbml0ZWx5LgogCSAqLwogCURSTV9ERUJVR19LTVMo IlZERCBsZWZ0IG9uIGJ5IEJJT1MsIGFkanVzdGluZyBzdGF0ZSB0cmFja2luZ1xuIik7Ci0JcG93 ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbigmaW50ZWxfZGlnX3Bv cnQtPmJhc2UpOworCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJf ZG9tYWluKCZpbnRlbF9kaWdfcG9ydC0+YmFzZSk7CiAJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQo ZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7CiAKIAllZHBfcGFuZWxfdmRkX3NjaGVkdWxlX29mZihp bnRlbF9kcCk7CkBAIC01MTcyLDcgKzUxNTIsNyBAQCBpbnRlbF9kcF9ocGRfcHVsc2Uoc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsIGJvb2wgbG9uZ19ocGQpCiAJCSAg ICAgIHBvcnRfbmFtZShpbnRlbF9kaWdfcG9ydC0+cG9ydCksCiAJCSAgICAgIGxvbmdfaHBkID8g ImxvbmciIDogInNob3J0Iik7CiAKLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRf cG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOworCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3Bs YXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwogCWludGVsX2Rpc3BsYXlf cG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwogCiAJaWYgKGxvbmdfaHBkKSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGE2OGI2Y2QuLjdkMTFhYTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC0xMTg4LDYgKzExODgsOCBAQCB2b2lkIGhzd19lbmFibGVfaXBz KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKIHZvaWQgaHN3X2Rpc2FibGVfaXBzKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKTsKIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KIGludGVs X2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIpOworZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgoraW50ZWxfZGlzcGxheV9w b3J0X2F1eF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Owogdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCiAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7CiB2 b2lkIGludGVsX21vZGVzZXRfcHJlY2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGRybV9maWxlICpmaWxlKTsKLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=