From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rajesh Yadav Subject: [DPU PATCH 02/11] drm/msm/mdp5: subclass msm_mdss for mdp5 Date: Thu, 10 May 2018 13:59:36 +0530 Message-ID: <1525940985-30428-3-git-send-email-ryadav@codeaurora.org> References: <1525940985-30428-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: <1525940985-30428-1-git-send-email-ryadav@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: Rajesh Yadav , hoegsberg@chromium.org List-Id: linux-arm-msm@vger.kernel.org U29DcyBoYXZpbmcgbWRwNSBvciBkcHUgaGF2ZSBpZGVudGljYWwgdHJlZSBsaWtlCmRldmljZSBo aWVyYXJjaHkgd2hlcmUgTURTUyB0b3AgbGV2ZWwgd3JhcHBlciBtYW5hZ2VzCmNvbW1vbiBwb3dl ciByZXNvdXJjZXMgZm9yIGFsbCBjaGlsZCBkZXZpY2VzLgoKU3ViY2xhc3MgbXNtX21kc3Mgc28g dGhhdCBtc21fbWRzcyBpbmNsdWRlcyBjb21tb24gZGVmaW5lcwphbmQgbWRwNS9kcHUgbWRzcyBk ZXJpdmF0aW9ucyB0byBpbmNsdWRlIGFueSBleHRlbnNpb25zLgoKQWRkIG1kc3MgaGVscGVyIGlu dGVyZmFjZSAobXNtX21kc3NfZnVuY3MpIHRvIG1zbV9tZHNzCmJhc2UgZm9yIG1kcDUvZHB1IG1k c3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gY2FsbHMuCgpUaGlzIGNoYW5nZSBzdWJjbGFzc2Vz IG1zbV9tZHNzIGZvciBtZHA1LCBkcHUgc3BlY2lmaWMKY2hhbmdlcyB3aWxsIGJlIGRvbmUgc2Vw YXJhdGVseS4KClNpZ25lZC1vZmYtYnk6IFJhamVzaCBZYWRhdiA8cnlhZGF2QGNvZGVhdXJvcmEu b3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jIHwgMTU0 ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21f ZHJ2LmMgICAgICAgICAgICAgfCAgMjMgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2tt cy5oICAgICAgICAgICAgIHwgIDIwICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlv bnMoKyksIDg3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9tZHA1L21kcDVfbWRzcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRw NV9tZHNzLmMKaW5kZXggZjJhMGRiNy4uODgxOTBlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL21kcDUvbWRwNV9tZHNzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL21kcDUvbWRwNV9tZHNzLmMKQEAgLTIwLDEyICsyMCwxMCBAQAogI2luY2x1ZGUgIm1zbV9k cnYuaCIKICNpbmNsdWRlICJtZHA1X2ttcy5oIgogCi0vKgotICogSWYgbmVlZGVkLCB0aGlzIGNh biBiZWNvbWUgbW9yZSBzcGVjaWZpYzogc29tZXRoaW5nIGxpa2Ugc3RydWN0IG1kcDVfbWRzcywK LSAqIHdoaWNoIGNvbnRhaW5zIGEgJ3N0cnVjdCBtc21fbWRzcyBiYXNlJyBtZW1iZXIuCi0gKi8K LXN0cnVjdCBtc21fbWRzcyB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKKyNkZWZpbmUgdG9f bWRwNV9tZHNzKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgbWRwNV9tZHNzLCBiYXNlKQorCitz dHJ1Y3QgbWRwNV9tZHNzIHsKKwlzdHJ1Y3QgbXNtX21kc3MgYmFzZTsKIAogCXZvaWQgX19pb21l bSAqbW1pbywgKnZiaWY7CiAKQEAgLTQxLDIyICszOSwyMiBAQCBzdHJ1Y3QgbXNtX21kc3Mgewog CX0gaXJxY29udHJvbGxlcjsKIH07CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBtZHNzX3dyaXRlKHN0 cnVjdCBtc21fbWRzcyAqbWRzcywgdTMyIHJlZywgdTMyIGRhdGEpCitzdGF0aWMgaW5saW5lIHZv aWQgbWRzc193cml0ZShzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MsIHUzMiByZWcsIHUzMiBk YXRhKQogewotCW1zbV93cml0ZWwoZGF0YSwgbWRzcy0+bW1pbyArIHJlZyk7CisJbXNtX3dyaXRl bChkYXRhLCBtZHA1X21kc3MtPm1taW8gKyByZWcpOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBt ZHNzX3JlYWQoc3RydWN0IG1zbV9tZHNzICptZHNzLCB1MzIgcmVnKQorc3RhdGljIGlubGluZSB1 MzIgbWRzc19yZWFkKHN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcywgdTMyIHJlZykKIHsKLQly ZXR1cm4gbXNtX3JlYWRsKG1kc3MtPm1taW8gKyByZWcpOworCXJldHVybiBtc21fcmVhZGwobWRw NV9tZHNzLT5tbWlvICsgcmVnKTsKIH0KIAogc3RhdGljIGlycXJldHVybl90IG1kc3NfaXJxKGlu dCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBhcmc7CisJc3Ry dWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gYXJnOwogCXUzMiBpbnRyOwogCi0JaW50ciA9IG1k c3NfcmVhZChtZHNzLCBSRUdfTURTU19IV19JTlRSX1NUQVRVUyk7CisJaW50ciA9IG1kc3NfcmVh ZChtZHA1X21kc3MsIFJFR19NRFNTX0hXX0lOVFJfU1RBVFVTKTsKIAogCVZFUkIoImludHI9JTA4 eCIsIGludHIpOwogCkBAIC02NCw3ICs2Miw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtZHNzX2ly cShpbnQgaXJxLCB2b2lkICphcmcpCiAJCWlycV9od19udW1iZXJfdCBod2lycSA9IGZscyhpbnRy KSAtIDE7CiAKIAkJZ2VuZXJpY19oYW5kbGVfaXJxKGlycV9maW5kX21hcHBpbmcoCi0JCQkJbWRz cy0+aXJxY29udHJvbGxlci5kb21haW4sIGh3aXJxKSk7CisJCQkJbWRwNV9tZHNzLT5pcnFjb250 cm9sbGVyLmRvbWFpbiwgaHdpcnEpKTsKIAkJaW50ciAmPSB+KDEgPDwgaHdpcnEpOwogCX0KIApA QCAtODQsMTkgKzgyLDE5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtZHNzX2lycShpbnQgaXJxLCB2 b2lkICphcmcpCiAKIHN0YXRpYyB2b2lkIG1kc3NfaHdfbWFza19pcnEoc3RydWN0IGlycV9kYXRh ICppcnFkKQogewotCXN0cnVjdCBtc21fbWRzcyAqbWRzcyA9IGlycV9kYXRhX2dldF9pcnFfY2hp cF9kYXRhKGlycWQpOworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IGlycV9kYXRhX2dl dF9pcnFfY2hpcF9kYXRhKGlycWQpOwogCiAJc21wX21iX19iZWZvcmVfYXRvbWljKCk7Ci0JY2xl YXJfYml0KGlycWQtPmh3aXJxLCAmbWRzcy0+aXJxY29udHJvbGxlci5lbmFibGVkX21hc2spOwor CWNsZWFyX2JpdChpcnFkLT5od2lycSwgJm1kcDVfbWRzcy0+aXJxY29udHJvbGxlci5lbmFibGVk X21hc2spOwogCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7CiB9CiAKIHN0YXRpYyB2b2lkIG1kc3Nf aHdfdW5tYXNrX2lycShzdHJ1Y3QgaXJxX2RhdGEgKmlycWQpCiB7Ci0Jc3RydWN0IG1zbV9tZHNz ICptZHNzID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoaXJxZCk7CisJc3RydWN0IG1kcDVf bWRzcyAqbWRwNV9tZHNzID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoaXJxZCk7CiAKIAlz bXBfbWJfX2JlZm9yZV9hdG9taWMoKTsKLQlzZXRfYml0KGlycWQtPmh3aXJxLCAmbWRzcy0+aXJx Y29udHJvbGxlci5lbmFibGVkX21hc2spOworCXNldF9iaXQoaXJxZC0+aHdpcnEsICZtZHA1X21k c3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrKTsKIAlzbXBfbWJfX2FmdGVyX2F0b21pYygp OwogfQogCkBAIC0xMDksMTMgKzEwNywxMyBAQCBzdGF0aWMgdm9pZCBtZHNzX2h3X3VubWFza19p cnEoc3RydWN0IGlycV9kYXRhICppcnFkKQogc3RhdGljIGludCBtZHNzX2h3X2lycWRvbWFpbl9t YXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEsCiAJCQkJIGlycV9od19u dW1iZXJfdCBod2lycSkKIHsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBkLT5ob3N0X2RhdGE7 CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gZC0+aG9zdF9kYXRhOwogCiAJaWYgKCEo VkFMSURfSVJRUyAmICgxIDw8IGh3aXJxKSkpCiAJCXJldHVybiAtRVBFUk07CiAKIAlpcnFfc2V0 X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCAmbWRzc19od19pcnFfY2hpcCwgaGFuZGxlX2xldmVsX2ly cSk7Ci0JaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBtZHNzKTsKKwlpcnFfc2V0X2NoaXBfZGF0YShp cnEsIG1kcDVfbWRzcyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNiw5MCArMTI0LDk5IEBAIHN0 YXRpYyBpbnQgbWRzc19od19pcnFkb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgaXJxLAogfTsKIAogCi1zdGF0aWMgaW50IG1kc3NfaXJxX2RvbWFpbl9pbml0KHN0 cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbWRzc19pcnFfZG9tYWluX2luaXQoc3Ry dWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzKQogewotCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kc3Mt PmRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kcDVfbWRzcy0+YmFzZS5kZXYtPmRl djsKIAlzdHJ1Y3QgaXJxX2RvbWFpbiAqZDsKIAogCWQgPSBpcnFfZG9tYWluX2FkZF9saW5lYXIo ZGV2LT5vZl9ub2RlLCAzMiwgJm1kc3NfaHdfaXJxZG9tYWluX29wcywKLQkJCQkgIG1kc3MpOwor CQkJbWRwNV9tZHNzKTsKIAlpZiAoIWQpIHsKIAkJZGV2X2VycihkZXYsICJtZHNzIGlycSBkb21h aW4gYWRkIGZhaWxlZFxuIik7CiAJCXJldHVybiAtRU5YSU87CiAJfQogCi0JbWRzcy0+aXJxY29u dHJvbGxlci5lbmFibGVkX21hc2sgPSAwOwotCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0g ZDsKKwltZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrID0gMDsKKwltZHA1X21k c3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gZDsKIAogCXJldHVybiAwOwogfQogCi1pbnQgbXNt X21kc3NfZW5hYmxlKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbWRwNV9tZHNz X2VuYWJsZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpCiB7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRw NV9tZHNzID0gdG9fbWRwNV9tZHNzKG1kc3MpOwogCURCRygiIik7CiAKLQljbGtfcHJlcGFyZV9l bmFibGUobWRzcy0+YWhiX2Nsayk7Ci0JaWYgKG1kc3MtPmF4aV9jbGspCi0JCWNsa19wcmVwYXJl X2VuYWJsZShtZHNzLT5heGlfY2xrKTsKLQlpZiAobWRzcy0+dnN5bmNfY2xrKQotCQljbGtfcHJl cGFyZV9lbmFibGUobWRzcy0+dnN5bmNfY2xrKTsKKwljbGtfcHJlcGFyZV9lbmFibGUobWRwNV9t ZHNzLT5haGJfY2xrKTsKKwlpZiAobWRwNV9tZHNzLT5heGlfY2xrKQorCQljbGtfcHJlcGFyZV9l bmFibGUobWRwNV9tZHNzLT5heGlfY2xrKTsKKwlpZiAobWRwNV9tZHNzLT52c3luY19jbGspCisJ CWNsa19wcmVwYXJlX2VuYWJsZShtZHA1X21kc3MtPnZzeW5jX2Nsayk7CiAKIAlyZXR1cm4gMDsK IH0KIAotaW50IG1zbV9tZHNzX2Rpc2FibGUoc3RydWN0IG1zbV9tZHNzICptZHNzKQorc3RhdGlj IGludCBtZHA1X21kc3NfZGlzYWJsZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpCiB7CisJc3RydWN0 IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gdG9fbWRwNV9tZHNzKG1kc3MpOwogCURCRygiIik7CiAK LQlpZiAobWRzcy0+dnN5bmNfY2xrKQotCQljbGtfZGlzYWJsZV91bnByZXBhcmUobWRzcy0+dnN5 bmNfY2xrKTsKLQlpZiAobWRzcy0+YXhpX2NsaykKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1k c3MtPmF4aV9jbGspOwotCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHNzLT5haGJfY2xrKTsKKwlp ZiAobWRwNV9tZHNzLT52c3luY19jbGspCisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHA1X21k c3MtPnZzeW5jX2Nsayk7CisJaWYgKG1kcDVfbWRzcy0+YXhpX2NsaykKKwkJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKG1kcDVfbWRzcy0+YXhpX2Nsayk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1k cDVfbWRzcy0+YWhiX2Nsayk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtc21fbWRz c19nZXRfY2xvY2tzKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbXNtX21kc3Nf Z2V0X2Nsb2NrcyhzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MpCiB7Ci0Jc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShtZHNzLT5kZXYtPmRldik7CisJ c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9CisJCQl0b19wbGF0Zm9ybV9kZXZpY2UobWRw NV9tZHNzLT5iYXNlLmRldi0+ZGV2KTsKIAotCW1kc3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChw ZGV2LCAiaWZhY2UiKTsKLQlpZiAoSVNfRVJSKG1kc3MtPmFoYl9jbGspKQotCQltZHNzLT5haGJf Y2xrID0gTlVMTDsKKwltZHA1X21kc3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiaWZh Y2UiKTsKKwlpZiAoSVNfRVJSKG1kcDVfbWRzcy0+YWhiX2NsaykpCisJCW1kcDVfbWRzcy0+YWhi X2NsayA9IE5VTEw7CiAKLQltZHNzLT5heGlfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImJ1cyIp OwotCWlmIChJU19FUlIobWRzcy0+YXhpX2NsaykpCi0JCW1kc3MtPmF4aV9jbGsgPSBOVUxMOwor CW1kcDVfbWRzcy0+YXhpX2NsayA9IG1zbV9jbGtfZ2V0KHBkZXYsICJidXMiKTsKKwlpZiAoSVNf RVJSKG1kcDVfbWRzcy0+YXhpX2NsaykpCisJCW1kcDVfbWRzcy0+YXhpX2NsayA9IE5VTEw7CiAK LQltZHNzLT52c3luY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKLQlpZiAoSVNf RVJSKG1kc3MtPnZzeW5jX2NsaykpCi0JCW1kc3MtPnZzeW5jX2NsayA9IE5VTEw7CisJbWRwNV9t ZHNzLT52c3luY19jbGsgPSBtc21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKKwlpZiAoSVNfRVJS KG1kcDVfbWRzcy0+dnN5bmNfY2xrKSkKKwkJbWRwNV9tZHNzLT52c3luY19jbGsgPSBOVUxMOwog CiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgbXNtX21kc3NfZGVzdHJveShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQorc3RhdGljIHZvaWQgbWRwNV9tZHNzX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOworCXN0cnVjdCBtZHA1X21k c3MgKm1kcDVfbWRzcyA9IHRvX21kcDVfbWRzcyhwcml2LT5tZHNzKTsKIAotCWlmICghbWRzcykK KwlpZiAoIW1kcDVfbWRzcykKIAkJcmV0dXJuOwogCi0JaXJxX2RvbWFpbl9yZW1vdmUobWRzcy0+ aXJxY29udHJvbGxlci5kb21haW4pOwotCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gTlVM TDsKKwlpcnFfZG9tYWluX3JlbW92ZShtZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluKTsK KwltZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gTlVMTDsKIAotCXJlZ3VsYXRvcl9k aXNhYmxlKG1kc3MtPnZkZCk7CisJcmVndWxhdG9yX2Rpc2FibGUobWRwNV9tZHNzLT52ZGQpOwog CiAJcG1fcnVudGltZV9kaXNhYmxlKGRldi0+ZGV2KTsKIH0KIAotaW50IG1zbV9tZHNzX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXNtX21kc3NfZnVu Y3MgbWRzc19mdW5jcyA9IHsKKwkuZW5hYmxlCT0gbWRwNV9tZHNzX2VuYWJsZSwKKwkuZGlzYWJs ZSA9IG1kcDVfbWRzc19kaXNhYmxlLAorCS5kZXN0cm95ID0gbWRwNV9tZHNzX2Rlc3Ryb3ksCit9 OworCitpbnQgbWRwNV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldi0+ZGV2KTsK IAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1 Y3QgbXNtX21kc3MgKm1kc3M7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzOwogCWludCBy ZXQ7CiAKIAlEQkcoIiIpOwpAQCAtMjE3LDQwICsyMjQsNDAgQEAgaW50IG1zbV9tZHNzX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKGRl di0+ZGV2LT5vZl9ub2RlLCAicWNvbSxtZHNzIikpCiAJCXJldHVybiAwOwogCi0JbWRzcyA9IGRl dm1fa3phbGxvYyhkZXYtPmRldiwgc2l6ZW9mKCptZHNzKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFt ZHNzKSB7CisJbWRwNV9tZHNzID0gZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKm1kcDVf bWRzcyksIEdGUF9LRVJORUwpOworCWlmICghbWRwNV9tZHNzKSB7CiAJCXJldCA9IC1FTk9NRU07 CiAJCWdvdG8gZmFpbDsKIAl9CiAKLQltZHNzLT5kZXYgPSBkZXY7CisJbWRwNV9tZHNzLT5iYXNl LmRldiA9IGRldjsKIAotCW1kc3MtPm1taW8gPSBtc21faW9yZW1hcChwZGV2LCAibWRzc19waHlz IiwgIk1EU1MiKTsKLQlpZiAoSVNfRVJSKG1kc3MtPm1taW8pKSB7Ci0JCXJldCA9IFBUUl9FUlIo bWRzcy0+bW1pbyk7CisJbWRwNV9tZHNzLT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kc3Nf cGh5cyIsICJNRFNTIik7CisJaWYgKElTX0VSUihtZHA1X21kc3MtPm1taW8pKSB7CisJCXJldCA9 IFBUUl9FUlIobWRwNV9tZHNzLT5tbWlvKTsKIAkJZ290byBmYWlsOwogCX0KIAotCW1kc3MtPnZi aWYgPSBtc21faW9yZW1hcChwZGV2LCAidmJpZl9waHlzIiwgIlZCSUYiKTsKLQlpZiAoSVNfRVJS KG1kc3MtPnZiaWYpKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRzcy0+dmJpZik7CisJbWRwNV9tZHNz LT52YmlmID0gbXNtX2lvcmVtYXAocGRldiwgInZiaWZfcGh5cyIsICJWQklGIik7CisJaWYgKElT X0VSUihtZHA1X21kc3MtPnZiaWYpKSB7CisJCXJldCA9IFBUUl9FUlIobWRwNV9tZHNzLT52Ymlm KTsKIAkJZ290byBmYWlsOwogCX0KIAotCXJldCA9IG1zbV9tZHNzX2dldF9jbG9ja3MobWRzcyk7 CisJcmV0ID0gbXNtX21kc3NfZ2V0X2Nsb2NrcyhtZHA1X21kc3MpOwogCWlmIChyZXQpIHsKIAkJ ZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgY2xvY2tzOiAlZFxuIiwgcmV0KTsKIAkJ Z290byBmYWlsOwogCX0KIAogCS8qIFJlZ3VsYXRvciB0byBlbmFibGUgR0RTQ3MgaW4gZG93bnN0 cmVhbSBrZXJuZWxzICovCi0JbWRzcy0+dmRkID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldi0+ZGV2 LCAidmRkIik7Ci0JaWYgKElTX0VSUihtZHNzLT52ZGQpKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRz cy0+dmRkKTsKKwltZHA1X21kc3MtPnZkZCA9IGRldm1fcmVndWxhdG9yX2dldChkZXYtPmRldiwg InZkZCIpOworCWlmIChJU19FUlIobWRwNV9tZHNzLT52ZGQpKSB7CisJCXJldCA9IFBUUl9FUlIo bWRwNV9tZHNzLT52ZGQpOwogCQlnb3RvIGZhaWw7CiAJfQogCi0JcmV0ID0gcmVndWxhdG9yX2Vu YWJsZShtZHNzLT52ZGQpOworCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUobWRwNV9tZHNzLT52ZGQp OwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBlbmFibGUgcmVn dWxhdG9yIHZkZDogJWRcbiIsCiAJCQlyZXQpOwpAQCAtMjU4LDI1ICsyNjUsMjYgQEAgaW50IG1z bV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAKIAlyZXQgPSBkZXZtX3Jl cXVlc3RfaXJxKGRldi0+ZGV2LCBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApLAotCQkJICAgICAg IG1kc3NfaXJxLCAwLCAibWRzc19pc3IiLCBtZHNzKTsKKwkJCSAgICAgICBtZHNzX2lycSwgMCwg Im1kc3NfaXNyIiwgbWRwNV9tZHNzKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LT5kZXYs ICJmYWlsZWQgdG8gaW5pdCBpcnE6ICVkXG4iLCByZXQpOwogCQlnb3RvIGZhaWxfaXJxOwogCX0K IAotCXJldCA9IG1kc3NfaXJxX2RvbWFpbl9pbml0KG1kc3MpOworCXJldCA9IG1kc3NfaXJxX2Rv bWFpbl9pbml0KG1kcDVfbWRzcyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldi0+ZGV2LCAi ZmFpbGVkIHRvIGluaXQgc3ViLWJsb2NrIGlycXM6ICVkXG4iLCByZXQpOwogCQlnb3RvIGZhaWxf aXJxOwogCX0KIAotCXByaXYtPm1kc3MgPSBtZHNzOworCW1kcDVfbWRzcy0+YmFzZS5mdW5jcyA9 ICZtZHNzX2Z1bmNzOworCXByaXYtPm1kc3MgPSAmbWRwNV9tZHNzLT5iYXNlOwogCiAJcG1fcnVu dGltZV9lbmFibGUoZGV2LT5kZXYpOwogCiAJcmV0dXJuIDA7CiBmYWlsX2lycToKLQlyZWd1bGF0 b3JfZGlzYWJsZShtZHNzLT52ZGQpOworCXJlZ3VsYXRvcl9kaXNhYmxlKG1kcDVfbWRzcy0+dmRk KTsKIGZhaWw6CiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKaW5kZXggOWJiNDM2 Zi4uNWQ4ZjFiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKQEAgLTI3MCw2ICsyNzAsNyBAQCBzdGF0 aWMgaW50IG1zbV9kcm1fdW5pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBtc21fZHJt X3ByaXZhdGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgbXNtX2ttcyAqa21z ID0gcHJpdi0+a21zOworCXN0cnVjdCBtc21fbWRzcyAqbWRzcyA9IHByaXYtPm1kc3M7CiAJc3Ry dWN0IG1zbV92YmxhbmtfY3RybCAqdmJsX2N0cmwgPSAmcHJpdi0+dmJsYW5rX2N0cmw7CiAJc3Ry dWN0IHZibGFua19ldmVudCAqdmJsX2V2LCAqdG1wOwogCWludCBpOwpAQCAtMzQ2LDggKzM0Nyw4 IEBAIHN0YXRpYyBpbnQgbXNtX2RybV91bmluaXQoc3RydWN0IGRldmljZSAqZGV2KQogCiAJZGVi dWdmc19yZW1vdmVfcmVjdXJzaXZlKHByaXYtPmRlYnVnX3Jvb3QpOwogCi0JbXNtX21kc3NfZGVz dHJveShkZGV2KTsKLQorCWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQorCQltZHNzLT5mdW5jcy0+ ZGVzdHJveShkZGV2KTsKIAogCWRkZXYtPmRldl9wcml2YXRlID0gTlVMTDsKIAlrZnJlZShwcml2 KTsKQEAgLTQ3Niw2ICs0NzcsNyBAQCBzdGF0aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJpdmVyICpkcnYpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRk ZXY7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKIAlzdHJ1Y3QgbXNtX2ttcyAqa21z OworCXN0cnVjdCBtc21fbWRzcyAqbWRzczsKIAogI2lmZGVmIENPTkZJR19EUk1fTVNNX0RQVQog CXN0cnVjdCBkcHVfZGJnX3Bvd2VyX2N0cmwgZGJnX3Bvd2VyX2N0cmwgPSB7IDAgfTsKQEAgLTUw MSwxMCArNTAzLDEyIEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRybV9kcml2ZXIgKmRydikKIAlkZGV2LT5kZXZfcHJpdmF0ZSA9IHByaXY7CiAJ cHJpdi0+ZGV2ID0gZGRldjsKIAotCXJldCA9IG1zbV9tZHNzX2luaXQoZGRldik7CisJcmV0ID0g bWRwNV9tZHNzX2luaXQoZGRldik7CiAJaWYgKHJldCkKIAkJZ290byBtZHNzX2luaXRfZmFpbDsK IAorCW1kc3MgPSBwcml2LT5tZHNzOworCiAJcHJpdi0+d3EgPSBhbGxvY19vcmRlcmVkX3dvcmtx dWV1ZSgibXNtIiwgMCk7CiAKIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+Y2xpZW50X2V2ZW50X2xp c3QpOwpAQCAtNzQ2LDcgKzc1MCw4IEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRybV9kcml2ZXIgKmRydikKIAlkcHVfcG93ZXJfcmVzb3VyY2Vf ZGVpbml0KHBkZXYsICZwcml2LT5waGFuZGxlKTsKIHBvd2VyX2luaXRfZmFpbDoKICNlbmRpZgot CW1zbV9tZHNzX2Rlc3Ryb3koZGRldik7CisJaWYgKG1kc3MgJiYgbWRzcy0+ZnVuY3MpCisJCW1k c3MtPmZ1bmNzLT5kZXN0cm95KGRkZXYpOwogbWRzc19pbml0X2ZhaWw6CiAJa2ZyZWUocHJpdik7 CiBwcml2X2FsbG9jX2ZhaWw6CkBAIC0xNDE2LDExICsxNDIxLDEyIEBAIHN0YXRpYyBpbnQgbXNt X3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRl ICpwcml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IG1zbV9tZHNzICptZHNzID0gcHJp di0+bWRzczsKIAogCURCRygiIik7CiAKLQlpZiAocHJpdi0+bWRzcykKLQkJcmV0dXJuIDA7IC8v IG1zbV9tZHNzX2Rpc2FibGUocHJpdi0+bWRzcyk7CisJaWYgKG1kc3MgJiYgbWRzcy0+ZnVuY3Mp CisJCW1kc3MtPmZ1bmNzLT5kaXNhYmxlKG1kc3MpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNDI5 LDExICsxNDM1LDEyIEBAIHN0YXRpYyBpbnQgbXNtX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZp Y2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShk ZXYpOwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsK KwlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwogCiAJREJHKCIiKTsKIAotCWlm IChwcml2LT5tZHNzKQotCQlyZXR1cm4gMDsvL21zbV9tZHNzX2VuYWJsZShwcml2LT5tZHNzKTsK KwlpZiAobWRzcyAmJiBtZHNzLT5mdW5jcykKKwkJbWRzcy0+ZnVuY3MtPmVuYWJsZShtZHNzKTsK IAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21z LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAppbmRleCA1YjA5Y2U1Li45YTdiYzdk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9rbXMuaApAQCAtMTI2LDE2ICsxMjYsMjQgQEAgc3RhdGljIGlubGlu ZSB2b2lkIG1zbV9rbXNfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLAogCWttcy0+ZnVuY3MgPSBm dW5jczsKIH0KIAotc3RydWN0IG1zbV9rbXMgKm1kcDRfa21zX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Ci0KLWludCBtc21fbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwot dm9pZCBtc21fbWRzc19kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogc3RydWN0IG1z bV9rbXMgKm1kcDVfa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKIHN0cnVjdCBt c21fa21zICpkcHVfa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKLWludCBtc21f bWRzc19lbmFibGUoc3RydWN0IG1zbV9tZHNzICptZHNzKTsKLWludCBtc21fbWRzc19kaXNhYmxl KHN0cnVjdCBtc21fbWRzcyAqbWRzcyk7CitzdHJ1Y3QgbXNtX2ttcyAqbWRwNF9rbXNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworc3RydWN0IG1zbV9tZHNzX2Z1bmNzIHsKKwlpbnQg KCplbmFibGUpKHN0cnVjdCBtc21fbWRzcyAqbWRzcyk7CisJaW50ICgqZGlzYWJsZSkoc3RydWN0 IG1zbV9tZHNzICptZHNzKTsKKwl2b2lkICgqZGVzdHJveSkoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cit9OworCitzdHJ1Y3QgbXNtX21kc3MgeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CisJ Y29uc3Qgc3RydWN0IG1zbV9tZHNzX2Z1bmNzICpmdW5jczsKK307CisKK2ludCBtZHA1X21kc3Nf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogLyoqCiAgKiBNb2RlIFNldCBVdGlsaXR5 IEZ1bmN0aW9ucwotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEg bWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxh Ym9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==