From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH v5 19/19] drm/msm/dpu: remove RM topology definition Date: Wed, 5 Sep 2018 19:08:28 -0700 Message-ID: <1536199708-23664-20-git-send-email-jsanka@codeaurora.org> References: <1536199708-23664-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1536199708-23664-1-git-send-email-jsanka-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: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Uk0gbWFpbnRhaW5lZCBhIHJlZHVuZGFudCBkZWZpbml0aW9uIGZvciBkaXNwbGF5IHRvcG9sb2d5 CnRvIGlkZW50aWZ5IHRoZSBuby4gb2YgaHcgYmxvY2tzIG5lZWRlZCBmb3IgYSBkaXNwbGF5CmFu ZCB0aGVpciBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIFRoaXMgaW5mb3JtYXRpb24gY2FuIGJlCmlt cGxpY2l0bHkgZGVkdWNlZCBmcm9tIHRoZSBtc21fZGlzcGxheV90b3BvbG9neSBzdHJ1Y3R1cmUK YXZhaWxhYmxlIGluIFJNIHJlc2VydmUgcmVxdWVzdC4gSW4gYWRkaXRpb24gdG8gZ2V0dGluZwpy aWQgb2YgdGhlIHJlZHVuZGFudCB0b3BvbG9neSwgdGhpcyBjaGFuZ2UgYWxzbyByZW1vdmVzCnRo ZSB0b3BvbG9neSBuYW1lIGVudW1zIGFuZCB0aGVpciB1c2FnZXMuCgpjaGFuZ2VzIGluIHY0OgoJ LSByZW1vdmUgdGhlIHRvcG9sb2d5IG5hbWUgZW51bSBlbnRpcmVseSAoU2VhbikKY2hhbmdlcyBp biB2NToKCS0gcmVtb3ZlIFJNIHRvcG9sb2d5IGRlZmluaXRpb24gYW5kIHRoZWlyCgkgIHJlZmVy ZW5jZXMgKFNlYW4pCgktIEltcGxlbWVudCBoZWxwZXIgZm9yIGR1YWwgbWl4ZXIgQ1JUQyAoU2Vh bikKClNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1cm9yYS5v cmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaCAgICAgICAg ICAgfCAgMTAgKysKIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMg ICAgICAgIHwgICAzIC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmggICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNv ZGVyX3BoeXMuaCAgIHwgICA5ICstCiAuLi4vZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNv ZGVyX3BoeXNfdmlkLmMgICB8ICAgNyArLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X3JtLmMgICAgICAgICAgICAgfCAxMTggKysrKysrLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaCAgICAgICAgICAgICB8ICAyNCAtLS0tLQog NyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaCBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKaW5kZXggOWIxMDU2Yy4uMzcyM2I0 OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCkBAIC0yMzgsNiAr MjM4LDE2IEBAIHN0cnVjdCBkcHVfY3J0Y19zdGF0ZSB7CiAJY29udGFpbmVyX29mKHgsIHN0cnVj dCBkcHVfY3J0Y19zdGF0ZSwgYmFzZSkKIAogLyoqCisgKiBkcHVfY3J0Y19zdGF0ZV9pc19zdGVy ZW8gLSBJcyBjcnRjIHZpcnR1YWxpemVkIHdpdGggdHdvIG1peGVycz8KKyAqIEBjc3RhdGU6IFBv aW50ZXIgdG8gZHB1IGNydGMgc3RhdGUKKyAqIEBSZXR1cm46IHRydWUgLSBoYXMgdHdvIG1peGVy cywgZmFsc2UgLSBoYXMgb25lIG1peGVyCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBkcHVfY3J0 Y19zdGF0ZV9pc19zdGVyZW8oc3RydWN0IGRwdV9jcnRjX3N0YXRlICpjc3RhdGUpCit7CisJcmV0 dXJuIGNzdGF0ZS0+bnVtX21peGVycyA9PSBDUlRDX0RVQUxfTUlYRVJTOworfQorCisvKioKICAq IGRwdV9jcnRjX2dldF9taXhlcl9oZWlnaHQgLSBnZXQgdGhlIG1peGVyIGhlaWdodAogICogTWl4 ZXIgaGVpZ2h0IHdpbGwgYmUgc2FtZSBhcyBwYW5lbCBoZWlnaHQKICAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKaW5kZXggZTE1ZDA5Zi4uYzJlODk4NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCkBAIC0xMDAz LDcgKzEwMDMsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0X21vZGVfc2V0KHN0cnVj dCBkcm1fZW5jb2RlciAqZHJtX2VuYywKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiA9IE5V TEwsICpjb25uX2l0ZXI7CiAJc3RydWN0IGRwdV9ybV9od19pdGVyIHBwX2l0ZXIsIGN0bF9pdGVy OwogCXN0cnVjdCBtc21fZGlzcGxheV90b3BvbG9neSB0b3BvbG9neTsKLQllbnVtIGRwdV9ybV90 b3BvbG9neV9uYW1lIHRvcG9sb2d5X25hbWU7CiAJc3RydWN0IGRwdV9od19jdGwgKmh3X2N0bFtN QVhfQ0hBTk5FTFNfUEVSX0VOQ10gPSB7IE5VTEwgfTsKIAlpbnQgaSA9IDAsIHJldDsKIApAQCAt MTA1OSw3ICsxMDU4LDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdmlydF9tb2RlX3NldChz dHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCiAJCWh3X2N0bFtpXSA9IChzdHJ1Y3QgZHB1X2h3 X2N0bCAqKWN0bF9pdGVyLmh3OwogCX0KIAotCXRvcG9sb2d5X25hbWUgPSBkcHVfcm1fZ2V0X3Rv cG9sb2d5X25hbWUodG9wb2xvZ3kpOwogCWZvciAoaSA9IDA7IGkgPCBkcHVfZW5jLT5udW1fcGh5 c19lbmNzOyBpKyspIHsKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMgPSBkcHVfZW5j LT5waHlzX2VuY3NbaV07CiAKQEAgLTEwODAsNyArMTA3OCw2IEBAIHN0YXRpYyB2b2lkIGRwdV9l bmNvZGVyX3ZpcnRfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQkJcGh5 cy0+aHdfY3RsID0gaHdfY3RsW2ldOwogCiAJCQlwaHlzLT5jb25uZWN0b3IgPSBjb25uLT5zdGF0 ZS0+Y29ubmVjdG9yOwotCQkJcGh5cy0+dG9wb2xvZ3lfbmFtZSA9IHRvcG9sb2d5X25hbWU7CiAJ CQlpZiAocGh5cy0+b3BzLm1vZGVfc2V0KQogCQkJCXBoeXMtPm9wcy5tb2RlX3NldChwaHlzLCBt b2RlLCBhZGpfbW9kZSk7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlci5oCmluZGV4IDM0YWM1YjYuLjlkYmYzOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaApAQCAtMzIsNyArMzIsNiBAQAogLyoqCiAgKiBFbmNv ZGVyIGZ1bmN0aW9ucyBhbmQgZGF0YSB0eXBlcwogICogQGludGZzOglJbnRlcmZhY2VzIHRoaXMg ZW5jb2RlciBpcyB1c2luZywgSU5URl9NT0RFX05PTkUgaWYgdW51c2VkCi0gKiBAdG9wb2xvZ3k6 ICAgVG9wb2xvZ3kgb2YgdGhlIGRpc3BsYXkKICAqLwogc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jl c291cmNlcyB7CiAJZW51bSBkcHVfaW50Zl9tb2RlIGludGZzW0lOVEZfTUFYXTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaCBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaAppbmRleCAzZmU0 ZWQ5Li45NjRlZmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlcl9waHlzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2VuY29kZXJfcGh5cy5oCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiZHB1X2h3X2N0bC5o IgogI2luY2x1ZGUgImRwdV9od190b3AuaCIKICNpbmNsdWRlICJkcHVfZW5jb2Rlci5oIgorI2lu Y2x1ZGUgImRwdV9jcnRjLmgiCiAKICNkZWZpbmUgRFBVX0VOQ09ERVJfTkFNRV9NQVgJMTYKIApA QCAtMjA5LDcgKzIxMCw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9pcnEgewogICogQHNwbGl0X3Jv bGU6CQlSb2xlIHRvIHBsYXkgaW4gYSBzcGxpdC1wYW5lbCBjb25maWd1cmF0aW9uCiAgKiBAaW50 Zl9tb2RlOgkJSW50ZXJmYWNlIG1vZGUKICAqIEBpbnRmX2lkeDoJCUludGVyZmFjZSBpbmRleCBv biBkcHUgaGFyZHdhcmUKLSAqIEB0b3BvbG9neV9uYW1lOgl0b3BvbG9neSBzZWxlY3RlZCBmb3Ig dGhlIGRpc3BsYXkKICAqIEBlbmNfc3BpbmxvY2s6CVZpcnR1YWwtRW5jb2Rlci1XaWRlIFNwaW4g TG9jayBmb3IgSVJRIHB1cnBvc2VzCiAgKiBAZW5hYmxlX3N0YXRlOglFbmFibGUgc3RhdGUgdHJh Y2tpbmcKICAqIEB2YmxhbmtfcmVmY291bnQ6CVJlZmVyZW5jZSBjb3VudCBvZiB2YmxhbmsgcmVx dWVzdApAQCAtMjM3LDcgKzIzNyw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzIHsKIAllbnVt IGRwdV9lbmNfc3BsaXRfcm9sZSBzcGxpdF9yb2xlOwogCWVudW0gZHB1X2ludGZfbW9kZSBpbnRm X21vZGU7CiAJZW51bSBkcHVfaW50ZiBpbnRmX2lkeDsKLQllbnVtIGRwdV9ybV90b3BvbG9neV9u YW1lIHRvcG9sb2d5X25hbWU7CiAJc3BpbmxvY2tfdCAqZW5jX3NwaW5sb2NrOwogCWVudW0gZHB1 X2VuY19lbmFibGVfc3RhdGUgZW5hYmxlX3N0YXRlOwogCWF0b21pY190IHZibGFua19yZWZjb3Vu dDsKQEAgLTM1NSwxMSArMzU0LDE1IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpkcHVfZW5j b2Rlcl9waHlzX2NtZF9pbml0KAogc3RhdGljIGlubGluZSBlbnVtIGRwdV8zZF9ibGVuZF9tb2Rl IGRwdV9lbmNvZGVyX2hlbHBlcl9nZXRfM2RfYmxlbmRfbW9kZSgKIAkJc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXNfZW5jKQogeworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0 ZTsKKwogCWlmICghcGh5c19lbmMgfHwgcGh5c19lbmMtPmVuYWJsZV9zdGF0ZSA9PSBEUFVfRU5D X0RJU0FCTElORykKIAkJcmV0dXJuIEJMRU5EXzNEX05PTkU7CiAKKwlkcHVfY3N0YXRlID0gdG9f ZHB1X2NydGNfc3RhdGUocGh5c19lbmMtPnBhcmVudC0+Y3J0Yy0+c3RhdGUpOworCiAJaWYgKHBo eXNfZW5jLT5zcGxpdF9yb2xlID09IEVOQ19ST0xFX1NPTE8gJiYKLQkgICAgcGh5c19lbmMtPnRv cG9sb2d5X25hbWUgPT0gRFBVX1JNX1RPUE9MT0dZX0RVQUxQSVBFXzNETUVSR0UpCisJICAgIGRw dV9jcnRjX3N0YXRlX2lzX3N0ZXJlbyhkcHVfY3N0YXRlKSkKIAkJcmV0dXJuIEJMRU5EXzNEX0hf Uk9XX0lOVDsKIAogCXJldHVybiBCTEVORF8zRF9OT05FOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKaW5kZXggNmZjNzA2MC4u ODRkZTM4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXJfcGh5c192aWQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlcl9waHlzX3ZpZC5jCkBAIC0zNTUsMTMgKzM1NSwxNCBAQCBzdGF0aWMgdm9pZCBkcHVf ZW5jb2Rlcl9waHlzX3ZpZF91bmRlcnJ1bl9pcnEodm9pZCAqYXJnLCBpbnQgaXJxX2lkeCkKIAog c3RhdGljIGJvb2wgX2RwdV9lbmNvZGVyX3BoeXNfaXNfZHVhbF9jdGwoc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXNfZW5jKQogeworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0 ZTsKKwogCWlmICghcGh5c19lbmMpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChwaHlzX2VuYy0+ dG9wb2xvZ3lfbmFtZSA9PSBEUFVfUk1fVE9QT0xPR1lfRFVBTFBJUEUpCi0JCXJldHVybiB0cnVl OworCWRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShwaHlzX2VuYy0+cGFyZW50LT5jcnRj LT5zdGF0ZSk7CiAKLQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIGRwdV9jc3RhdGUtPm51bV9jdGxz ID4gMTsKIH0KIAogc3RhdGljIGJvb2wgZHB1X2VuY29kZXJfcGh5c192aWRfbmVlZHNfc2luZ2xl X2ZsdXNoKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Jt LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwppbmRleCAxMTY0NTYx Li40NjM4YzMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf cm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwpAQCAtMjQs MzMgKzI0LDEzIEBACiAjZGVmaW5lIFJFU0VSVkVEX0JZX09USEVSKGgsIHIpIFwKIAkoKGgpLT5y c3ZwICYmICgoaCktPnJzdnAtPmVuY19pZCAhPSAociktPmVuY19pZCkpCiAKLSNkZWZpbmUgUk1f SVNfVE9QT0xPR1lfTUFUQ0godCwgcikgKCh0KS5udW1fbG0gPT0gKHIpLm51bV9sbSAmJiBcCi0J CQkJKHQpLm51bV9jb21wX2VuYyA9PSAocikubnVtX2VuYyAmJiBcCi0JCQkJKHQpLm51bV9pbnRm ID09IChyKS5udW1faW50ZikKLQotc3RydWN0IGRwdV9ybV90b3BvbG9neV9kZWYgewotCWVudW0g ZHB1X3JtX3RvcG9sb2d5X25hbWUgdG9wX25hbWU7Ci0JaW50IG51bV9sbTsKLQlpbnQgbnVtX2Nv bXBfZW5jOwotCWludCBudW1faW50ZjsKLQlpbnQgbnVtX2N0bDsKLQlpbnQgbmVlZHNfc3BsaXRf ZGlzcGxheTsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3JtX3RvcG9sb2d5X2RlZiBn X3RvcF90YWJsZVtdID0gewotCXsgICBEUFVfUk1fVE9QT0xPR1lfTk9ORSwgICAgICAgICAgICAg ICAgIDAsIDAsIDAsIDAsIGZhbHNlIH0sCi0JeyAgIERQVV9STV9UT1BPTE9HWV9TSU5HTEVQSVBF LCAgICAgICAgICAgMSwgMCwgMSwgMSwgZmFsc2UgfSwKLQl7ICAgRFBVX1JNX1RPUE9MT0dZX0RV QUxQSVBFLCAgICAgICAgICAgICAyLCAwLCAyLCAyLCB0cnVlICB9LAotCXsgICBEUFVfUk1fVE9Q T0xPR1lfRFVBTFBJUEVfM0RNRVJHRSwgICAgIDIsIDAsIDEsIDEsIGZhbHNlIH0sCi19OwotCiAv KioKICAqIHN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzIC0gUmVzZXJ2YXRpb24gcmVxdWlyZW1l bnRzIHBhcmFtZXRlciBidW5kbGUKLSAqIEB0b3A6ICAgICAgIHNlbGVjdGVkIHRvcG9sb2d5IGZv ciB0aGUgZGlzcGxheQorICogQHRvcG9sb2d5OiAgc2VsZWN0ZWQgdG9wb2xvZ3kgZm9yIHRoZSBk aXNwbGF5CiAgKiBAaHdfcmVzOgkgICBIYXJkd2FyZSByZXNvdXJjZXMgcmVxdWlyZWQgYXMgcmVw b3J0ZWQgYnkgdGhlIGVuY29kZXJzCiAgKi8KIHN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzIHsK LQljb25zdCBzdHJ1Y3QgZHB1X3JtX3RvcG9sb2d5X2RlZiAqdG9wb2xvZ3k7CisJc3RydWN0IG1z bV9kaXNwbGF5X3RvcG9sb2d5ICp0b3BvbG9neTsKIAlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVz b3VyY2VzIGh3X3JlczsKIH07CiAKQEAgLTY2LDEzICs0NiwxMSBAQCBzdHJ1Y3QgZHB1X3JtX3Jl cXVpcmVtZW50cyB7CiAgKiBAZW5jX2lkOglSZXNlcnZhdGlvbnMgYXJlIHRyYWNrZWQgYnkgRW5j b2RlciBEUk0gb2JqZWN0IElELgogICoJCUNSVENzIG1heSBiZSBjb25uZWN0ZWQgdG8gbXVsdGlw bGUgRW5jb2RlcnMuCiAgKgkJQW4gZW5jb2RlciBvciBjb25uZWN0b3IgaWQgaWRlbnRpZmllcyB0 aGUgZGlzcGxheSBwYXRoLgotICogQHRvcG9sb2d5CURSTTwtPkhXIHRvcG9sb2d5IHVzZSBjYXNl CiAgKi8KIHN0cnVjdCBkcHVfcm1fcnN2cCB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogCXVp bnQzMl90IHNlcTsKIAl1aW50MzJfdCBlbmNfaWQ7Ci0JZW51bSBkcHVfcm1fdG9wb2xvZ3lfbmFt ZSB0b3BvbG9neTsKIH07CiAKIC8qKgpAQCAtMTE2LDggKzk0LDggQEAgc3RhdGljIHZvaWQgX2Rw dV9ybV9wcmludF9yc3ZwcygKIAlEUFVfREVCVUcoIiVkXG4iLCBzdGFnZSk7CiAKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KHJzdnAsICZybS0+cnN2cHMsIGxpc3QpIHsKLQkJRFJNX0RFQlVHX0tNUygi JWQgcnN2cFtzJXVlJXVdIHRvcG9sb2d5ICVkXG4iLCBzdGFnZSwgcnN2cC0+c2VxLAotCQkJICAg ICAgcnN2cC0+ZW5jX2lkLCByc3ZwLT50b3BvbG9neSk7CisJCURSTV9ERUJVR19LTVMoIiVkIHJz dnBbcyV1ZSV1XVxuIiwgc3RhZ2UsIHJzdnAtPnNlcSwKKwkJCSAgICAgIHJzdnAtPmVuY19pZCk7 CiAJfQogCiAJZm9yICh0eXBlID0gMDsgdHlwZSA8IERQVV9IV19CTEtfTUFYOyB0eXBlKyspIHsK QEAgLTE0MCwxOCArMTE4LDYgQEAgc3RydWN0IGRwdV9od19tZHAgKmRwdV9ybV9nZXRfbWRwKHN0 cnVjdCBkcHVfcm0gKnJtKQogCXJldHVybiBybS0+aHdfbWRwOwogfQogCi1lbnVtIGRwdV9ybV90 b3BvbG9neV9uYW1lCi1kcHVfcm1fZ2V0X3RvcG9sb2d5X25hbWUoc3RydWN0IG1zbV9kaXNwbGF5 X3RvcG9sb2d5IHRvcG9sb2d5KQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IERQVV9S TV9UT1BPTE9HWV9NQVg7IGkrKykKLQkJaWYgKFJNX0lTX1RPUE9MT0dZX01BVENIKGdfdG9wX3Rh YmxlW2ldLCB0b3BvbG9neSkpCi0JCQlyZXR1cm4gZ190b3BfdGFibGVbaV0udG9wX25hbWU7Ci0K LQlyZXR1cm4gRFBVX1JNX1RPUE9MT0dZX05PTkU7Ci19Ci0KIHZvaWQgZHB1X3JtX2luaXRfaHdf aXRlcigKIAkJc3RydWN0IGRwdV9ybV9od19pdGVyICppdGVyLAogCQl1aW50MzJfdCBlbmNfaWQs CkBAIC00MzQsNiArNDAwLDExIEBAIGludCBkcHVfcm1faW5pdChzdHJ1Y3QgZHB1X3JtICpybSwK IAlyZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBib29sIF9kcHVfcm1fbmVlZHNfc3BsaXRfZGlzcGxh eShjb25zdCBzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgKnRvcCkKK3sKKwlyZXR1cm4gdG9w LT5udW1faW50ZiA+IDE7Cit9CisKIC8qKgogICogX2RwdV9ybV9jaGVja19sbV9hbmRfZ2V0X2Nv bm5lY3RlZF9ibGtzIC0gY2hlY2sgaWYgcHJvcG9zZWQgbGF5ZXIgbWl4ZXIgbWVldHMKICAqCXBy b3Bvc2VkIHVzZSBjYXNlIHJlcXVpcmVtZW50cywgaW5jbC4gaGFyZHdpcmVkIGRlcGVuZGVudCBi bG9ja3MgbGlrZQpAQCAtNTc5LDE0ICs1NTAsMjAgQEAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2Vy dmVfbG1zKAogc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfY3RscygKIAkJc3RydWN0IGRwdV9y bSAqcm0sCiAJCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cCwKLQkJY29uc3Qgc3RydWN0IGRwdV9y bV90b3BvbG9neV9kZWYgKnRvcCkKKwkJY29uc3Qgc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5 ICp0b3ApCiB7CiAJc3RydWN0IGRwdV9ybV9od19ibGsgKmN0bHNbTUFYX0JMT0NLU107CiAJc3Ry dWN0IGRwdV9ybV9od19pdGVyIGl0ZXI7Ci0JaW50IGkgPSAwOworCWludCBpID0gMCwgbnVtX2N0 bHMgPSAwOworCWJvb2wgbmVlZHNfc3BsaXRfZGlzcGxheSA9IGZhbHNlOwogCiAJbWVtc2V0KCZj dGxzLCAwLCBzaXplb2YoY3RscykpOwogCisJLyogZWFjaCBod19pbnRmIG5lZWRzIGl0cyBvd24g aHdfY3RybCB0byBwcm9ncmFtIGl0cyBjb250cm9sIHBhdGggKi8KKwludW1fY3RscyA9IHRvcC0+ bnVtX2ludGY7CisKKwluZWVkc19zcGxpdF9kaXNwbGF5ID0gX2RwdV9ybV9uZWVkc19zcGxpdF9k aXNwbGF5KHRvcCk7CisKIAlkcHVfcm1faW5pdF9od19pdGVyKCZpdGVyLCAwLCBEUFVfSFdfQkxL X0NUTCk7CiAJd2hpbGUgKF9kcHVfcm1fZ2V0X2h3X2xvY2tlZChybSwgJml0ZXIpKSB7CiAJCWNv bnN0IHN0cnVjdCBkcHVfaHdfY3RsICpjdGwgPSB0b19kcHVfaHdfY3RsKGl0ZXIuYmxrLT5odyk7 CkBAIC02MDAsMjAgKzU3NywyMCBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9jdGxzKAog CiAJCURQVV9ERUJVRygiY3RsICVkIGNhcHMgMHglbFhcbiIsIGl0ZXIuYmxrLT5pZCwgZmVhdHVy ZXMpOwogCi0JCWlmICh0b3AtPm5lZWRzX3NwbGl0X2Rpc3BsYXkgIT0gaGFzX3NwbGl0X2Rpc3Bs YXkpCisJCWlmIChuZWVkc19zcGxpdF9kaXNwbGF5ICE9IGhhc19zcGxpdF9kaXNwbGF5KQogCQkJ Y29udGludWU7CiAKIAkJY3Rsc1tpXSA9IGl0ZXIuYmxrOwogCQlEUFVfREVCVUcoImN0bCAlZCBt YXRjaFxuIiwgaXRlci5ibGstPmlkKTsKIAotCQlpZiAoKytpID09IHRvcC0+bnVtX2N0bCkKKwkJ aWYgKCsraSA9PSBudW1fY3RscykKIAkJCWJyZWFrOwogCX0KIAotCWlmIChpICE9IHRvcC0+bnVt X2N0bCkKKwlpZiAoaSAhPSBudW1fY3RscykKIAkJcmV0dXJuIC1FTkFWQUlMOwogCi0JZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoY3RscykgJiYgaSA8IHRvcC0+bnVtX2N0bDsgaSsrKSB7CisJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3RscykgJiYgaSA8IG51bV9jdGxzOyBpKyspIHsK IAkJY3Rsc1tpXS0+cnN2cF9ueHQgPSByc3ZwOwogCQl0cmFjZV9kcHVfcm1fcmVzZXJ2ZV9jdGxz KGN0bHNbaV0tPmlkLCBjdGxzW2ldLT50eXBlLAogCQkJCQkgIHJzdnAtPmVuY19pZCk7CkBAIC02 ODYsMTIgKzY2MywxMCBAQCBzdGF0aWMgaW50IF9kcHVfcm1fbWFrZV9uZXh0X3JzdnAoCiAJCXN0 cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzICpyZXFzKQogewogCWludCByZXQ7Ci0Jc3RydWN0IGRw dV9ybV90b3BvbG9neV9kZWYgdG9wb2xvZ3k7CiAKIAkvKiBDcmVhdGUgcmVzZXJ2YXRpb24gaW5m bywgdGFnIHJlc2VydmVkIGJsb2NrcyB3aXRoIGl0IGFzIHdlIGdvICovCiAJcnN2cC0+c2VxID0g KytybS0+cnN2cF9uZXh0X3NlcTsKIAlyc3ZwLT5lbmNfaWQgPSBlbmMtPmJhc2UuaWQ7Ci0JcnN2 cC0+dG9wb2xvZ3kgPSByZXFzLT50b3BvbG9neS0+dG9wX25hbWU7CiAJbGlzdF9hZGRfdGFpbCgm cnN2cC0+bGlzdCwgJnJtLT5yc3Zwcyk7CiAKIAlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfbG1zKHJt LCByc3ZwLCByZXFzKTsKQEAgLTcwMCwxNyArNjc1LDcgQEAgc3RhdGljIGludCBfZHB1X3JtX21h a2VfbmV4dF9yc3ZwKAogCQlyZXR1cm4gcmV0OwogCX0KIAotCS8qCi0JICogRG8gYXNzaWdubWVu dCBwcmVmZXJyaW5nIHRvIGdpdmUgYXdheSBsb3ctcmVzb3VyY2UgQ1RMcyBmaXJzdDoKLQkgKiAt IENoZWNrIG1peGVycyB3aXRob3V0IFNwbGl0IERpc3BsYXkKLQkgKiAtIE9ubHkgdGhlbiBhbGxv dyB0byBncmFiIGZyb20gQ1RMcyB3aXRoIHNwbGl0IGRpc3BsYXkgY2FwYWJpbGl0eQotCSAqLwot CV9kcHVfcm1fcmVzZXJ2ZV9jdGxzKHJtLCByc3ZwLCByZXFzLT50b3BvbG9neSk7Ci0JaWYgKHJl dCAmJiAhcmVxcy0+dG9wb2xvZ3ktPm5lZWRzX3NwbGl0X2Rpc3BsYXkpIHsKLQkJbWVtY3B5KCZ0 b3BvbG9neSwgcmVxcy0+dG9wb2xvZ3ksIHNpemVvZih0b3BvbG9neSkpOwotCQl0b3BvbG9neS5u ZWVkc19zcGxpdF9kaXNwbGF5ID0gdHJ1ZTsKLQkJX2RwdV9ybV9yZXNlcnZlX2N0bHMocm0sIHJz dnAsICZ0b3BvbG9neSk7Ci0JfQorCXJldCA9IF9kcHVfcm1fcmVzZXJ2ZV9jdGxzKHJtLCByc3Zw LCByZXFzLT50b3BvbG9neSk7CiAJaWYgKHJldCkgewogCQlEUFVfRVJST1IoInVuYWJsZSB0byBm aW5kIGFwcHJvcHJpYXRlIENUTFxuIik7CiAJCXJldHVybiByZXQ7CkBAIC03MzAsMjkgKzY5NSwx MyBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcG9wdWxhdGVfcmVxdWlyZW1lbnRzKAogCQlzdHJ1Y3Qg ZHB1X3JtX3JlcXVpcmVtZW50cyAqcmVxcywKIAkJc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5 IHJlcV90b3BvbG9neSkKIHsKLQlpbnQgaTsKLQotCW1lbXNldChyZXFzLCAwLCBzaXplb2YoKnJl cXMpKTsKLQogCWRwdV9lbmNvZGVyX2dldF9od19yZXNvdXJjZXMoZW5jLCAmcmVxcy0+aHdfcmVz KTsKIAotCWZvciAoaSA9IDA7IGkgPCBEUFVfUk1fVE9QT0xPR1lfTUFYOyBpKyspIHsKLQkJaWYg KFJNX0lTX1RPUE9MT0dZX01BVENIKGdfdG9wX3RhYmxlW2ldLAotCQkJCQlyZXFfdG9wb2xvZ3kp KSB7Ci0JCQlyZXFzLT50b3BvbG9neSA9ICZnX3RvcF90YWJsZVtpXTsKLQkJCWJyZWFrOwotCQl9 Ci0JfQorCSpyZXFzLT50b3BvbG9neSA9IHJlcV90b3BvbG9neTsKIAotCWlmICghcmVxcy0+dG9w b2xvZ3kpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIHRvcG9sb2d5IGZvciB0aGUgZGlzcGxheVxu Iik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCURSTV9ERUJVR19LTVMoIm51bV9sbTogJWQg bnVtX2N0bDogJWQgdG9wb2xvZ3k6ICVkIHNwbGl0X2Rpc3BsYXk6ICVkXG4iLAotCQkgICAgICBy ZXFzLT50b3BvbG9neS0+bnVtX2xtLCByZXFzLT50b3BvbG9neS0+bnVtX2N0bCwKLQkJICAgICAg cmVxcy0+dG9wb2xvZ3ktPnRvcF9uYW1lLAotCQkgICAgICByZXFzLT50b3BvbG9neS0+bmVlZHNf c3BsaXRfZGlzcGxheSk7CisJRFJNX0RFQlVHX0tNUygibnVtX2xtOiAlZCBudW1fZW5jOiAlZCBu dW1faW50ZjogJWRcbiIsCisJCSAgICAgIHJlcXMtPnRvcG9sb2d5LT5udW1fbG0sIHJlcXMtPnRv cG9sb2d5LT5udW1fZW5jLAorCQkgICAgICByZXFzLT50b3BvbG9neS0+bnVtX2ludGYpOwogCiAJ cmV0dXJuIDA7CiB9CkBAIC04NDMsMTEgKzc5MiwxMCBAQCB2b2lkIGRwdV9ybV9yZWxlYXNlKHN0 cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYykKIAltdXRleF91bmxvY2so JnJtLT5ybV9sb2NrKTsKIH0KIAotc3RhdGljIGludCBfZHB1X3JtX2NvbW1pdF9yc3ZwKHN0cnVj dCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnApCitzdGF0aWMgdm9pZCBfZHB1 X3JtX2NvbW1pdF9yc3ZwKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJz dnApCiB7CiAJc3RydWN0IGRwdV9ybV9od19ibGsgKmJsazsKIAllbnVtIGRwdV9od19ibGtfdHlw ZSB0eXBlOwotCWludCByZXQgPSAwOwogCiAJLyogU3dhcCBuZXh0IHJzdnAgdG8gYmUgdGhlIGFj dGl2ZSAqLwogCWZvciAodHlwZSA9IDA7IHR5cGUgPCBEUFVfSFdfQkxLX01BWDsgdHlwZSsrKSB7 CkBAIC04NTgsMTIgKzgwNiw2IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9jb21taXRfcnN2cChzdHJ1 Y3QgZHB1X3JtICpybSwgc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwKQogCQkJfQogCQl9CiAJfQot Ci0JaWYgKCFyZXQpCi0JCURSTV9ERUJVR19LTVMoInJzcnYgZW5jICVkIHRvcG9sb2d5ICVkXG4i LCByc3ZwLT5lbmNfaWQsCi0JCQkgICAgICByc3ZwLT50b3BvbG9neSk7Ci0KLQlyZXR1cm4gcmV0 OwogfQogCiBpbnQgZHB1X3JtX3Jlc2VydmUoCkBAIC04ODksNiArODMxLDExIEBAIGludCBkcHVf cm1fcmVzZXJ2ZSgKIAlEUk1fREVCVUdfS01TKCJyZXNlcnZpbmcgaHcgZm9yIGVuYyAlZCBjcnRj ICVkIHRlc3Rfb25seSAlZFxuIiwKIAkJICAgICAgZW5jLT5iYXNlLmlkLCBjcnRjX3N0YXRlLT5j cnRjLT5iYXNlLmlkLCB0ZXN0X29ubHkpOwogCisJcmVxcy50b3BvbG9neSA9IGt6YWxsb2Moc2l6 ZW9mKHN0cnVjdCBtc21fZGlzcGxheV90b3BvbG9neSksCisJCQkJR0ZQX0tFUk5FTCk7CisJaWYg KCFyZXFzLnRvcG9sb2d5KQorCQlyZXR1cm4gLUVOT01FTTsKKwogCW11dGV4X2xvY2soJnJtLT5y bV9sb2NrKTsKIAogCV9kcHVfcm1fcHJpbnRfcnN2cHMocm0sIERQVV9STV9TVEFHRV9CRUdJTik7 CkBAIC05NDYsNiArODkzLDcgQEAgaW50IGRwdV9ybV9yZXNlcnZlKAogCiBlbmQ6CiAJbXV0ZXhf dW5sb2NrKCZybS0+cm1fbG9jayk7CisJa2ZyZWUocmVxcy50b3BvbG9neSk7CiAKIAlyZXR1cm4g cmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Jt LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaAppbmRleCAyODQ4MWEx Li5iODI3M2JkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf cm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaApAQCAtMjEs MjEgKzIxLDYgQEAKICNpbmNsdWRlICJkcHVfaHdfdG9wLmgiCiAKIC8qKgotICogZW51bSBkcHVf cm1fdG9wb2xvZ3lfbmFtZSAtIEhXIHJlc291cmNlIHVzZSBjYXNlIGluIHVzZSBieSBjb25uZWN0 b3IKLSAqIEBEUFVfUk1fVE9QT0xPR1lfTk9ORTogICAgICAgICAgICAgICAgIE5vIHRvcG9sb2d5 IGluIHVzZSBjdXJyZW50bHkKLSAqIEBEUFVfUk1fVE9QT0xPR1lfU0lOR0xFUElQRTogICAgICAg ICAgIDEgTE0sIDEgUFAsIDEgSU5URi9XQgotICogQERQVV9STV9UT1BPTE9HWV9EVUFMUElQRTog ICAgICAgICAgICAgMiBMTSwgMiBQUCwgMiBJTlRGL1dCCi0gKiBARFBVX1JNX1RPUE9MT0dZX0RV QUxQSVBFXzNETUVSR0U6ICAgICAyIExNLCAyIFBQLCAzRE11eCwgMSBJTlRGL1dCCi0gKi8KLWVu dW0gZHB1X3JtX3RvcG9sb2d5X25hbWUgewotCURQVV9STV9UT1BPTE9HWV9OT05FID0gMCwKLQlE UFVfUk1fVE9QT0xPR1lfU0lOR0xFUElQRSwKLQlEUFVfUk1fVE9QT0xPR1lfRFVBTFBJUEUsCi0J RFBVX1JNX1RPUE9MT0dZX0RVQUxQSVBFXzNETUVSR0UsCi0JRFBVX1JNX1RPUE9MT0dZX01BWCwK LX07Ci0KLS8qKgogICogc3RydWN0IGRwdV9ybSAtIERQVSBkeW5hbWljIGhhcmR3YXJlIHJlc291 cmNlIG1hbmFnZXIKICAqIEBkZXY6IGRldmljZSBoYW5kbGUgZm9yIGV2ZW50IGxvZ2dpbmcgcHVy cG9zZXMKICAqIEByc3ZwczogbGlzdCBvZiBoYXJkd2FyZSByZXNlcnZhdGlvbnMgYnkgZWFjaCBj cnRjLT5lbmNvZGVyLT5jb25uZWN0b3IKQEAgLTE2NywxMyArMTUyLDQgQEAgdm9pZCBkcHVfcm1f aW5pdF9od19pdGVyKAogICovCiBpbnQgZHB1X3JtX2NoZWNrX3Byb3BlcnR5X3RvcGN0bCh1aW50 NjRfdCB2YWwpOwogCi0vKioKLSAqIGRwdV9ybV9nZXRfdG9wb2xvZ3lfbmFtZSAtIHJldHVybnMg dGhlIG5hbWUgb2YgdGhlIHRoZSBnaXZlbiB0b3BvbG9neQotICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVmaW5pdGlvbgotICogQHRvcG9sb2d5OiB0b3BvbG9neSBkZWZpbml0aW9uCi0g KiBAUmV0dXJuOiBuYW1lIG9mIHRoZSB0b3BvbG9neQotICovCi1lbnVtIGRwdV9ybV90b3BvbG9n eV9uYW1lCi1kcHVfcm1fZ2V0X3RvcG9sb2d5X25hbWUoc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9s b2d5IHRvcG9sb2d5KTsKLQogI2VuZGlmIC8qIF9fRFBVX1JNX0hfXyAqLwotLSAKVGhlIFF1YWxj b21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9y YSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxp bmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==