From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v3 1/6] drm/i915: Store aux power domain in intel_dp Date: Wed, 22 Feb 2017 08:34:26 +0200 Message-ID: <20170222063431.10060-2-ander.conselvan.de.oliveira@intel.com> References: <20170222063431.10060-1-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 59C1D6E762 for ; Wed, 22 Feb 2017 06:34:39 +0000 (UTC) In-Reply-To: <20170222063431.10060-1-ander.conselvan.de.oliveira@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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org VGhlIGF1eCBwb3dlciBkb21haW4gb25seSBtYWtlcyBzZW5zZSBpbiB0aGUgRFAgY29kZS4gU3Rv cmluZyBpdCBpbgpzdHJ1Y3QgaW50ZWxfZHAgYXZvaWRzIHNvbWUgaW5kaXJlY3Rpb24uCgp2Mjog UmViYXNlClNpZ25lZC1vZmYtYnk6IEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIu Y29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8 aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgfCA1MCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgNjEgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMyArLQogMyBm aWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZjZmZWI5My4uODBjZmI2NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNTU4NywyNiArNTU4Nyw2IEBAIHN0YXRpYyBl bnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvcnRfdG9fcG93ZXJfZG9tYWluKGVudW0g cG9ydCBwb3J0KQogCX0KIH0KIAotc3RhdGljIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21h aW4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGVudW0gcG9ydCBwb3J0KQotewotCXN3aXRjaCAo cG9ydCkgewotCWNhc2UgUE9SVF9BOgotCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwotCWNh c2UgUE9SVF9COgotCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9COwotCWNhc2UgUE9SVF9DOgot CQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9DOwotCWNhc2UgUE9SVF9EOgotCQlyZXR1cm4gUE9X RVJfRE9NQUlOX0FVWF9EOwotCWNhc2UgUE9SVF9FOgotCQkvKiBGSVhNRTogQ2hlY2sgVkJUIGZv ciBhY3R1YWwgd2lyaW5nIG9mIFBPUlQgRSAqLwotCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9E OwotCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwb3J0KTsKLQkJcmV0dXJuIFBPV0VSX0RPTUFJ Tl9BVVhfQTsKLQl9Ci19Ci0KIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KIGludGVs X2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIpCiB7CkBAIC01NjM0LDM2ICs1NjE0LDYgQEAgaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2Vy X2RvbWFpbihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIAl9CiB9CiAKLWVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KLWludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93 ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQotewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0OwotCi0J c3dpdGNoIChpbnRlbF9lbmNvZGVyLT50eXBlKSB7Ci0JY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9X TjoKLQljYXNlIElOVEVMX09VVFBVVF9IRE1JOgotCQkvKgotCQkgKiBPbmx5IERESSBwbGF0Zm9y bXMgc2hvdWxkIGV2ZXIgdXNlIHRoZXNlIG91dHB1dCB0eXBlcy4KLQkJICogV2UgY2FuIGdldCBo ZXJlIGFmdGVyIHRoZSBIRE1JIGRldGVjdCBjb2RlIGhhcyBhbHJlYWR5IHNldAotCQkgKiB0aGUg dHlwZSBvZiB0aGUgc2hhcmVkIGVuY29kZXIuIFNpbmNlIHdlIGNhbid0IGJlIHN1cmUKLQkJICog d2hhdCdzIHRoZSBzdGF0dXMgb2YgdGhlIGdpdmVuIGNvbm5lY3RvcnMsIHBsYXkgc2FmZSBhbmQK LQkJICogcnVuIHRoZSBEUCBkZXRlY3Rpb24gdG9vLgotCQkgKi8KLQkJV0FSTl9PTl9PTkNFKCFI QVNfRERJKGRldl9wcml2KSk7Ci0JY2FzZSBJTlRFTF9PVVRQVVRfRFA6Ci0JY2FzZSBJTlRFTF9P VVRQVVRfRURQOgotCQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmaW50ZWxfZW5j b2Rlci0+YmFzZSk7Ci0JCXJldHVybiBwb3J0X3RvX2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZGln X3BvcnQtPnBvcnQpOwotCWNhc2UgSU5URUxfT1VUUFVUX0RQX01TVDoKLQkJaW50ZWxfZGlnX3Bv cnQgPSBlbmNfdG9fbXN0KCZpbnRlbF9lbmNvZGVyLT5iYXNlKS0+cHJpbWFyeTsKLQkJcmV0dXJu IHBvcnRfdG9fYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9kaWdfcG9ydC0+cG9ydCk7Ci0JZGVmYXVs dDoKLQkJTUlTU0lOR19DQVNFKGludGVsX2VuY29kZXItPnR5cGUpOwotCQlyZXR1cm4gUE9XRVJf RE9NQUlOX0FVWF9BOwotCX0KLX0KLQogc3RhdGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5z KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggMDI0Nzk4YS4uMjU4YTMw ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC0zOTYsMTQgKzM5NiwxMiBAQCBzdGF0aWMg dm9pZCBwcHNfbG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCXN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0JZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFp biBwb3dlcl9kb21haW47CiAKIAkvKgogCSAqIFNlZSB2bHZfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0 KCkgd2h5IHdlIG5lZWQKIAkgKiBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2UgaGVyZS4KIAkgKi8K LQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihlbmNv ZGVyKTsKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsK KwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgaW50ZWxfZHAtPmF1eF9wb3dlcl9k b21haW4pOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiB9CkBAIC00MTQs MTIgKzQxMiwxMCBAQCBzdGF0aWMgdm9pZCBwcHNfdW5sb2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQt PmJhc2U7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQllbnVtIGlu dGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKIAogCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPnBwc19tdXRleCk7CiAKLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3Bv cnRfYXV4X3Bvd2VyX2RvbWFpbihlbmNvZGVyKTsKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChk ZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJp diwgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4pOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMjAw NSw5ICsyMDAxLDcgQEAgc3RhdGljIGJvb2wgZWRwX3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJf ZG9tYWluIHBvd2VyX2RvbWFpbjsKIAl1MzIgcHA7CiAJaTkxNV9yZWdfdCBwcF9zdGF0X3JlZywg cHBfY3RybF9yZWc7CiAJYm9vbCBuZWVkX3RvX2Rpc2FibGUgPSAhaW50ZWxfZHAtPndhbnRfcGFu ZWxfdmRkOwpAQCAtMjAyMyw4ICsyMDE3LDcgQEAgc3RhdGljIGJvb2wgZWRwX3BhbmVsX3ZkZF9v bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWlmIChlZHBfaGF2ZV9wYW5lbF92ZGQoaW50 ZWxfZHApKQogCQlyZXR1cm4gbmVlZF90b19kaXNhYmxlOwogCi0JcG93ZXJfZG9tYWluID0gaW50 ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Ci0JaW50ZWxf ZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7CisJaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXQoZGV2X3ByaXYsIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsKIAogCURS TV9ERUJVR19LTVMoIlR1cm5pbmcgZURQIHBvcnQgJWMgVkREIG9uXG4iLAogCQkgICAgICBwb3J0 X25hbWUoaW50ZWxfZGlnX3BvcnQtPnBvcnQpKTsKQEAgLTIwODIsOCArMjA3NSw2IEBAIHN0YXRp YyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQogCQlkcF90b19kaWdfcG9y dChpbnRlbF9kcCk7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50 ZWxfZGlnX3BvcnQtPmJhc2U7Ci0JZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dl cl9kb21haW47CiAJdTMyIHBwOwogCWk5MTVfcmVnX3QgcHBfc3RhdF9yZWcsIHBwX2N0cmxfcmVn OwogCkBAIC0yMTEzLDggKzIxMDQsNyBAQCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX29mZl9z eW5jKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJaWYgKChwcCAmIFBBTkVMX1BPV0VSX09O KSA9PSAwKQogCQlpbnRlbF9kcC0+cGFuZWxfcG93ZXJfb2ZmX3RpbWUgPSBrdGltZV9nZXRfYm9v dHRpbWUoKTsKIAotCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJf ZG9tYWluKGludGVsX2VuY29kZXIpOwotCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2 LCBwb3dlcl9kb21haW4pOworCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBpbnRl bF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7CiB9CiAKIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKQEAgLTIyMjcsMTEgKzIyMTcsOCBAQCB2 b2lkIGludGVsX2VkcF9wYW5lbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiBzdGF0 aWMgdm9pZCBlZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7Ci0Jc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChp bnRlbF9kcCk7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxf ZGlnX3BvcnQtPmJhc2U7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2Rl dihpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwotCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwog CXUzMiBwcDsKIAlpOTE1X3JlZ190IHBwX2N0cmxfcmVnOwogCkBAIC0yMjYzLDggKzIyNTAsNyBA QCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJ d2FpdF9wYW5lbF9vZmYoaW50ZWxfZHApOwogCiAJLyogV2UgZ290IGEgcmVmZXJlbmNlIHdoZW4g d2UgZW5hYmxlZCB0aGUgVkRELiAqLwotCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9y dF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwotCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOworCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRl dl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7CiB9CiAKIHZvaWQgaW50ZWxfZWRw X3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpAQCAtNDU4NywxMSArNDU3Myw5 IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29u bmVjdG9yKQogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmludGVsX2Rp Z19wb3J0LT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsK IAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKLQllbnVtIGludGVsX2Rpc3BsYXlf cG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKIAl1OCBzaW5rX2lycV92ZWN0b3IgPSAwOwogCi0J cG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxf ZW5jb2Rlcik7Ci0JaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQodG9faTkxNShkZXYpLCBwb3dlcl9k b21haW4pOworCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KHRvX2k5MTUoZGV2KSwgaW50ZWxfZHAt PmF1eF9wb3dlcl9kb21haW4pOwogCiAJLyogQ2FuJ3QgZGlzY29ubmVjdCBlRFAsIGJ1dCB5b3Ug Y2FuIGNsb3NlIHRoZSBsaWQuLi4gKi8KIAlpZiAoaXNfZWRwKGludGVsX2RwKSkKQEAgLTQ2OTIs NyArNDY3Niw3IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq aW50ZWxfY29ubmVjdG9yKQogCWlmIChzdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0 ZWQgJiYgIWludGVsX2RwLT5pc19tc3QpCiAJCWludGVsX2RwX3Vuc2V0X2VkaWQoaW50ZWxfZHAp OwogCi0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9faTkxNShkZXYpLCBwb3dlcl9kb21haW4p OworCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHRvX2k5MTUoZGV2KSwgaW50ZWxfZHAtPmF1eF9w b3dlcl9kb21haW4pOwogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTQ3MjAsNyArNDcwNCw2IEBA IGludGVsX2RwX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7CiAJc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApLT5iYXNlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwotCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21h aW4gcG93ZXJfZG9tYWluOwogCiAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11cbiIs CiAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKQEAgLTQ3Mjks MTIgKzQ3MTIsMTEgQEAgaW50ZWxfZHBfZm9yY2Uoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIAlpZiAoY29ubmVjdG9yLT5zdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0 ZWQpCiAJCXJldHVybjsKIAotCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhf cG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwotCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRl dl9wcml2LCBwb3dlcl9kb21haW4pOworCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2 LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7CiAKIAlpbnRlbF9kcF9zZXRfZWRpZChpbnRl bF9kcCk7CiAKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWlu KTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgaW50ZWxfZHAtPmF1eF9wb3dl cl9kb21haW4pOwogCiAJaWYgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VE UCkKIAkJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9EUDsKQEAgLTQ5NjksNyAr NDk1MSw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2VkcF9wYW5lbF92ZGRfc2FuaXRpemUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCWVudW0gaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW4gcG93ZXJfZG9tYWluOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYt PnBwc19tdXRleCk7CiAKQEAgLTQ5ODMsOCArNDk2NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Vk cF9wYW5lbF92ZGRfc2FuaXRpemUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkgKiBpbmRl ZmluaXRlbHkuCiAJICovCiAJRFJNX0RFQlVHX0tNUygiVkREIGxlZnQgb24gYnkgQklPUywgYWRq dXN0aW5nIHN0YXRlIHRyYWNraW5nXG4iKTsKLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5 X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbigmaW50ZWxfZGlnX3BvcnQtPmJhc2UpOwotCWludGVsX2Rp c3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOworCWludGVsX2Rpc3BsYXlf cG93ZXJfZ2V0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7CiAKIAllZHBf cGFuZWxfdmRkX3NjaGVkdWxlX29mZihpbnRlbF9kcCk7CiB9CkBAIC01MDU4LDEwICs1MDM4LDgg QEAgZW51bSBpcnFyZXR1cm4KIGludGVsX2RwX2hwZF9wdWxzZShzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgYm9vbCBsb25nX2hwZCkKIHsKIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCWVudW0gaW50ZWxfZGlzcGxh eV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwogCWVudW0gaXJxcmV0dXJuIHJldCA9IElSUV9O T05FOwogCiAJaWYgKGludGVsX2RpZ19wb3J0LT5iYXNlLnR5cGUgIT0gSU5URUxfT1VUUFVUX0VE UCAmJgpAQCAtNTA5MCw4ICs1MDY4LDcgQEAgaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LCBib29sIGxvbmdfaHBkKQogCQlyZXR1cm4g SVJRX05PTkU7CiAJfQogCi0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9w b3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Ci0JaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2 X3ByaXYsIHBvd2VyX2RvbWFpbik7CisJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYs IGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsKIAogCWlmIChpbnRlbF9kcC0+aXNfbXN0KSB7 CiAJCWlmIChpbnRlbF9kcF9jaGVja19tc3Rfc3RhdHVzKGludGVsX2RwKSA9PSAtRUlOVkFMKSB7 CkBAIC01MTE5LDcgKzUwOTYsNyBAQCBpbnRlbF9kcF9ocGRfcHVsc2Uoc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsIGJvb2wgbG9uZ19ocGQpCiAJcmV0ID0gSVJRX0hB TkRMRUQ7CiAKIHB1dF9wb3dlcjoKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwg cG93ZXJfZG9tYWluKTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgaW50ZWxf ZHAtPmF1eF9wb3dlcl9kb21haW4pOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTU5MTAsMjcgKzU4 ODcsMzUgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKiBTZXQgdXAgdGhlIGhvdHBs dWcgcGluIGFuZCBhdXggcG93ZXIgZG9tYWluLiAqLwogc3RhdGljIHZvaWQKIGludGVsX2RwX2lu aXRfY29ubmVjdG9yX3BvcnRfaW5mbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9kaWdf cG9ydC0+YmFzZTsKKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0 LT5kcDsKIAotCS8qIFNldCB1cCB0aGUgaG90cGx1ZyBwaW4uICovCiAJc3dpdGNoIChpbnRlbF9k aWdfcG9ydC0+cG9ydCkgewogCWNhc2UgUE9SVF9BOgogCQllbmNvZGVyLT5ocGRfcGluID0gSFBE X1BPUlRfQTsKKwkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVY X0E7CiAJCWJyZWFrOwogCWNhc2UgUE9SVF9COgogCQllbmNvZGVyLT5ocGRfcGluID0gSFBEX1BP UlRfQjsKKwkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0I7 CiAJCWJyZWFrOwogCWNhc2UgUE9SVF9DOgogCQllbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRf QzsKKwkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0M7CiAJ CWJyZWFrOwogCWNhc2UgUE9SVF9EOgogCQllbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRfRDsK KwkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0Q7CiAJCWJy ZWFrOwogCWNhc2UgUE9SVF9FOgogCQllbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRfRTsKKwor CQkvKiBGSVhNRTogQ2hlY2sgVkJUIGZvciBhY3R1YWwgd2lyaW5nIG9mIFBPUlQgRSAqLworCQlp bnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9BVVhfRDsKIAkJYnJlYWs7 CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKGludGVsX2RpZ19wb3J0LT5wb3J0KTsKQEAgLTYw MTEsNiArNTk5Niw4IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQg PSB0cnVlOwogCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gMDsKIAorCWludGVsX2Rw X2luaXRfY29ubmVjdG9yX3BvcnRfaW5mbyhpbnRlbF9kaWdfcG9ydCk7CisKIAlpbnRlbF9kcF9h dXhfaW5pdChpbnRlbF9kcCk7CiAKIAlJTklUX0RFTEFZRURfV09SSygmaW50ZWxfZHAtPnBhbmVs X3ZkZF93b3JrLApAQCAtNjAyMyw4ICs2MDEwLDYgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJZWxzZQogCQlpbnRl bF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGU7 CiAKLQlpbnRlbF9kcF9pbml0X2Nvbm5lY3Rvcl9wb3J0X2luZm8oaW50ZWxfZGlnX3BvcnQpOwot CiAJLyogaW5pdCBNU1Qgb24gcG9ydHMgdGhhdCBjYW4gc3VwcG9ydCBpdCAqLwogCWlmIChIQVNf RFBfTVNUKGRldl9wcml2KSAmJiAhaXNfZWRwKGludGVsX2RwKSAmJgogCSAgICAocG9ydCA9PSBQ T1JUX0IgfHwgcG9ydCA9PSBQT1JUX0MgfHwgcG9ydCA9PSBQT1JUX0QpKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAppbmRleCA4MjFjNTdjLi4wOTZkNzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaApAQCAtOTUxLDYgKzk1MSw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7CiAJLyogc2luayBvciBi cmFuY2ggZGVzY3JpcHRvciAqLwogCXN0cnVjdCBpbnRlbF9kcF9kZXNjIGRlc2M7CiAJc3RydWN0 IGRybV9kcF9hdXggYXV4OworCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gYXV4X3Bv d2VyX2RvbWFpbjsKIAl1aW50OF90IHRyYWluX3NldFs0XTsKIAlpbnQgcGFuZWxfcG93ZXJfdXBf ZGVsYXk7CiAJaW50IHBhbmVsX3Bvd2VyX2Rvd25fZGVsYXk7CkBAIC0xNDIxLDggKzE0MjIsNiBA QCB2b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKIHZvaWQgaHN3 X2Rpc2FibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKIGVudW0gaW50ZWxfZGlzcGxh eV9wb3dlcl9kb21haW4KIGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwotZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2Rv bWFpbgotaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIpOwogdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWco c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZyk7CiAKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK