From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH 09/21] drm/msm/mdp5: subclass msm_mdss for mdp5 Date: Mon, 9 Jul 2018 13:31:45 -0400 Message-ID: <20180709173200.238457-10-seanpaul@chromium.org> References: <20180709173200.238457-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180709173200.238457-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, airlied-cv59FeDIM0c@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, dovizu-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+CgpTb0NzIGhhdmluZyBt ZHA1IG9yIGRwdSBoYXZlIGlkZW50aWNhbCB0cmVlIGxpa2UKZGV2aWNlIGhpZXJhcmNoeSB3aGVy ZSBNRFNTIHRvcCBsZXZlbCB3cmFwcGVyIG1hbmFnZXMKY29tbW9uIHBvd2VyIHJlc291cmNlcyBm b3IgYWxsIGNoaWxkIGRldmljZXMuCgpTdWJjbGFzcyBtc21fbWRzcyBzbyB0aGF0IG1zbV9tZHNz IGluY2x1ZGVzIGNvbW1vbiBkZWZpbmVzCmFuZCBtZHA1L2RwdSBtZHNzIGRlcml2YXRpb25zIHRv IGluY2x1ZGUgYW55IGV4dGVuc2lvbnMuCgpBZGQgbWRzcyBoZWxwZXIgaW50ZXJmYWNlIChtc21f bWRzc19mdW5jcykgdG8gbXNtX21kc3MKYmFzZSBmb3IgbWRwNS9kcHUgbWRzcyBzcGVjaWZpYyBp bXBsZW1lbnRhdGlvbiBjYWxscy4KClRoaXMgY2hhbmdlIHN1YmNsYXNzZXMgbXNtX21kc3MgZm9y IG1kcDUsIGRwdSBzcGVjaWZpYwpjaGFuZ2VzIHdpbGwgYmUgZG9uZSBzZXBhcmF0ZWx5LgoKQ2hh bmdlcyBpbiB2MzoKCS0gbm9uZQoKQ2hhbmdlcyBpbiB2MjoKCS0gZml4ZWQgaW5kZW50YXRpb24g Zm9yIGlycV9kb21haW5fYWRkX2xpbmVhciBjYWxsIChTZWFuIFBhdWwpCgpTaWduZWQtb2ZmLWJ5 OiBSYWplc2ggWWFkYXYgPHJ5YWRhdkBjb2RlYXVyb3JhLm9yZz4KUmV2aWV3ZWQtYnk6IFNlYW4g UGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpbc2VhbnBhdWwgcmViYXNlZCBvbiBtc20tbmV4 dCBhbmQgcmVzb2x2ZWQgY29uZmxpY3RzXQpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5w YXVsQGNocm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1 X21kc3MuYyB8IDE1NCArKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuYyAgICAgICAgICAgICB8ICAyMiArKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9rbXMuaCAgICAgICAgICAgICB8ICAxNyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2Vy dGlvbnMoKyksIDg0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9tZHA1L21kcDVfbWRzcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUv bWRwNV9tZHNzLmMKaW5kZXggZjJhMGRiN2E4YTAzLi4xY2M0ZTU3ZjAyMjYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jCkBAIC0yMCwxMiArMjAsMTAgQEAKICNp bmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibWRwNV9rbXMuaCIKIAotLyoKLSAqIElmIG5l ZWRlZCwgdGhpcyBjYW4gYmVjb21lIG1vcmUgc3BlY2lmaWM6IHNvbWV0aGluZyBsaWtlIHN0cnVj dCBtZHA1X21kc3MsCi0gKiB3aGljaCBjb250YWlucyBhICdzdHJ1Y3QgbXNtX21kc3MgYmFzZScg bWVtYmVyLgotICovCi1zdHJ1Y3QgbXNtX21kc3MgewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7 CisjZGVmaW5lIHRvX21kcDVfbWRzcyh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1kcDVfbWRz cywgYmFzZSkKKworc3RydWN0IG1kcDVfbWRzcyB7CisJc3RydWN0IG1zbV9tZHNzIGJhc2U7CiAK IAl2b2lkIF9faW9tZW0gKm1taW8sICp2YmlmOwogCkBAIC00MSwyMiArMzksMjIgQEAgc3RydWN0 IG1zbV9tZHNzIHsKIAl9IGlycWNvbnRyb2xsZXI7CiB9OwogCi1zdGF0aWMgaW5saW5lIHZvaWQg bWRzc193cml0ZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MsIHUzMiByZWcsIHUzMiBkYXRhKQorc3Rh dGljIGlubGluZSB2b2lkIG1kc3Nfd3JpdGUoc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzLCB1 MzIgcmVnLCB1MzIgZGF0YSkKIHsKLQltc21fd3JpdGVsKGRhdGEsIG1kc3MtPm1taW8gKyByZWcp OworCW1zbV93cml0ZWwoZGF0YSwgbWRwNV9tZHNzLT5tbWlvICsgcmVnKTsKIH0KIAotc3RhdGlj IGlubGluZSB1MzIgbWRzc19yZWFkKHN0cnVjdCBtc21fbWRzcyAqbWRzcywgdTMyIHJlZykKK3N0 YXRpYyBpbmxpbmUgdTMyIG1kc3NfcmVhZChzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MsIHUz MiByZWcpCiB7Ci0JcmV0dXJuIG1zbV9yZWFkbChtZHNzLT5tbWlvICsgcmVnKTsKKwlyZXR1cm4g bXNtX3JlYWRsKG1kcDVfbWRzcy0+bW1pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5f dCBtZHNzX2lycShpbnQgaXJxLCB2b2lkICphcmcpCiB7Ci0Jc3RydWN0IG1zbV9tZHNzICptZHNz ID0gYXJnOworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IGFyZzsKIAl1MzIgaW50cjsK IAotCWludHIgPSBtZHNzX3JlYWQobWRzcywgUkVHX01EU1NfSFdfSU5UUl9TVEFUVVMpOworCWlu dHIgPSBtZHNzX3JlYWQobWRwNV9tZHNzLCBSRUdfTURTU19IV19JTlRSX1NUQVRVUyk7CiAKIAlW RVJCKCJpbnRyPSUwOHgiLCBpbnRyKTsKIApAQCAtNjQsNyArNjIsNyBAQCBzdGF0aWMgaXJxcmV0 dXJuX3QgbWRzc19pcnEoaW50IGlycSwgdm9pZCAqYXJnKQogCQlpcnFfaHdfbnVtYmVyX3QgaHdp cnEgPSBmbHMoaW50cikgLSAxOwogCiAJCWdlbmVyaWNfaGFuZGxlX2lycShpcnFfZmluZF9tYXBw aW5nKAotCQkJCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluLCBod2lycSkpOworCQkJCW1kcDVf bWRzcy0+aXJxY29udHJvbGxlci5kb21haW4sIGh3aXJxKSk7CiAJCWludHIgJj0gfigxIDw8IGh3 aXJxKTsKIAl9CiAKQEAgLTg0LDE5ICs4MiwxOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWRzc19p cnEoaW50IGlycSwgdm9pZCAqYXJnKQogCiBzdGF0aWMgdm9pZCBtZHNzX2h3X21hc2tfaXJxKHN0 cnVjdCBpcnFfZGF0YSAqaXJxZCkKIHsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBpcnFfZGF0 YV9nZXRfaXJxX2NoaXBfZGF0YShpcnFkKTsKKwlzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3Mg PSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShpcnFkKTsKIAogCXNtcF9tYl9fYmVmb3JlX2F0 b21pYygpOwotCWNsZWFyX2JpdChpcnFkLT5od2lycSwgJm1kc3MtPmlycWNvbnRyb2xsZXIuZW5h YmxlZF9tYXNrKTsKKwljbGVhcl9iaXQoaXJxZC0+aHdpcnEsICZtZHA1X21kc3MtPmlycWNvbnRy b2xsZXIuZW5hYmxlZF9tYXNrKTsKIAlzbXBfbWJfX2FmdGVyX2F0b21pYygpOwogfQogCiBzdGF0 aWMgdm9pZCBtZHNzX2h3X3VubWFza19pcnEoc3RydWN0IGlycV9kYXRhICppcnFkKQogewotCXN0 cnVjdCBtc21fbWRzcyAqbWRzcyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycWQpOwor CXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRh KGlycWQpOwogCiAJc21wX21iX19iZWZvcmVfYXRvbWljKCk7Ci0Jc2V0X2JpdChpcnFkLT5od2ly cSwgJm1kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrKTsKKwlzZXRfYml0KGlycWQtPmh3 aXJxLCAmbWRwNV9tZHNzLT5pcnFjb250cm9sbGVyLmVuYWJsZWRfbWFzayk7CiAJc21wX21iX19h ZnRlcl9hdG9taWMoKTsKIH0KIApAQCAtMTA5LDEzICsxMDcsMTMgQEAgc3RhdGljIHN0cnVjdCBp cnFfY2hpcCBtZHNzX2h3X2lycV9jaGlwID0gewogc3RhdGljIGludCBtZHNzX2h3X2lycWRvbWFp bl9tYXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEsCiAJCQkJIGlycV9o d19udW1iZXJfdCBod2lycSkKIHsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBkLT5ob3N0X2Rh dGE7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gZC0+aG9zdF9kYXRhOwogCiAJaWYg KCEoVkFMSURfSVJRUyAmICgxIDw8IGh3aXJxKSkpCiAJCXJldHVybiAtRVBFUk07CiAKIAlpcnFf c2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCAmbWRzc19od19pcnFfY2hpcCwgaGFuZGxlX2xldmVs X2lycSk7Ci0JaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBtZHNzKTsKKwlpcnFfc2V0X2NoaXBfZGF0 YShpcnEsIG1kcDVfbWRzcyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNiw5MCArMTI0LDk5IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbWRzc19od19pcnFkb21haW5fb3Bz ID0gewogfTsKIAogCi1zdGF0aWMgaW50IG1kc3NfaXJxX2RvbWFpbl9pbml0KHN0cnVjdCBtc21f bWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbWRzc19pcnFfZG9tYWluX2luaXQoc3RydWN0IG1kcDVf bWRzcyAqbWRwNV9tZHNzKQogewotCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kc3MtPmRldi0+ZGV2 OworCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kcDVfbWRzcy0+YmFzZS5kZXYtPmRldjsKIAlzdHJ1 Y3QgaXJxX2RvbWFpbiAqZDsKIAogCWQgPSBpcnFfZG9tYWluX2FkZF9saW5lYXIoZGV2LT5vZl9u b2RlLCAzMiwgJm1kc3NfaHdfaXJxZG9tYWluX29wcywKLQkJCQkgIG1kc3MpOworCQkJCSAgbWRw NV9tZHNzKTsKIAlpZiAoIWQpIHsKIAkJZGV2X2VycihkZXYsICJtZHNzIGlycSBkb21haW4gYWRk IGZhaWxlZFxuIik7CiAJCXJldHVybiAtRU5YSU87CiAJfQogCi0JbWRzcy0+aXJxY29udHJvbGxl ci5lbmFibGVkX21hc2sgPSAwOwotCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gZDsKKwlt ZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrID0gMDsKKwltZHA1X21kc3MtPmly cWNvbnRyb2xsZXIuZG9tYWluID0gZDsKIAogCXJldHVybiAwOwogfQogCi1pbnQgbXNtX21kc3Nf ZW5hYmxlKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbWRwNV9tZHNzX2VuYWJs ZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpCiB7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNz ID0gdG9fbWRwNV9tZHNzKG1kc3MpOwogCURCRygiIik7CiAKLQljbGtfcHJlcGFyZV9lbmFibGUo bWRzcy0+YWhiX2Nsayk7Ci0JaWYgKG1kc3MtPmF4aV9jbGspCi0JCWNsa19wcmVwYXJlX2VuYWJs ZShtZHNzLT5heGlfY2xrKTsKLQlpZiAobWRzcy0+dnN5bmNfY2xrKQotCQljbGtfcHJlcGFyZV9l bmFibGUobWRzcy0+dnN5bmNfY2xrKTsKKwljbGtfcHJlcGFyZV9lbmFibGUobWRwNV9tZHNzLT5h aGJfY2xrKTsKKwlpZiAobWRwNV9tZHNzLT5heGlfY2xrKQorCQljbGtfcHJlcGFyZV9lbmFibGUo bWRwNV9tZHNzLT5heGlfY2xrKTsKKwlpZiAobWRwNV9tZHNzLT52c3luY19jbGspCisJCWNsa19w cmVwYXJlX2VuYWJsZShtZHA1X21kc3MtPnZzeW5jX2Nsayk7CiAKIAlyZXR1cm4gMDsKIH0KIAot aW50IG1zbV9tZHNzX2Rpc2FibGUoc3RydWN0IG1zbV9tZHNzICptZHNzKQorc3RhdGljIGludCBt ZHA1X21kc3NfZGlzYWJsZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpCiB7CisJc3RydWN0IG1kcDVf bWRzcyAqbWRwNV9tZHNzID0gdG9fbWRwNV9tZHNzKG1kc3MpOwogCURCRygiIik7CiAKLQlpZiAo bWRzcy0+dnN5bmNfY2xrKQotCQljbGtfZGlzYWJsZV91bnByZXBhcmUobWRzcy0+dnN5bmNfY2xr KTsKLQlpZiAobWRzcy0+YXhpX2NsaykKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kc3MtPmF4 aV9jbGspOwotCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHNzLT5haGJfY2xrKTsKKwlpZiAobWRw NV9tZHNzLT52c3luY19jbGspCisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHA1X21kc3MtPnZz eW5jX2Nsayk7CisJaWYgKG1kcDVfbWRzcy0+YXhpX2NsaykKKwkJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKG1kcDVfbWRzcy0+YXhpX2Nsayk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kcDVfbWRz cy0+YWhiX2Nsayk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtc21fbWRzc19nZXRf Y2xvY2tzKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbXNtX21kc3NfZ2V0X2Ns b2NrcyhzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MpCiB7Ci0Jc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShtZHNzLT5kZXYtPmRldik7CisJc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiA9CisJCQl0b19wbGF0Zm9ybV9kZXZpY2UobWRwNV9tZHNz LT5iYXNlLmRldi0+ZGV2KTsKIAotCW1kc3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAi aWZhY2UiKTsKLQlpZiAoSVNfRVJSKG1kc3MtPmFoYl9jbGspKQotCQltZHNzLT5haGJfY2xrID0g TlVMTDsKKwltZHA1X21kc3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiaWZhY2UiKTsK KwlpZiAoSVNfRVJSKG1kcDVfbWRzcy0+YWhiX2NsaykpCisJCW1kcDVfbWRzcy0+YWhiX2NsayA9 IE5VTEw7CiAKLQltZHNzLT5heGlfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImJ1cyIpOwotCWlm IChJU19FUlIobWRzcy0+YXhpX2NsaykpCi0JCW1kc3MtPmF4aV9jbGsgPSBOVUxMOworCW1kcDVf bWRzcy0+YXhpX2NsayA9IG1zbV9jbGtfZ2V0KHBkZXYsICJidXMiKTsKKwlpZiAoSVNfRVJSKG1k cDVfbWRzcy0+YXhpX2NsaykpCisJCW1kcDVfbWRzcy0+YXhpX2NsayA9IE5VTEw7CiAKLQltZHNz LT52c3luY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKLQlpZiAoSVNfRVJSKG1k c3MtPnZzeW5jX2NsaykpCi0JCW1kc3MtPnZzeW5jX2NsayA9IE5VTEw7CisJbWRwNV9tZHNzLT52 c3luY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKKwlpZiAoSVNfRVJSKG1kcDVf bWRzcy0+dnN5bmNfY2xrKSkKKwkJbWRwNV9tZHNzLT52c3luY19jbGsgPSBOVUxMOwogCiAJcmV0 dXJuIDA7CiB9CiAKLXZvaWQgbXNtX21kc3NfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQorc3RhdGljIHZvaWQgbWRwNV9tZHNzX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldikK IHsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlz dHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOworCXN0cnVjdCBtZHA1X21kc3MgKm1k cDVfbWRzcyA9IHRvX21kcDVfbWRzcyhwcml2LT5tZHNzKTsKIAotCWlmICghbWRzcykKKwlpZiAo IW1kcDVfbWRzcykKIAkJcmV0dXJuOwogCi0JaXJxX2RvbWFpbl9yZW1vdmUobWRzcy0+aXJxY29u dHJvbGxlci5kb21haW4pOwotCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gTlVMTDsKKwlp cnFfZG9tYWluX3JlbW92ZShtZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluKTsKKwltZHA1 X21kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gTlVMTDsKIAotCXJlZ3VsYXRvcl9kaXNhYmxl KG1kc3MtPnZkZCk7CisJcmVndWxhdG9yX2Rpc2FibGUobWRwNV9tZHNzLT52ZGQpOwogCiAJcG1f cnVudGltZV9kaXNhYmxlKGRldi0+ZGV2KTsKIH0KIAotaW50IG1zbV9tZHNzX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXNtX21kc3NfZnVuY3MgbWRz c19mdW5jcyA9IHsKKwkuZW5hYmxlCT0gbWRwNV9tZHNzX2VuYWJsZSwKKwkuZGlzYWJsZSA9IG1k cDVfbWRzc19kaXNhYmxlLAorCS5kZXN0cm95ID0gbWRwNV9tZHNzX2Rlc3Ryb3ksCit9OworCitp bnQgbWRwNV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldi0+ZGV2KTsKIAlzdHJ1 Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgbXNt X21kc3MgKm1kc3M7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzOwogCWludCByZXQ7CiAK IAlEQkcoIiIpOwpAQCAtMjE3LDQwICsyMjQsNDAgQEAgaW50IG1zbV9tZHNzX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAlpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+ZGV2 LT5vZl9ub2RlLCAicWNvbSxtZHNzIikpCiAJCXJldHVybiAwOwogCi0JbWRzcyA9IGRldm1fa3ph bGxvYyhkZXYtPmRldiwgc2l6ZW9mKCptZHNzKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtZHNzKSB7 CisJbWRwNV9tZHNzID0gZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKm1kcDVfbWRzcyks IEdGUF9LRVJORUwpOworCWlmICghbWRwNV9tZHNzKSB7CiAJCXJldCA9IC1FTk9NRU07CiAJCWdv dG8gZmFpbDsKIAl9CiAKLQltZHNzLT5kZXYgPSBkZXY7CisJbWRwNV9tZHNzLT5iYXNlLmRldiA9 IGRldjsKIAotCW1kc3MtPm1taW8gPSBtc21faW9yZW1hcChwZGV2LCAibWRzc19waHlzIiwgIk1E U1MiKTsKLQlpZiAoSVNfRVJSKG1kc3MtPm1taW8pKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRzcy0+ bW1pbyk7CisJbWRwNV9tZHNzLT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kc3NfcGh5cyIs ICJNRFNTIik7CisJaWYgKElTX0VSUihtZHA1X21kc3MtPm1taW8pKSB7CisJCXJldCA9IFBUUl9F UlIobWRwNV9tZHNzLT5tbWlvKTsKIAkJZ290byBmYWlsOwogCX0KIAotCW1kc3MtPnZiaWYgPSBt c21faW9yZW1hcChwZGV2LCAidmJpZl9waHlzIiwgIlZCSUYiKTsKLQlpZiAoSVNfRVJSKG1kc3Mt PnZiaWYpKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRzcy0+dmJpZik7CisJbWRwNV9tZHNzLT52Ymlm ID0gbXNtX2lvcmVtYXAocGRldiwgInZiaWZfcGh5cyIsICJWQklGIik7CisJaWYgKElTX0VSUiht ZHA1X21kc3MtPnZiaWYpKSB7CisJCXJldCA9IFBUUl9FUlIobWRwNV9tZHNzLT52YmlmKTsKIAkJ Z290byBmYWlsOwogCX0KIAotCXJldCA9IG1zbV9tZHNzX2dldF9jbG9ja3MobWRzcyk7CisJcmV0 ID0gbXNtX21kc3NfZ2V0X2Nsb2NrcyhtZHA1X21kc3MpOwogCWlmIChyZXQpIHsKIAkJZGV2X2Vy cihkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgY2xvY2tzOiAlZFxuIiwgcmV0KTsKIAkJZ290byBm YWlsOwogCX0KIAogCS8qIFJlZ3VsYXRvciB0byBlbmFibGUgR0RTQ3MgaW4gZG93bnN0cmVhbSBr ZXJuZWxzICovCi0JbWRzcy0+dmRkID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldi0+ZGV2LCAidmRk Iik7Ci0JaWYgKElTX0VSUihtZHNzLT52ZGQpKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRzcy0+dmRk KTsKKwltZHA1X21kc3MtPnZkZCA9IGRldm1fcmVndWxhdG9yX2dldChkZXYtPmRldiwgInZkZCIp OworCWlmIChJU19FUlIobWRwNV9tZHNzLT52ZGQpKSB7CisJCXJldCA9IFBUUl9FUlIobWRwNV9t ZHNzLT52ZGQpOwogCQlnb3RvIGZhaWw7CiAJfQogCi0JcmV0ID0gcmVndWxhdG9yX2VuYWJsZSht ZHNzLT52ZGQpOworCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUobWRwNV9tZHNzLT52ZGQpOwogCWlm IChyZXQpIHsKIAkJZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBlbmFibGUgcmVndWxhdG9y IHZkZDogJWRcbiIsCiAJCQlyZXQpOwpAQCAtMjU4LDI1ICsyNjUsMjYgQEAgaW50IG1zbV9tZHNz X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAKIAlyZXQgPSBkZXZtX3JlcXVlc3Rf aXJxKGRldi0+ZGV2LCBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApLAotCQkJICAgICAgIG1kc3Nf aXJxLCAwLCAibWRzc19pc3IiLCBtZHNzKTsKKwkJCSAgICAgICBtZHNzX2lycSwgMCwgIm1kc3Nf aXNyIiwgbWRwNV9tZHNzKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LT5kZXYsICJmYWls ZWQgdG8gaW5pdCBpcnE6ICVkXG4iLCByZXQpOwogCQlnb3RvIGZhaWxfaXJxOwogCX0KIAotCXJl dCA9IG1kc3NfaXJxX2RvbWFpbl9pbml0KG1kc3MpOworCXJldCA9IG1kc3NfaXJxX2RvbWFpbl9p bml0KG1kcDVfbWRzcyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVk IHRvIGluaXQgc3ViLWJsb2NrIGlycXM6ICVkXG4iLCByZXQpOwogCQlnb3RvIGZhaWxfaXJxOwog CX0KIAotCXByaXYtPm1kc3MgPSBtZHNzOworCW1kcDVfbWRzcy0+YmFzZS5mdW5jcyA9ICZtZHNz X2Z1bmNzOworCXByaXYtPm1kc3MgPSAmbWRwNV9tZHNzLT5iYXNlOwogCiAJcG1fcnVudGltZV9l bmFibGUoZGV2LT5kZXYpOwogCiAJcmV0dXJuIDA7CiBmYWlsX2lycToKLQlyZWd1bGF0b3JfZGlz YWJsZShtZHNzLT52ZGQpOworCXJlZ3VsYXRvcl9kaXNhYmxlKG1kcDVfbWRzcy0+dmRkKTsKIGZh aWw6CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKaW5kZXggN2Y3MzIxZWI1MzEy Li4yNjA4ZDNmNzc5NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCkBAIC0yMDgsNiArMjA4LDcgQEAg c3RhdGljIGludCBtc21fZHJtX3VuaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGRy bV9kZXZpY2UgKmRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IG1zbV9rbXMg KmttcyA9IHByaXYtPmttczsKKwlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwog CXN0cnVjdCBtc21fdmJsYW5rX2N0cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJsOwog CXN0cnVjdCB2YmxhbmtfZXZlbnQgKnZibF9ldiwgKnRtcDsKIApAQCAtMjU4LDcgKzI1OSw4IEBA IHN0YXRpYyBpbnQgbXNtX2RybV91bmluaXQoc3RydWN0IGRldmljZSAqZGV2KQogCiAJY29tcG9u ZW50X3VuYmluZF9hbGwoZGV2LCBkZGV2KTsKIAotCW1zbV9tZHNzX2Rlc3Ryb3koZGRldik7CisJ aWYgKG1kc3MgJiYgbWRzcy0+ZnVuY3MpCisJCW1kc3MtPmZ1bmNzLT5kZXN0cm95KGRkZXYpOwog CiAJZGRldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOwogCWRybV9kZXZfdW5yZWYoZGRldik7CkBAIC0z NTcsNiArMzU5LDcgQEAgc3RhdGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJ2KQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2OwogCXN0 cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0IG1zbV9rbXMgKmttczsKKwlzdHJ1 Y3QgbXNtX21kc3MgKm1kc3M7CiAJaW50IHJldDsKIAogCWRkZXYgPSBkcm1fZGV2X2FsbG9jKGRy diwgZGV2KTsKQEAgLTM3NiwxMyArMzc5LDE1IEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kcml2ZXIgKmRydikKIAlkZGV2LT5kZXZfcHJp dmF0ZSA9IHByaXY7CiAJcHJpdi0+ZGV2ID0gZGRldjsKIAotCXJldCA9IG1zbV9tZHNzX2luaXQo ZGRldik7CisJcmV0ID0gbWRwNV9tZHNzX2luaXQoZGRldik7CiAJaWYgKHJldCkgewogCQlrZnJl ZShwcml2KTsKIAkJZHJtX2Rldl91bnJlZihkZGV2KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwlt ZHNzID0gcHJpdi0+bWRzczsKKwogCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUo Im1zbSIsIDApOwogCXByaXYtPmF0b21pY193cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJt c206YXRvbWljIiwgMCk7CiAKQEAgLTM5Niw3ICs0MDEsOCBAQCBzdGF0aWMgaW50IG1zbV9kcm1f aW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJpdmVyICpkcnYpCiAJLyogQmlu ZCBhbGwgb3VyIHN1Yi1jb21wb25lbnRzOiAqLwogCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChk ZXYsIGRkZXYpOwogCWlmIChyZXQpIHsKLQkJbXNtX21kc3NfZGVzdHJveShkZGV2KTsKKwkJaWYg KG1kc3MgJiYgbWRzcy0+ZnVuY3MpCisJCQltZHNzLT5mdW5jcy0+ZGVzdHJveShkZGV2KTsKIAkJ a2ZyZWUocHJpdik7CiAJCWRybV9kZXZfdW5yZWYoZGRldik7CiAJCXJldHVybiByZXQ7CkBAIC05 MjQsMTEgKzkzMCwxMiBAQCBzdGF0aWMgaW50IG1zbV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRl OworCXN0cnVjdCBtc21fbWRzcyAqbWRzcyA9IHByaXYtPm1kc3M7CiAKIAlEQkcoIiIpOwogCi0J aWYgKHByaXYtPm1kc3MpCi0JCXJldHVybiBtc21fbWRzc19kaXNhYmxlKHByaXYtPm1kc3MpOwor CWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQorCQlyZXR1cm4gbWRzcy0+ZnVuY3MtPmRpc2FibGUo bWRzcyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkzNywxMSArOTQ0LDEyIEBAIHN0YXRpYyBpbnQg bXNtX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBtc21fZHJtX3ByaXZh dGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBw cml2LT5tZHNzOwogCiAJREJHKCIiKTsKIAotCWlmIChwcml2LT5tZHNzKQotCQlyZXR1cm4gbXNt X21kc3NfZW5hYmxlKHByaXYtPm1kc3MpOworCWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQorCQly ZXR1cm4gbWRzcy0+ZnVuY3MtPmVuYWJsZShtZHNzKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9rbXMuaAppbmRleCBkZmQ5Mjk0N2RlMmMuLjc2YzE0MjIxZmZkZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fa21zLmgKQEAgLTg2LDkgKzg2LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtc21fa21zX2lu aXQoc3RydWN0IG1zbV9rbXMgKmttcywKIAogc3RydWN0IG1zbV9rbXMgKm1kcDRfa21zX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBzdHJ1Y3QgbXNtX2ttcyAqbWRwNV9rbXNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWludCBtc21fbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwotdm9pZCBtc21fbWRzc19kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OwotaW50IG1zbV9tZHNzX2VuYWJsZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpOwotaW50IG1zbV9t ZHNzX2Rpc2FibGUoc3RydWN0IG1zbV9tZHNzICptZHNzKTsKKworc3RydWN0IG1zbV9tZHNzX2Z1 bmNzIHsKKwlpbnQgKCplbmFibGUpKHN0cnVjdCBtc21fbWRzcyAqbWRzcyk7CisJaW50ICgqZGlz YWJsZSkoc3RydWN0IG1zbV9tZHNzICptZHNzKTsKKwl2b2lkICgqZGVzdHJveSkoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Cit9OworCitzdHJ1Y3QgbXNtX21kc3MgeworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXY7CisJY29uc3Qgc3RydWN0IG1zbV9tZHNzX2Z1bmNzICpmdW5jczsKK307CisKK2lu dCBtZHA1X21kc3NfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogI2VuZGlmIC8qIF9f TVNNX0tNU19IX18gKi8KLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAv IENocm9taXVtIE9TCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJl bm8K