From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rajesh Yadav Subject: [DPU PATCH v3 02/12] drm/msm/mdp5: subclass msm_mdss for mdp5 Date: Mon, 14 May 2018 20:56:49 +0530 Message-ID: <1526311619-3309-3-git-send-email-ryadav@codeaurora.org> References: <1526311619-3309-1-git-send-email-ryadav@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1526311619-3309-1-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Rajesh Yadav , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org U29DcyBoYXZpbmcgbWRwNSBvciBkcHUgaGF2ZSBpZGVudGljYWwgdHJlZSBsaWtlCmRldmljZSBo aWVyYXJjaHkgd2hlcmUgTURTUyB0b3AgbGV2ZWwgd3JhcHBlciBtYW5hZ2VzCmNvbW1vbiBwb3dl ciByZXNvdXJjZXMgZm9yIGFsbCBjaGlsZCBkZXZpY2VzLgoKU3ViY2xhc3MgbXNtX21kc3Mgc28g dGhhdCBtc21fbWRzcyBpbmNsdWRlcyBjb21tb24gZGVmaW5lcwphbmQgbWRwNS9kcHUgbWRzcyBk ZXJpdmF0aW9ucyB0byBpbmNsdWRlIGFueSBleHRlbnNpb25zLgoKQWRkIG1kc3MgaGVscGVyIGlu dGVyZmFjZSAobXNtX21kc3NfZnVuY3MpIHRvIG1zbV9tZHNzCmJhc2UgZm9yIG1kcDUvZHB1IG1k c3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gY2FsbHMuCgpUaGlzIGNoYW5nZSBzdWJjbGFzc2Vz IG1zbV9tZHNzIGZvciBtZHA1LCBkcHUgc3BlY2lmaWMKY2hhbmdlcyB3aWxsIGJlIGRvbmUgc2Vw YXJhdGVseS4KCkNoYW5nZXMgaW4gdjM6CgktIG5vbmUKCkNoYW5nZXMgaW4gdjI6CgktIGZpeGVk IGluZGVudGF0aW9uIGZvciBpcnFfZG9tYWluX2FkZF9saW5lYXIgY2FsbCAoU2VhbiBQYXVsKQoK U2lnbmVkLW9mZi1ieTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+ClJldmll d2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X21kc3MuYyB8IDE1NCArKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAgICAgICAgIHwg IDIzICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaCAgICAgICAgICAgICB8ICAy MCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCA4NyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X21kc3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jCmluZGV4IGYyYTBk YjcuLjFjYzRlNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21k cDVfbWRzcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5j CkBAIC0yMCwxMiArMjAsMTAgQEAKICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibWRw NV9rbXMuaCIKIAotLyoKLSAqIElmIG5lZWRlZCwgdGhpcyBjYW4gYmVjb21lIG1vcmUgc3BlY2lm aWM6IHNvbWV0aGluZyBsaWtlIHN0cnVjdCBtZHA1X21kc3MsCi0gKiB3aGljaCBjb250YWlucyBh ICdzdHJ1Y3QgbXNtX21kc3MgYmFzZScgbWVtYmVyLgotICovCi1zdHJ1Y3QgbXNtX21kc3Mgewot CXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CisjZGVmaW5lIHRvX21kcDVfbWRzcyh4KSBjb250YWlu ZXJfb2YoeCwgc3RydWN0IG1kcDVfbWRzcywgYmFzZSkKKworc3RydWN0IG1kcDVfbWRzcyB7CisJ c3RydWN0IG1zbV9tZHNzIGJhc2U7CiAKIAl2b2lkIF9faW9tZW0gKm1taW8sICp2YmlmOwogCkBA IC00MSwyMiArMzksMjIgQEAgc3RydWN0IG1zbV9tZHNzIHsKIAl9IGlycWNvbnRyb2xsZXI7CiB9 OwogCi1zdGF0aWMgaW5saW5lIHZvaWQgbWRzc193cml0ZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3Ms IHUzMiByZWcsIHUzMiBkYXRhKQorc3RhdGljIGlubGluZSB2b2lkIG1kc3Nfd3JpdGUoc3RydWN0 IG1kcDVfbWRzcyAqbWRwNV9tZHNzLCB1MzIgcmVnLCB1MzIgZGF0YSkKIHsKLQltc21fd3JpdGVs KGRhdGEsIG1kc3MtPm1taW8gKyByZWcpOworCW1zbV93cml0ZWwoZGF0YSwgbWRwNV9tZHNzLT5t bWlvICsgcmVnKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgbWRzc19yZWFkKHN0cnVjdCBtc21f bWRzcyAqbWRzcywgdTMyIHJlZykKK3N0YXRpYyBpbmxpbmUgdTMyIG1kc3NfcmVhZChzdHJ1Y3Qg bWRwNV9tZHNzICptZHA1X21kc3MsIHUzMiByZWcpCiB7Ci0JcmV0dXJuIG1zbV9yZWFkbChtZHNz LT5tbWlvICsgcmVnKTsKKwlyZXR1cm4gbXNtX3JlYWRsKG1kcDVfbWRzcy0+bW1pbyArIHJlZyk7 CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBtZHNzX2lycShpbnQgaXJxLCB2b2lkICphcmcpCiB7 Ci0Jc3RydWN0IG1zbV9tZHNzICptZHNzID0gYXJnOworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVf bWRzcyA9IGFyZzsKIAl1MzIgaW50cjsKIAotCWludHIgPSBtZHNzX3JlYWQobWRzcywgUkVHX01E U1NfSFdfSU5UUl9TVEFUVVMpOworCWludHIgPSBtZHNzX3JlYWQobWRwNV9tZHNzLCBSRUdfTURT U19IV19JTlRSX1NUQVRVUyk7CiAKIAlWRVJCKCJpbnRyPSUwOHgiLCBpbnRyKTsKIApAQCAtNjQs NyArNjIsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWRzc19pcnEoaW50IGlycSwgdm9pZCAqYXJn KQogCQlpcnFfaHdfbnVtYmVyX3QgaHdpcnEgPSBmbHMoaW50cikgLSAxOwogCiAJCWdlbmVyaWNf aGFuZGxlX2lycShpcnFfZmluZF9tYXBwaW5nKAotCQkJCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9t YWluLCBod2lycSkpOworCQkJCW1kcDVfbWRzcy0+aXJxY29udHJvbGxlci5kb21haW4sIGh3aXJx KSk7CiAJCWludHIgJj0gfigxIDw8IGh3aXJxKTsKIAl9CiAKQEAgLTg0LDE5ICs4MiwxOSBAQCBz dGF0aWMgaXJxcmV0dXJuX3QgbWRzc19pcnEoaW50IGlycSwgdm9pZCAqYXJnKQogCiBzdGF0aWMg dm9pZCBtZHNzX2h3X21hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAqaXJxZCkKIHsKLQlzdHJ1Y3Qg bXNtX21kc3MgKm1kc3MgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShpcnFkKTsKKwlzdHJ1 Y3QgbWRwNV9tZHNzICptZHA1X21kc3MgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShpcnFk KTsKIAogCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwotCWNsZWFyX2JpdChpcnFkLT5od2lycSwg Jm1kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrKTsKKwljbGVhcl9iaXQoaXJxZC0+aHdp cnEsICZtZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrKTsKIAlzbXBfbWJfX2Fm dGVyX2F0b21pYygpOwogfQogCiBzdGF0aWMgdm9pZCBtZHNzX2h3X3VubWFza19pcnEoc3RydWN0 IGlycV9kYXRhICppcnFkKQogewotCXN0cnVjdCBtc21fbWRzcyAqbWRzcyA9IGlycV9kYXRhX2dl dF9pcnFfY2hpcF9kYXRhKGlycWQpOworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IGly cV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycWQpOwogCiAJc21wX21iX19iZWZvcmVfYXRvbWlj KCk7Ci0Jc2V0X2JpdChpcnFkLT5od2lycSwgJm1kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9t YXNrKTsKKwlzZXRfYml0KGlycWQtPmh3aXJxLCAmbWRwNV9tZHNzLT5pcnFjb250cm9sbGVyLmVu YWJsZWRfbWFzayk7CiAJc21wX21iX19hZnRlcl9hdG9taWMoKTsKIH0KIApAQCAtMTA5LDEzICsx MDcsMTMgQEAgc3RhdGljIHZvaWQgbWRzc19od191bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAq aXJxZCkKIHN0YXRpYyBpbnQgbWRzc19od19pcnFkb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWlu ICpkLCB1bnNpZ25lZCBpbnQgaXJxLAogCQkJCSBpcnFfaHdfbnVtYmVyX3QgaHdpcnEpCiB7Ci0J c3RydWN0IG1zbV9tZHNzICptZHNzID0gZC0+aG9zdF9kYXRhOworCXN0cnVjdCBtZHA1X21kc3Mg Km1kcDVfbWRzcyA9IGQtPmhvc3RfZGF0YTsKIAogCWlmICghKFZBTElEX0lSUVMgJiAoMSA8PCBo d2lycSkpKQogCQlyZXR1cm4gLUVQRVJNOwogCiAJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGly cSwgJm1kc3NfaHdfaXJxX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEpOwotCWlycV9zZXRfY2hpcF9k YXRhKGlycSwgbWRzcyk7CisJaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBtZHA1X21kc3MpOwogCiAJ cmV0dXJuIDA7CiB9CkBAIC0xMjYsOTAgKzEyNCw5OSBAQCBzdGF0aWMgaW50IG1kc3NfaHdfaXJx ZG9tYWluX21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSwKIH07CiAK IAotc3RhdGljIGludCBtZHNzX2lycV9kb21haW5faW5pdChzdHJ1Y3QgbXNtX21kc3MgKm1kc3Mp CitzdGF0aWMgaW50IG1kc3NfaXJxX2RvbWFpbl9pbml0KHN0cnVjdCBtZHA1X21kc3MgKm1kcDVf bWRzcykKIHsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBtZHNzLT5kZXYtPmRldjsKKwlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSBtZHA1X21kc3MtPmJhc2UuZGV2LT5kZXY7CiAJc3RydWN0IGlycV9kb21h aW4gKmQ7CiAKIAlkID0gaXJxX2RvbWFpbl9hZGRfbGluZWFyKGRldi0+b2Zfbm9kZSwgMzIsICZt ZHNzX2h3X2lycWRvbWFpbl9vcHMsCi0JCQkJICBtZHNzKTsKKwkJCQkgIG1kcDVfbWRzcyk7CiAJ aWYgKCFkKSB7CiAJCWRldl9lcnIoZGV2LCAibWRzcyBpcnEgZG9tYWluIGFkZCBmYWlsZWRcbiIp OwogCQlyZXR1cm4gLUVOWElPOwogCX0KIAotCW1kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9t YXNrID0gMDsKLQltZHNzLT5pcnFjb250cm9sbGVyLmRvbWFpbiA9IGQ7CisJbWRwNV9tZHNzLT5p cnFjb250cm9sbGVyLmVuYWJsZWRfbWFzayA9IDA7CisJbWRwNV9tZHNzLT5pcnFjb250cm9sbGVy LmRvbWFpbiA9IGQ7CiAKIAlyZXR1cm4gMDsKIH0KIAotaW50IG1zbV9tZHNzX2VuYWJsZShzdHJ1 Y3QgbXNtX21kc3MgKm1kc3MpCitzdGF0aWMgaW50IG1kcDVfbWRzc19lbmFibGUoc3RydWN0IG1z bV9tZHNzICptZHNzKQogeworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IHRvX21kcDVf bWRzcyhtZHNzKTsKIAlEQkcoIiIpOwogCi0JY2xrX3ByZXBhcmVfZW5hYmxlKG1kc3MtPmFoYl9j bGspOwotCWlmIChtZHNzLT5heGlfY2xrKQotCQljbGtfcHJlcGFyZV9lbmFibGUobWRzcy0+YXhp X2Nsayk7Ci0JaWYgKG1kc3MtPnZzeW5jX2NsaykKLQkJY2xrX3ByZXBhcmVfZW5hYmxlKG1kc3Mt PnZzeW5jX2Nsayk7CisJY2xrX3ByZXBhcmVfZW5hYmxlKG1kcDVfbWRzcy0+YWhiX2Nsayk7CisJ aWYgKG1kcDVfbWRzcy0+YXhpX2NsaykKKwkJY2xrX3ByZXBhcmVfZW5hYmxlKG1kcDVfbWRzcy0+ YXhpX2Nsayk7CisJaWYgKG1kcDVfbWRzcy0+dnN5bmNfY2xrKQorCQljbGtfcHJlcGFyZV9lbmFi bGUobWRwNV9tZHNzLT52c3luY19jbGspOwogCiAJcmV0dXJuIDA7CiB9CiAKLWludCBtc21fbWRz c19kaXNhYmxlKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbWRwNV9tZHNzX2Rp c2FibGUoc3RydWN0IG1zbV9tZHNzICptZHNzKQogeworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVf bWRzcyA9IHRvX21kcDVfbWRzcyhtZHNzKTsKIAlEQkcoIiIpOwogCi0JaWYgKG1kc3MtPnZzeW5j X2NsaykKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kc3MtPnZzeW5jX2Nsayk7Ci0JaWYgKG1k c3MtPmF4aV9jbGspCi0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHNzLT5heGlfY2xrKTsKLQlj bGtfZGlzYWJsZV91bnByZXBhcmUobWRzcy0+YWhiX2Nsayk7CisJaWYgKG1kcDVfbWRzcy0+dnN5 bmNfY2xrKQorCQljbGtfZGlzYWJsZV91bnByZXBhcmUobWRwNV9tZHNzLT52c3luY19jbGspOwor CWlmIChtZHA1X21kc3MtPmF4aV9jbGspCisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHA1X21k c3MtPmF4aV9jbGspOworCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHA1X21kc3MtPmFoYl9jbGsp OwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXNtX21kc3NfZ2V0X2Nsb2NrcyhzdHJ1 Y3QgbXNtX21kc3MgKm1kc3MpCitzdGF0aWMgaW50IG1zbV9tZHNzX2dldF9jbG9ja3Moc3RydWN0 IG1kcDVfbWRzcyAqbWRwNV9tZHNzKQogewotCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYg PSB0b19wbGF0Zm9ybV9kZXZpY2UobWRzcy0+ZGV2LT5kZXYpOworCXN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYgPQorCQkJdG9fcGxhdGZvcm1fZGV2aWNlKG1kcDVfbWRzcy0+YmFzZS5kZXYt PmRldik7CiAKLQltZHNzLT5haGJfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImlmYWNlIik7Ci0J aWYgKElTX0VSUihtZHNzLT5haGJfY2xrKSkKLQkJbWRzcy0+YWhiX2NsayA9IE5VTEw7CisJbWRw NV9tZHNzLT5haGJfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImlmYWNlIik7CisJaWYgKElTX0VS UihtZHA1X21kc3MtPmFoYl9jbGspKQorCQltZHA1X21kc3MtPmFoYl9jbGsgPSBOVUxMOwogCi0J bWRzcy0+YXhpX2NsayA9IG1zbV9jbGtfZ2V0KHBkZXYsICJidXMiKTsKLQlpZiAoSVNfRVJSKG1k c3MtPmF4aV9jbGspKQotCQltZHNzLT5heGlfY2xrID0gTlVMTDsKKwltZHA1X21kc3MtPmF4aV9j bGsgPSBtc21fY2xrX2dldChwZGV2LCAiYnVzIik7CisJaWYgKElTX0VSUihtZHA1X21kc3MtPmF4 aV9jbGspKQorCQltZHA1X21kc3MtPmF4aV9jbGsgPSBOVUxMOwogCi0JbWRzcy0+dnN5bmNfY2xr ID0gbXNtX2Nsa19nZXQocGRldiwgInZzeW5jIik7Ci0JaWYgKElTX0VSUihtZHNzLT52c3luY19j bGspKQotCQltZHNzLT52c3luY19jbGsgPSBOVUxMOworCW1kcDVfbWRzcy0+dnN5bmNfY2xrID0g bXNtX2Nsa19nZXQocGRldiwgInZzeW5jIik7CisJaWYgKElTX0VSUihtZHA1X21kc3MtPnZzeW5j X2NsaykpCisJCW1kcDVfbWRzcy0+dnN5bmNfY2xrID0gTlVMTDsKIAogCXJldHVybiAwOwogfQog Ci12b2lkIG1zbV9tZHNzX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2 b2lkIG1kcDVfbWRzc19kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IG1zbV9t ZHNzICptZHNzID0gcHJpdi0+bWRzczsKKwlzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MgPSB0 b19tZHA1X21kc3MocHJpdi0+bWRzcyk7CiAKLQlpZiAoIW1kc3MpCisJaWYgKCFtZHA1X21kc3Mp CiAJCXJldHVybjsKIAotCWlycV9kb21haW5fcmVtb3ZlKG1kc3MtPmlycWNvbnRyb2xsZXIuZG9t YWluKTsKLQltZHNzLT5pcnFjb250cm9sbGVyLmRvbWFpbiA9IE5VTEw7CisJaXJxX2RvbWFpbl9y ZW1vdmUobWRwNV9tZHNzLT5pcnFjb250cm9sbGVyLmRvbWFpbik7CisJbWRwNV9tZHNzLT5pcnFj b250cm9sbGVyLmRvbWFpbiA9IE5VTEw7CiAKLQlyZWd1bGF0b3JfZGlzYWJsZShtZHNzLT52ZGQp OworCXJlZ3VsYXRvcl9kaXNhYmxlKG1kcDVfbWRzcy0+dmRkKTsKIAogCXBtX3J1bnRpbWVfZGlz YWJsZShkZXYtPmRldik7CiB9CiAKLWludCBtc21fbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCitzdGF0aWMgY29uc3Qgc3RydWN0IG1zbV9tZHNzX2Z1bmNzIG1kc3NfZnVuY3MgPSB7 CisJLmVuYWJsZQk9IG1kcDVfbWRzc19lbmFibGUsCisJLmRpc2FibGUgPSBtZHA1X21kc3NfZGlz YWJsZSwKKwkuZGVzdHJveSA9IG1kcDVfbWRzc19kZXN0cm95LAorfTsKKworaW50IG1kcDVfbWRz c19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYtPmRldik7CiAJc3RydWN0IG1zbV9kcm1f cHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IG1zbV9tZHNzICptZHNz OworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzczsKIAlpbnQgcmV0OwogCiAJREJHKCIiKTsK QEAgLTIxNyw0MCArMjI0LDQwIEBAIGludCBtc21fbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJaWYgKCFvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkZXYtPmRldi0+b2Zfbm9kZSwg InFjb20sbWRzcyIpKQogCQlyZXR1cm4gMDsKIAotCW1kc3MgPSBkZXZtX2t6YWxsb2MoZGV2LT5k ZXYsIHNpemVvZigqbWRzcyksIEdGUF9LRVJORUwpOwotCWlmICghbWRzcykgeworCW1kcDVfbWRz cyA9IGRldm1fa3phbGxvYyhkZXYtPmRldiwgc2l6ZW9mKCptZHA1X21kc3MpLCBHRlBfS0VSTkVM KTsKKwlpZiAoIW1kcDVfbWRzcykgewogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGZhaWw7CiAJ fQogCi0JbWRzcy0+ZGV2ID0gZGV2OworCW1kcDVfbWRzcy0+YmFzZS5kZXYgPSBkZXY7CiAKLQlt ZHNzLT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kc3NfcGh5cyIsICJNRFNTIik7Ci0JaWYg KElTX0VSUihtZHNzLT5tbWlvKSkgewotCQlyZXQgPSBQVFJfRVJSKG1kc3MtPm1taW8pOworCW1k cDVfbWRzcy0+bW1pbyA9IG1zbV9pb3JlbWFwKHBkZXYsICJtZHNzX3BoeXMiLCAiTURTUyIpOwor CWlmIChJU19FUlIobWRwNV9tZHNzLT5tbWlvKSkgeworCQlyZXQgPSBQVFJfRVJSKG1kcDVfbWRz cy0+bW1pbyk7CiAJCWdvdG8gZmFpbDsKIAl9CiAKLQltZHNzLT52YmlmID0gbXNtX2lvcmVtYXAo cGRldiwgInZiaWZfcGh5cyIsICJWQklGIik7Ci0JaWYgKElTX0VSUihtZHNzLT52YmlmKSkgewot CQlyZXQgPSBQVFJfRVJSKG1kc3MtPnZiaWYpOworCW1kcDVfbWRzcy0+dmJpZiA9IG1zbV9pb3Jl bWFwKHBkZXYsICJ2YmlmX3BoeXMiLCAiVkJJRiIpOworCWlmIChJU19FUlIobWRwNV9tZHNzLT52 YmlmKSkgeworCQlyZXQgPSBQVFJfRVJSKG1kcDVfbWRzcy0+dmJpZik7CiAJCWdvdG8gZmFpbDsK IAl9CiAKLQlyZXQgPSBtc21fbWRzc19nZXRfY2xvY2tzKG1kc3MpOworCXJldCA9IG1zbV9tZHNz X2dldF9jbG9ja3MobWRwNV9tZHNzKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LT5kZXYs ICJmYWlsZWQgdG8gZ2V0IGNsb2NrczogJWRcbiIsIHJldCk7CiAJCWdvdG8gZmFpbDsKIAl9CiAK IAkvKiBSZWd1bGF0b3IgdG8gZW5hYmxlIEdEU0NzIGluIGRvd25zdHJlYW0ga2VybmVscyAqLwot CW1kc3MtPnZkZCA9IGRldm1fcmVndWxhdG9yX2dldChkZXYtPmRldiwgInZkZCIpOwotCWlmIChJ U19FUlIobWRzcy0+dmRkKSkgewotCQlyZXQgPSBQVFJfRVJSKG1kc3MtPnZkZCk7CisJbWRwNV9t ZHNzLT52ZGQgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoZGV2LT5kZXYsICJ2ZGQiKTsKKwlpZiAoSVNf RVJSKG1kcDVfbWRzcy0+dmRkKSkgeworCQlyZXQgPSBQVFJfRVJSKG1kcDVfbWRzcy0+dmRkKTsK IAkJZ290byBmYWlsOwogCX0KIAotCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUobWRzcy0+dmRkKTsK KwlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKG1kcDVfbWRzcy0+dmRkKTsKIAlpZiAocmV0KSB7CiAJ CWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIHJlZ3VsYXRvciB2ZGQ6ICVkXG4i LAogCQkJcmV0KTsKQEAgLTI1OCwyNSArMjY1LDI2IEBAIGludCBtc21fbWRzc19pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYtPmRl diwgcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKSwKLQkJCSAgICAgICBtZHNzX2lycSwgMCwgIm1k c3NfaXNyIiwgbWRzcyk7CisJCQkgICAgICAgbWRzc19pcnEsIDAsICJtZHNzX2lzciIsIG1kcDVf bWRzcyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluaXQg aXJxOiAlZFxuIiwgcmV0KTsKIAkJZ290byBmYWlsX2lycTsKIAl9CiAKLQlyZXQgPSBtZHNzX2ly cV9kb21haW5faW5pdChtZHNzKTsKKwlyZXQgPSBtZHNzX2lycV9kb21haW5faW5pdChtZHA1X21k c3MpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBpbml0IHN1 Yi1ibG9jayBpcnFzOiAlZFxuIiwgcmV0KTsKIAkJZ290byBmYWlsX2lycTsKIAl9CiAKLQlwcml2 LT5tZHNzID0gbWRzczsKKwltZHA1X21kc3MtPmJhc2UuZnVuY3MgPSAmbWRzc19mdW5jczsKKwlw cml2LT5tZHNzID0gJm1kcDVfbWRzcy0+YmFzZTsKIAogCXBtX3J1bnRpbWVfZW5hYmxlKGRldi0+ ZGV2KTsKIAogCXJldHVybiAwOwogZmFpbF9pcnE6Ci0JcmVndWxhdG9yX2Rpc2FibGUobWRzcy0+ dmRkKTsKKwlyZWd1bGF0b3JfZGlzYWJsZShtZHA1X21kc3MtPnZkZCk7CiBmYWlsOgogCXJldHVy biByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCmluZGV4IDliYjQzNmYuLjVkOGYxYjYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2Rydi5jCkBAIC0yNzAsNiArMjcwLDcgQEAgc3RhdGljIGludCBtc21fZHJtX3Vu aW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBwbGF0 Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0g ZGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKKwlz dHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwogCXN0cnVjdCBtc21fdmJsYW5rX2N0 cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJsOwogCXN0cnVjdCB2YmxhbmtfZXZlbnQg KnZibF9ldiwgKnRtcDsKIAlpbnQgaTsKQEAgLTM0Niw4ICszNDcsOCBAQCBzdGF0aWMgaW50IG1z bV9kcm1fdW5pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKIAogCWRlYnVnZnNfcmVtb3ZlX3JlY3Vy c2l2ZShwcml2LT5kZWJ1Z19yb290KTsKIAotCW1zbV9tZHNzX2Rlc3Ryb3koZGRldik7Ci0KKwlp ZiAobWRzcyAmJiBtZHNzLT5mdW5jcykKKwkJbWRzcy0+ZnVuY3MtPmRlc3Ryb3koZGRldik7CiAK IAlkZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7CiAJa2ZyZWUocHJpdik7CkBAIC00NzYsNiArNDc3 LDcgQEAgc3RhdGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2RyaXZlciAqZHJ2KQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2OwogCXN0cnVjdCBtc21f ZHJtX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0IG1zbV9rbXMgKmttczsKKwlzdHJ1Y3QgbXNtX21k c3MgKm1kc3M7CiAKICNpZmRlZiBDT05GSUdfRFJNX01TTV9EUFUKIAlzdHJ1Y3QgZHB1X2RiZ19w b3dlcl9jdHJsIGRiZ19wb3dlcl9jdHJsID0geyAwIH07CkBAIC01MDEsMTAgKzUwMywxMiBAQCBz dGF0aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJp dmVyICpkcnYpCiAJZGRldi0+ZGV2X3ByaXZhdGUgPSBwcml2OwogCXByaXYtPmRldiA9IGRkZXY7 CiAKLQlyZXQgPSBtc21fbWRzc19pbml0KGRkZXYpOworCXJldCA9IG1kcDVfbWRzc19pbml0KGRk ZXYpOwogCWlmIChyZXQpCiAJCWdvdG8gbWRzc19pbml0X2ZhaWw7CiAKKwltZHNzID0gcHJpdi0+ bWRzczsKKwogCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoIm1zbSIsIDApOwog CiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmNsaWVudF9ldmVudF9saXN0KTsKQEAgLTc0Niw3ICs3 NTAsOCBAQCBzdGF0aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fZHJpdmVyICpkcnYpCiAJZHB1X3Bvd2VyX3Jlc291cmNlX2RlaW5pdChwZGV2LCAmcHJp di0+cGhhbmRsZSk7CiBwb3dlcl9pbml0X2ZhaWw6CiAjZW5kaWYKLQltc21fbWRzc19kZXN0cm95 KGRkZXYpOworCWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQorCQltZHNzLT5mdW5jcy0+ZGVzdHJv eShkZGV2KTsKIG1kc3NfaW5pdF9mYWlsOgogCWtmcmVlKHByaXYpOwogcHJpdl9hbGxvY19mYWls OgpAQCAtMTQxNiwxMSArMTQyMSwxMiBAQCBzdGF0aWMgaW50IG1zbV9ydW50aW1lX3N1c3BlbmQo c3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dl dF9kcnZkYXRhKGRldik7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRl dl9wcml2YXRlOworCXN0cnVjdCBtc21fbWRzcyAqbWRzcyA9IHByaXYtPm1kc3M7CiAKIAlEQkco IiIpOwogCi0JaWYgKHByaXYtPm1kc3MpCi0JCXJldHVybiAwOyAvLyBtc21fbWRzc19kaXNhYmxl KHByaXYtPm1kc3MpOworCWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQorCQltZHNzLT5mdW5jcy0+ ZGlzYWJsZShtZHNzKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTQyOSwxMSArMTQzNSwxMiBAQCBz dGF0aWMgaW50IG1zbV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IG1zbV9tZHNz ICptZHNzID0gcHJpdi0+bWRzczsKIAogCURCRygiIik7CiAKLQlpZiAocHJpdi0+bWRzcykKLQkJ cmV0dXJuIDA7Ly9tc21fbWRzc19lbmFibGUocHJpdi0+bWRzcyk7CisJaWYgKG1kc3MgJiYgbWRz cy0+ZnVuY3MpCisJCW1kc3MtPmZ1bmNzLT5lbmFibGUobWRzcyk7CiAKIAlyZXR1cm4gMDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fa21zLmgKaW5kZXggNWIwOWNlNS4uOWE3YmM3ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f a21zLmgKQEAgLTEyNiwxNiArMTI2LDI0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtc21fa21zX2lu aXQoc3RydWN0IG1zbV9rbXMgKmttcywKIAlrbXMtPmZ1bmNzID0gZnVuY3M7CiB9CiAKLXN0cnVj dCBtc21fa21zICptZHA0X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi1pbnQg bXNtX21kc3NfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgbXNtX21kc3NfZGVz dHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHN0cnVjdCBtc21fa21zICptZHA1X2ttc19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiBzdHJ1Y3QgbXNtX2ttcyAqZHB1X2ttc19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCi1pbnQgbXNtX21kc3NfZW5hYmxlKHN0cnVj dCBtc21fbWRzcyAqbWRzcyk7Ci1pbnQgbXNtX21kc3NfZGlzYWJsZShzdHJ1Y3QgbXNtX21kc3Mg Km1kc3MpOworc3RydWN0IG1zbV9rbXMgKm1kcDRfa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7CisKK3N0cnVjdCBtc21fbWRzc19mdW5jcyB7CisJaW50ICgqZW5hYmxlKShzdHJ1Y3Qg bXNtX21kc3MgKm1kc3MpOworCWludCAoKmRpc2FibGUpKHN0cnVjdCBtc21fbWRzcyAqbWRzcyk7 CisJdm9pZCAoKmRlc3Ryb3kpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworfTsKKworc3RydWN0 IG1zbV9tZHNzIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCWNvbnN0IHN0cnVjdCBtc21f bWRzc19mdW5jcyAqZnVuY3M7Cit9OworCitpbnQgbWRwNV9tZHNzX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7CiAKIC8qKgogICogTW9kZSBTZXQgVXRpbGl0eSBGdW5jdGlvbnMKLS0gClRo ZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29k ZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVu byBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=