From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH v3 09/19] drm/msm/mdp5: subclass msm_mdss for mdp5 Date: Fri, 20 Jul 2018 16:43:00 -0400 Message-ID: <20180720204315.19054-10-seanpaul@chromium.org> References: <20180720204315.19054-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180720204315.19054-1-seanpaul@chromium.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: abhinavk@codeaurora.org, architt@codeaurora.org, chandanu@codeaurora.org, jsanka@codeaurora.org, jcrouse@codeaurora.org, ryadav@codeaurora.org, seanpaul@chromium.org, skolluku@codeaurora.org, dri-devel@lists.freedesktop.org, robdclark@gmail.com, airlied@linux.ie, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, nganji@codeaurora.org, hoegsberg@chromium.org, dovizu@chromium.org, robh+dt@kernel.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+CgpTb0NzIGhhdmluZyBt ZHA1IG9yIGRwdSBoYXZlIGlkZW50aWNhbCB0cmVlIGxpa2UKZGV2aWNlIGhpZXJhcmNoeSB3aGVy ZSBNRFNTIHRvcCBsZXZlbCB3cmFwcGVyIG1hbmFnZXMKY29tbW9uIHBvd2VyIHJlc291cmNlcyBm b3IgYWxsIGNoaWxkIGRldmljZXMuCgpTdWJjbGFzcyBtc21fbWRzcyBzbyB0aGF0IG1zbV9tZHNz IGluY2x1ZGVzIGNvbW1vbiBkZWZpbmVzCmFuZCBtZHA1L2RwdSBtZHNzIGRlcml2YXRpb25zIHRv IGluY2x1ZGUgYW55IGV4dGVuc2lvbnMuCgpBZGQgbWRzcyBoZWxwZXIgaW50ZXJmYWNlIChtc21f bWRzc19mdW5jcykgdG8gbXNtX21kc3MKYmFzZSBmb3IgbWRwNS9kcHUgbWRzcyBzcGVjaWZpYyBp bXBsZW1lbnRhdGlvbiBjYWxscy4KClRoaXMgY2hhbmdlIHN1YmNsYXNzZXMgbXNtX21kc3MgZm9y IG1kcDUsIGRwdSBzcGVjaWZpYwpjaGFuZ2VzIHdpbGwgYmUgZG9uZSBzZXBhcmF0ZWx5LgoKQ2hh bmdlcyBpbiB2MzoKLSBBZGRlZCBBcmNoaXQncyBSLWIKClJldmlld2VkLWJ5OiBBcmNoaXQgVGFu ZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFu cGF1bEBjaHJvbWl1bS5vcmc+ClNpZ25lZC1vZmYtYnk6IFJhamVzaCBZYWRhdiA8cnlhZGF2QGNv ZGVhdXJvcmEub3JnPgpbc2VhbnBhdWwgcmViYXNlZCBvbiBtc20tbmV4dCBhbmQgcmVzb2x2ZWQg Y29uZmxpY3RzXQpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9y Zz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X21kc3MuYyB8IDE1NCAr KysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAgICAg ICAgICAgICB8ICAyMiArKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaCAgICAgICAg ICAgICB8ICAxNyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDg0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21k cDVfbWRzcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9tZHNzLmMKaW5k ZXggZjJhMGRiN2E4YTAzLi4xY2M0ZTU3ZjAyMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9tZHA1L21kcDVfbWRzcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9tZHA1L21kcDVfbWRzcy5jCkBAIC0yMCwxMiArMjAsMTAgQEAKICNpbmNsdWRlICJtc21fZHJ2 LmgiCiAjaW5jbHVkZSAibWRwNV9rbXMuaCIKIAotLyoKLSAqIElmIG5lZWRlZCwgdGhpcyBjYW4g YmVjb21lIG1vcmUgc3BlY2lmaWM6IHNvbWV0aGluZyBsaWtlIHN0cnVjdCBtZHA1X21kc3MsCi0g KiB3aGljaCBjb250YWlucyBhICdzdHJ1Y3QgbXNtX21kc3MgYmFzZScgbWVtYmVyLgotICovCi1z dHJ1Y3QgbXNtX21kc3MgewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CisjZGVmaW5lIHRvX21k cDVfbWRzcyh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1kcDVfbWRzcywgYmFzZSkKKworc3Ry dWN0IG1kcDVfbWRzcyB7CisJc3RydWN0IG1zbV9tZHNzIGJhc2U7CiAKIAl2b2lkIF9faW9tZW0g Km1taW8sICp2YmlmOwogCkBAIC00MSwyMiArMzksMjIgQEAgc3RydWN0IG1zbV9tZHNzIHsKIAl9 IGlycWNvbnRyb2xsZXI7CiB9OwogCi1zdGF0aWMgaW5saW5lIHZvaWQgbWRzc193cml0ZShzdHJ1 Y3QgbXNtX21kc3MgKm1kc3MsIHUzMiByZWcsIHUzMiBkYXRhKQorc3RhdGljIGlubGluZSB2b2lk IG1kc3Nfd3JpdGUoc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzLCB1MzIgcmVnLCB1MzIgZGF0 YSkKIHsKLQltc21fd3JpdGVsKGRhdGEsIG1kc3MtPm1taW8gKyByZWcpOworCW1zbV93cml0ZWwo ZGF0YSwgbWRwNV9tZHNzLT5tbWlvICsgcmVnKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgbWRz c19yZWFkKHN0cnVjdCBtc21fbWRzcyAqbWRzcywgdTMyIHJlZykKK3N0YXRpYyBpbmxpbmUgdTMy IG1kc3NfcmVhZChzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MsIHUzMiByZWcpCiB7Ci0JcmV0 dXJuIG1zbV9yZWFkbChtZHNzLT5tbWlvICsgcmVnKTsKKwlyZXR1cm4gbXNtX3JlYWRsKG1kcDVf bWRzcy0+bW1pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBtZHNzX2lycShpbnQg aXJxLCB2b2lkICphcmcpCiB7Ci0Jc3RydWN0IG1zbV9tZHNzICptZHNzID0gYXJnOworCXN0cnVj dCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IGFyZzsKIAl1MzIgaW50cjsKIAotCWludHIgPSBtZHNz X3JlYWQobWRzcywgUkVHX01EU1NfSFdfSU5UUl9TVEFUVVMpOworCWludHIgPSBtZHNzX3JlYWQo bWRwNV9tZHNzLCBSRUdfTURTU19IV19JTlRSX1NUQVRVUyk7CiAKIAlWRVJCKCJpbnRyPSUwOHgi LCBpbnRyKTsKIApAQCAtNjQsNyArNjIsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWRzc19pcnEo aW50IGlycSwgdm9pZCAqYXJnKQogCQlpcnFfaHdfbnVtYmVyX3QgaHdpcnEgPSBmbHMoaW50cikg LSAxOwogCiAJCWdlbmVyaWNfaGFuZGxlX2lycShpcnFfZmluZF9tYXBwaW5nKAotCQkJCW1kc3Mt PmlycWNvbnRyb2xsZXIuZG9tYWluLCBod2lycSkpOworCQkJCW1kcDVfbWRzcy0+aXJxY29udHJv bGxlci5kb21haW4sIGh3aXJxKSk7CiAJCWludHIgJj0gfigxIDw8IGh3aXJxKTsKIAl9CiAKQEAg LTg0LDE5ICs4MiwxOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWRzc19pcnEoaW50IGlycSwgdm9p ZCAqYXJnKQogCiBzdGF0aWMgdm9pZCBtZHNzX2h3X21hc2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAq aXJxZCkKIHsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBf ZGF0YShpcnFkKTsKKwlzdHJ1Y3QgbWRwNV9tZHNzICptZHA1X21kc3MgPSBpcnFfZGF0YV9nZXRf aXJxX2NoaXBfZGF0YShpcnFkKTsKIAogCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwotCWNsZWFy X2JpdChpcnFkLT5od2lycSwgJm1kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9tYXNrKTsKKwlj bGVhcl9iaXQoaXJxZC0+aHdpcnEsICZtZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZW5hYmxlZF9t YXNrKTsKIAlzbXBfbWJfX2FmdGVyX2F0b21pYygpOwogfQogCiBzdGF0aWMgdm9pZCBtZHNzX2h3 X3VubWFza19pcnEoc3RydWN0IGlycV9kYXRhICppcnFkKQogewotCXN0cnVjdCBtc21fbWRzcyAq bWRzcyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycWQpOworCXN0cnVjdCBtZHA1X21k c3MgKm1kcDVfbWRzcyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGlycWQpOwogCiAJc21w X21iX19iZWZvcmVfYXRvbWljKCk7Ci0Jc2V0X2JpdChpcnFkLT5od2lycSwgJm1kc3MtPmlycWNv bnRyb2xsZXIuZW5hYmxlZF9tYXNrKTsKKwlzZXRfYml0KGlycWQtPmh3aXJxLCAmbWRwNV9tZHNz LT5pcnFjb250cm9sbGVyLmVuYWJsZWRfbWFzayk7CiAJc21wX21iX19hZnRlcl9hdG9taWMoKTsK IH0KIApAQCAtMTA5LDEzICsxMDcsMTMgQEAgc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBtZHNzX2h3 X2lycV9jaGlwID0gewogc3RhdGljIGludCBtZHNzX2h3X2lycWRvbWFpbl9tYXAoc3RydWN0IGly cV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEsCiAJCQkJIGlycV9od19udW1iZXJfdCBod2ly cSkKIHsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBkLT5ob3N0X2RhdGE7CisJc3RydWN0IG1k cDVfbWRzcyAqbWRwNV9tZHNzID0gZC0+aG9zdF9kYXRhOwogCiAJaWYgKCEoVkFMSURfSVJRUyAm ICgxIDw8IGh3aXJxKSkpCiAJCXJldHVybiAtRVBFUk07CiAKIAlpcnFfc2V0X2NoaXBfYW5kX2hh bmRsZXIoaXJxLCAmbWRzc19od19pcnFfY2hpcCwgaGFuZGxlX2xldmVsX2lycSk7Ci0JaXJxX3Nl dF9jaGlwX2RhdGEoaXJxLCBtZHNzKTsKKwlpcnFfc2V0X2NoaXBfZGF0YShpcnEsIG1kcDVfbWRz cyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNiw5MCArMTI0LDk5IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbWRzc19od19pcnFkb21haW5fb3BzID0gewogfTsKIAogCi1z dGF0aWMgaW50IG1kc3NfaXJxX2RvbWFpbl9pbml0KHN0cnVjdCBtc21fbWRzcyAqbWRzcykKK3N0 YXRpYyBpbnQgbWRzc19pcnFfZG9tYWluX2luaXQoc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNz KQogewotCXN0cnVjdCBkZXZpY2UgKmRldiA9IG1kc3MtPmRldi0+ZGV2OworCXN0cnVjdCBkZXZp Y2UgKmRldiA9IG1kcDVfbWRzcy0+YmFzZS5kZXYtPmRldjsKIAlzdHJ1Y3QgaXJxX2RvbWFpbiAq ZDsKIAogCWQgPSBpcnFfZG9tYWluX2FkZF9saW5lYXIoZGV2LT5vZl9ub2RlLCAzMiwgJm1kc3Nf aHdfaXJxZG9tYWluX29wcywKLQkJCQkgIG1kc3MpOworCQkJCSAgbWRwNV9tZHNzKTsKIAlpZiAo IWQpIHsKIAkJZGV2X2VycihkZXYsICJtZHNzIGlycSBkb21haW4gYWRkIGZhaWxlZFxuIik7CiAJ CXJldHVybiAtRU5YSU87CiAJfQogCi0JbWRzcy0+aXJxY29udHJvbGxlci5lbmFibGVkX21hc2sg PSAwOwotCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gZDsKKwltZHA1X21kc3MtPmlycWNv bnRyb2xsZXIuZW5hYmxlZF9tYXNrID0gMDsKKwltZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZG9t YWluID0gZDsKIAogCXJldHVybiAwOwogfQogCi1pbnQgbXNtX21kc3NfZW5hYmxlKHN0cnVjdCBt c21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbWRwNV9tZHNzX2VuYWJsZShzdHJ1Y3QgbXNtX21k c3MgKm1kc3MpCiB7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzID0gdG9fbWRwNV9tZHNz KG1kc3MpOwogCURCRygiIik7CiAKLQljbGtfcHJlcGFyZV9lbmFibGUobWRzcy0+YWhiX2Nsayk7 Ci0JaWYgKG1kc3MtPmF4aV9jbGspCi0JCWNsa19wcmVwYXJlX2VuYWJsZShtZHNzLT5heGlfY2xr KTsKLQlpZiAobWRzcy0+dnN5bmNfY2xrKQotCQljbGtfcHJlcGFyZV9lbmFibGUobWRzcy0+dnN5 bmNfY2xrKTsKKwljbGtfcHJlcGFyZV9lbmFibGUobWRwNV9tZHNzLT5haGJfY2xrKTsKKwlpZiAo bWRwNV9tZHNzLT5heGlfY2xrKQorCQljbGtfcHJlcGFyZV9lbmFibGUobWRwNV9tZHNzLT5heGlf Y2xrKTsKKwlpZiAobWRwNV9tZHNzLT52c3luY19jbGspCisJCWNsa19wcmVwYXJlX2VuYWJsZSht ZHA1X21kc3MtPnZzeW5jX2Nsayk7CiAKIAlyZXR1cm4gMDsKIH0KIAotaW50IG1zbV9tZHNzX2Rp c2FibGUoc3RydWN0IG1zbV9tZHNzICptZHNzKQorc3RhdGljIGludCBtZHA1X21kc3NfZGlzYWJs ZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpCiB7CisJc3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNz ID0gdG9fbWRwNV9tZHNzKG1kc3MpOwogCURCRygiIik7CiAKLQlpZiAobWRzcy0+dnN5bmNfY2xr KQotCQljbGtfZGlzYWJsZV91bnByZXBhcmUobWRzcy0+dnN5bmNfY2xrKTsKLQlpZiAobWRzcy0+ YXhpX2NsaykKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kc3MtPmF4aV9jbGspOwotCWNsa19k aXNhYmxlX3VucHJlcGFyZShtZHNzLT5haGJfY2xrKTsKKwlpZiAobWRwNV9tZHNzLT52c3luY19j bGspCisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtZHA1X21kc3MtPnZzeW5jX2Nsayk7CisJaWYg KG1kcDVfbWRzcy0+YXhpX2NsaykKKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kcDVfbWRzcy0+ YXhpX2Nsayk7CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1kcDVfbWRzcy0+YWhiX2Nsayk7CiAK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtc21fbWRzc19nZXRfY2xvY2tzKHN0cnVjdCBt c21fbWRzcyAqbWRzcykKK3N0YXRpYyBpbnQgbXNtX21kc3NfZ2V0X2Nsb2NrcyhzdHJ1Y3QgbWRw NV9tZHNzICptZHA1X21kc3MpCiB7Ci0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRv X3BsYXRmb3JtX2RldmljZShtZHNzLT5kZXYtPmRldik7CisJc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiA9CisJCQl0b19wbGF0Zm9ybV9kZXZpY2UobWRwNV9tZHNzLT5iYXNlLmRldi0+ZGV2 KTsKIAotCW1kc3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiaWZhY2UiKTsKLQlpZiAo SVNfRVJSKG1kc3MtPmFoYl9jbGspKQotCQltZHNzLT5haGJfY2xrID0gTlVMTDsKKwltZHA1X21k c3MtPmFoYl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiaWZhY2UiKTsKKwlpZiAoSVNfRVJSKG1k cDVfbWRzcy0+YWhiX2NsaykpCisJCW1kcDVfbWRzcy0+YWhiX2NsayA9IE5VTEw7CiAKLQltZHNz LT5heGlfY2xrID0gbXNtX2Nsa19nZXQocGRldiwgImJ1cyIpOwotCWlmIChJU19FUlIobWRzcy0+ YXhpX2NsaykpCi0JCW1kc3MtPmF4aV9jbGsgPSBOVUxMOworCW1kcDVfbWRzcy0+YXhpX2NsayA9 IG1zbV9jbGtfZ2V0KHBkZXYsICJidXMiKTsKKwlpZiAoSVNfRVJSKG1kcDVfbWRzcy0+YXhpX2Ns aykpCisJCW1kcDVfbWRzcy0+YXhpX2NsayA9IE5VTEw7CiAKLQltZHNzLT52c3luY19jbGsgPSBt c21fY2xrX2dldChwZGV2LCAidnN5bmMiKTsKLQlpZiAoSVNfRVJSKG1kc3MtPnZzeW5jX2Nsaykp Ci0JCW1kc3MtPnZzeW5jX2NsayA9IE5VTEw7CisJbWRwNV9tZHNzLT52c3luY19jbGsgPSBtc21f Y2xrX2dldChwZGV2LCAidnN5bmMiKTsKKwlpZiAoSVNfRVJSKG1kcDVfbWRzcy0+dnN5bmNfY2xr KSkKKwkJbWRwNV9tZHNzLT52c3luY19jbGsgPSBOVUxMOwogCiAJcmV0dXJuIDA7CiB9CiAKLXZv aWQgbXNtX21kc3NfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQg bWRwNV9tZHNzX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgbXNtX21kc3Mg Km1kc3MgPSBwcml2LT5tZHNzOworCXN0cnVjdCBtZHA1X21kc3MgKm1kcDVfbWRzcyA9IHRvX21k cDVfbWRzcyhwcml2LT5tZHNzKTsKIAotCWlmICghbWRzcykKKwlpZiAoIW1kcDVfbWRzcykKIAkJ cmV0dXJuOwogCi0JaXJxX2RvbWFpbl9yZW1vdmUobWRzcy0+aXJxY29udHJvbGxlci5kb21haW4p OwotCW1kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluID0gTlVMTDsKKwlpcnFfZG9tYWluX3JlbW92 ZShtZHA1X21kc3MtPmlycWNvbnRyb2xsZXIuZG9tYWluKTsKKwltZHA1X21kc3MtPmlycWNvbnRy b2xsZXIuZG9tYWluID0gTlVMTDsKIAotCXJlZ3VsYXRvcl9kaXNhYmxlKG1kc3MtPnZkZCk7CisJ cmVndWxhdG9yX2Rpc2FibGUobWRwNV9tZHNzLT52ZGQpOwogCiAJcG1fcnVudGltZV9kaXNhYmxl KGRldi0+ZGV2KTsKIH0KIAotaW50IG1zbV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXNtX21kc3NfZnVuY3MgbWRzc19mdW5jcyA9IHsKKwku ZW5hYmxlCT0gbWRwNV9tZHNzX2VuYWJsZSwKKwkuZGlzYWJsZSA9IG1kcDVfbWRzc19kaXNhYmxl LAorCS5kZXN0cm95ID0gbWRwNV9tZHNzX2Rlc3Ryb3ksCit9OworCitpbnQgbWRwNV9tZHNzX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldi0+ZGV2KTsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgbXNtX21kc3MgKm1kc3M7CisJ c3RydWN0IG1kcDVfbWRzcyAqbWRwNV9tZHNzOwogCWludCByZXQ7CiAKIAlEQkcoIiIpOwpAQCAt MjE3LDQwICsyMjQsNDAgQEAgaW50IG1zbV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+ZGV2LT5vZl9ub2RlLCAicWNv bSxtZHNzIikpCiAJCXJldHVybiAwOwogCi0JbWRzcyA9IGRldm1fa3phbGxvYyhkZXYtPmRldiwg c2l6ZW9mKCptZHNzKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtZHNzKSB7CisJbWRwNV9tZHNzID0g ZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKm1kcDVfbWRzcyksIEdGUF9LRVJORUwpOwor CWlmICghbWRwNV9tZHNzKSB7CiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZmFpbDsKIAl9CiAK LQltZHNzLT5kZXYgPSBkZXY7CisJbWRwNV9tZHNzLT5iYXNlLmRldiA9IGRldjsKIAotCW1kc3Mt Pm1taW8gPSBtc21faW9yZW1hcChwZGV2LCAibWRzc19waHlzIiwgIk1EU1MiKTsKLQlpZiAoSVNf RVJSKG1kc3MtPm1taW8pKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRzcy0+bW1pbyk7CisJbWRwNV9t ZHNzLT5tbWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kc3NfcGh5cyIsICJNRFNTIik7CisJaWYg KElTX0VSUihtZHA1X21kc3MtPm1taW8pKSB7CisJCXJldCA9IFBUUl9FUlIobWRwNV9tZHNzLT5t bWlvKTsKIAkJZ290byBmYWlsOwogCX0KIAotCW1kc3MtPnZiaWYgPSBtc21faW9yZW1hcChwZGV2 LCAidmJpZl9waHlzIiwgIlZCSUYiKTsKLQlpZiAoSVNfRVJSKG1kc3MtPnZiaWYpKSB7Ci0JCXJl dCA9IFBUUl9FUlIobWRzcy0+dmJpZik7CisJbWRwNV9tZHNzLT52YmlmID0gbXNtX2lvcmVtYXAo cGRldiwgInZiaWZfcGh5cyIsICJWQklGIik7CisJaWYgKElTX0VSUihtZHA1X21kc3MtPnZiaWYp KSB7CisJCXJldCA9IFBUUl9FUlIobWRwNV9tZHNzLT52YmlmKTsKIAkJZ290byBmYWlsOwogCX0K IAotCXJldCA9IG1zbV9tZHNzX2dldF9jbG9ja3MobWRzcyk7CisJcmV0ID0gbXNtX21kc3NfZ2V0 X2Nsb2NrcyhtZHA1X21kc3MpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYtPmRldiwgImZh aWxlZCB0byBnZXQgY2xvY2tzOiAlZFxuIiwgcmV0KTsKIAkJZ290byBmYWlsOwogCX0KIAogCS8q IFJlZ3VsYXRvciB0byBlbmFibGUgR0RTQ3MgaW4gZG93bnN0cmVhbSBrZXJuZWxzICovCi0JbWRz cy0+dmRkID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldi0+ZGV2LCAidmRkIik7Ci0JaWYgKElTX0VS UihtZHNzLT52ZGQpKSB7Ci0JCXJldCA9IFBUUl9FUlIobWRzcy0+dmRkKTsKKwltZHA1X21kc3Mt PnZkZCA9IGRldm1fcmVndWxhdG9yX2dldChkZXYtPmRldiwgInZkZCIpOworCWlmIChJU19FUlIo bWRwNV9tZHNzLT52ZGQpKSB7CisJCXJldCA9IFBUUl9FUlIobWRwNV9tZHNzLT52ZGQpOwogCQln b3RvIGZhaWw7CiAJfQogCi0JcmV0ID0gcmVndWxhdG9yX2VuYWJsZShtZHNzLT52ZGQpOworCXJl dCA9IHJlZ3VsYXRvcl9lbmFibGUobWRwNV9tZHNzLT52ZGQpOwogCWlmIChyZXQpIHsKIAkJZGV2 X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBlbmFibGUgcmVndWxhdG9yIHZkZDogJWRcbiIsCiAJ CQlyZXQpOwpAQCAtMjU4LDI1ICsyNjUsMjYgQEAgaW50IG1zbV9tZHNzX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAl9CiAKIAlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldi0+ZGV2LCBw bGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApLAotCQkJICAgICAgIG1kc3NfaXJxLCAwLCAibWRzc19p c3IiLCBtZHNzKTsKKwkJCSAgICAgICBtZHNzX2lycSwgMCwgIm1kc3NfaXNyIiwgbWRwNV9tZHNz KTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdCBpcnE6 ICVkXG4iLCByZXQpOwogCQlnb3RvIGZhaWxfaXJxOwogCX0KIAotCXJldCA9IG1kc3NfaXJxX2Rv bWFpbl9pbml0KG1kc3MpOworCXJldCA9IG1kc3NfaXJxX2RvbWFpbl9pbml0KG1kcDVfbWRzcyk7 CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluaXQgc3ViLWJs b2NrIGlycXM6ICVkXG4iLCByZXQpOwogCQlnb3RvIGZhaWxfaXJxOwogCX0KIAotCXByaXYtPm1k c3MgPSBtZHNzOworCW1kcDVfbWRzcy0+YmFzZS5mdW5jcyA9ICZtZHNzX2Z1bmNzOworCXByaXYt Pm1kc3MgPSAmbWRwNV9tZHNzLT5iYXNlOwogCiAJcG1fcnVudGltZV9lbmFibGUoZGV2LT5kZXYp OwogCiAJcmV0dXJuIDA7CiBmYWlsX2lycToKLQlyZWd1bGF0b3JfZGlzYWJsZShtZHNzLT52ZGQp OworCXJlZ3VsYXRvcl9kaXNhYmxlKG1kcDVfbWRzcy0+dmRkKTsKIGZhaWw6CiAJcmV0dXJuIHJl dDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKaW5kZXggN2Y3MzIxZWI1MzEyLi4yNjA4ZDNmNzc5NTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2Rydi5jCkBAIC0yMDgsNiArMjA4LDcgQEAgc3RhdGljIGludCBtc21f ZHJtX3VuaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYg PSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpw cml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmtt czsKKwlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwogCXN0cnVjdCBtc21fdmJs YW5rX2N0cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJsOwogCXN0cnVjdCB2Ymxhbmtf ZXZlbnQgKnZibF9ldiwgKnRtcDsKIApAQCAtMjU4LDcgKzI1OSw4IEBAIHN0YXRpYyBpbnQgbXNt X2RybV91bmluaXQoc3RydWN0IGRldmljZSAqZGV2KQogCiAJY29tcG9uZW50X3VuYmluZF9hbGwo ZGV2LCBkZGV2KTsKIAotCW1zbV9tZHNzX2Rlc3Ryb3koZGRldik7CisJaWYgKG1kc3MgJiYgbWRz cy0+ZnVuY3MpCisJCW1kc3MtPmZ1bmNzLT5kZXN0cm95KGRkZXYpOwogCiAJZGRldi0+ZGV2X3By aXZhdGUgPSBOVUxMOwogCWRybV9kZXZfdW5yZWYoZGRldik7CkBAIC0zNTcsNiArMzU5LDcgQEAg c3RhdGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Ry aXZlciAqZHJ2KQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2OwogCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXY7CiAJc3RydWN0IG1zbV9rbXMgKmttczsKKwlzdHJ1Y3QgbXNtX21kc3MgKm1k c3M7CiAJaW50IHJldDsKIAogCWRkZXYgPSBkcm1fZGV2X2FsbG9jKGRydiwgZGV2KTsKQEAgLTM3 NiwxMyArMzc5LDE1IEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRybV9kcml2ZXIgKmRydikKIAlkZGV2LT5kZXZfcHJpdmF0ZSA9IHByaXY7CiAJ cHJpdi0+ZGV2ID0gZGRldjsKIAotCXJldCA9IG1zbV9tZHNzX2luaXQoZGRldik7CisJcmV0ID0g bWRwNV9tZHNzX2luaXQoZGRldik7CiAJaWYgKHJldCkgewogCQlrZnJlZShwcml2KTsKIAkJZHJt X2Rldl91bnJlZihkZGV2KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwltZHNzID0gcHJpdi0+bWRz czsKKwogCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoIm1zbSIsIDApOwogCXBy aXYtPmF0b21pY193cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJtc206YXRvbWljIiwgMCk7 CiAKQEAgLTM5Niw3ICs0MDEsOCBAQCBzdGF0aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fZHJpdmVyICpkcnYpCiAJLyogQmluZCBhbGwgb3VyIHN1Yi1j b21wb25lbnRzOiAqLwogCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYsIGRkZXYpOwogCWlm IChyZXQpIHsKLQkJbXNtX21kc3NfZGVzdHJveShkZGV2KTsKKwkJaWYgKG1kc3MgJiYgbWRzcy0+ ZnVuY3MpCisJCQltZHNzLT5mdW5jcy0+ZGVzdHJveShkZGV2KTsKIAkJa2ZyZWUocHJpdik7CiAJ CWRybV9kZXZfdW5yZWYoZGRldik7CiAJCXJldHVybiByZXQ7CkBAIC05MjQsMTEgKzkzMCwxMiBA QCBzdGF0aWMgaW50IG1zbV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJc3RydWN0 IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBtc21f bWRzcyAqbWRzcyA9IHByaXYtPm1kc3M7CiAKIAlEQkcoIiIpOwogCi0JaWYgKHByaXYtPm1kc3Mp Ci0JCXJldHVybiBtc21fbWRzc19kaXNhYmxlKHByaXYtPm1kc3MpOworCWlmIChtZHNzICYmIG1k c3MtPmZ1bmNzKQorCQlyZXR1cm4gbWRzcy0+ZnVuY3MtPmRpc2FibGUobWRzcyk7CiAKIAlyZXR1 cm4gMDsKIH0KQEAgLTkzNywxMSArOTQ0LDEyIEBAIHN0YXRpYyBpbnQgbXNtX3J1bnRpbWVfcmVz dW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZGV2 LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwogCiAJ REJHKCIiKTsKIAotCWlmIChwcml2LT5tZHNzKQotCQlyZXR1cm4gbXNtX21kc3NfZW5hYmxlKHBy aXYtPm1kc3MpOworCWlmIChtZHNzICYmIG1kc3MtPmZ1bmNzKQorCQlyZXR1cm4gbWRzcy0+ZnVu Y3MtPmVuYWJsZShtZHNzKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAppbmRl eCBkZmQ5Mjk0N2RlMmMuLjc2YzE0MjIxZmZkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKQEAgLTg2 LDkgKzg2LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtc21fa21zX2luaXQoc3RydWN0IG1zbV9r bXMgKmttcywKIAogc3RydWN0IG1zbV9rbXMgKm1kcDRfa21zX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7CiBzdHJ1Y3QgbXNtX2ttcyAqbWRwNV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKLWludCBtc21fbWRzc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotdm9p ZCBtc21fbWRzc19kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotaW50IG1zbV9tZHNz X2VuYWJsZShzdHJ1Y3QgbXNtX21kc3MgKm1kc3MpOwotaW50IG1zbV9tZHNzX2Rpc2FibGUoc3Ry dWN0IG1zbV9tZHNzICptZHNzKTsKKworc3RydWN0IG1zbV9tZHNzX2Z1bmNzIHsKKwlpbnQgKCpl bmFibGUpKHN0cnVjdCBtc21fbWRzcyAqbWRzcyk7CisJaW50ICgqZGlzYWJsZSkoc3RydWN0IG1z bV9tZHNzICptZHNzKTsKKwl2b2lkICgqZGVzdHJveSkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cit9OworCitzdHJ1Y3QgbXNtX21kc3MgeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CisJY29u c3Qgc3RydWN0IG1zbV9tZHNzX2Z1bmNzICpmdW5jczsKK307CisKK2ludCBtZHA1X21kc3NfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogI2VuZGlmIC8qIF9fTVNNX0tNU19IX18gKi8K LS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK