From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH v6 17/19] drm/msm/dpu: remove RM dependency on connector state Date: Fri, 7 Sep 2018 17:24:25 -0700 Message-ID: <1536366267-22336-18-git-send-email-jsanka@codeaurora.org> References: <1536366267-22336-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: <1536366267-22336-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 , jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Q29ubmVjdG9yIHN0YXRlcyB3ZXJlIHBhc3NlZCBhcm91bmQgUk0gdG8gdXBkYXRlIHRoZSBjdXN0 b20KdG9wb2xvZ3kgY29ubmVjdG9yIHByb3BlcnR5IHdpdGggY2hvc2VuIHRvcG9sb2d5IGRhdGEu IE5vdyB0aGF0CndlIGdvdCByaWQgb2YgYm90aCBjdXN0b20gcHJvcGVydGllcyBhbmQgdG9wb2xv Z3kgbmFtZXMsIHRoaXMKY2hhbmdlIGNsZWFucyB1cCB0aGUgbWVjaGFuaXNtIHRvIHBhc3MgY29u bmVjdG9yIHN0YXRlcyBhY3Jvc3MKUk0gaGVscGVycyBhbmQgZW5jb2RlciBmdW5jdGlvbnMuCgpj aGFuZ2VzIGluIHY1OgoJLSBJbnRyb2R1Y2VkIGluIHRoZSBzZXJpZXMKY2hhbmdlcyBpbiB2NjoK CS0gcmVtb3ZlIHBhcmFtZXRlciBjaGVja2luZyBpbiBybSByZXNlcnZlIChKb3JkYW4pCgpTaWdu ZWQtb2ZmLWJ5OiBKZXlrdW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgpSZXZp ZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ci0tLQogZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyAgICAgICAgfCAxNSArKystLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmggICAgICAgIHwgIDQgKy0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaCAgIHwgIDMg Ky0KIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYyAgIHwg IDMgKy0KIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYyAg IHwgIDcgKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYyAgICAgICAg ICAgICB8IDYzICsrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9ybS5oICAgICAgICAgICAgIHwgIDIgLQogNyBmaWxlcyBjaGFuZ2VkLCAyNiBp bnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCAwZDQzNTI1Li4xOGY1ZDFkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTQzNiwxNSArNDM2LDE0IEBA IGludCBkcHVfZW5jb2Rlcl9oZWxwZXJfdW5yZWdpc3Rlcl9pcnEoc3RydWN0IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXNfZW5jLAogfQogCiB2b2lkIGRwdV9lbmNvZGVyX2dldF9od19yZXNvdXJjZXMo c3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAotCQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVz b3VyY2VzICpod19yZXMsCi0JCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQorCQkJCSAgc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzKQogewogCXN0 cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jID0gTlVMTDsKIAlpbnQgaSA9IDA7CiAKLQlp ZiAoIWh3X3JlcyB8fCAhZHJtX2VuYyB8fCAhY29ubl9zdGF0ZSkgewotCQlEUFVfRVJST1IoImlu dmFsaWQgYXJndW1lbnQocyksIGRybV9lbmMgJWQsIHJlcyAlZCwgc3RhdGUgJWRcbiIsCi0JCQkJ ZHJtX2VuYyAhPSAwLCBod19yZXMgIT0gMCwgY29ubl9zdGF0ZSAhPSAwKTsKKwlpZiAoIWh3X3Jl cyB8fCAhZHJtX2VuYykgeworCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnQocyksIGRybV9l bmMgJWQsIHJlcyAlZFxuIiwKKwkJCSAgZHJtX2VuYyAhPSAwLCBod19yZXMgIT0gMCk7CiAJCXJl dHVybjsKIAl9CiAKQEAgLTQ1OCw3ICs0NTcsNyBAQCB2b2lkIGRwdV9lbmNvZGVyX2dldF9od19y ZXNvdXJjZXMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQlzdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5cyAqcGh5cyA9IGRwdV9lbmMtPnBoeXNfZW5jc1tpXTsKIAogCQlpZiAocGh5cyAmJiBw aHlzLT5vcHMuZ2V0X2h3X3Jlc291cmNlcykKLQkJCXBoeXMtPm9wcy5nZXRfaHdfcmVzb3VyY2Vz KHBoeXMsIGh3X3JlcywgY29ubl9zdGF0ZSk7CisJCQlwaHlzLT5vcHMuZ2V0X2h3X3Jlc291cmNl cyhwaHlzLCBod19yZXMpOwogCX0KIH0KIApAQCAtNjUyLDcgKzY1MSw3IEBAIHN0YXRpYyBpbnQg ZHB1X2VuY29kZXJfdmlydF9hdG9taWNfY2hlY2soCiAJCWlmIChkcm1fYXRvbWljX2NydGNfbmVl ZHNfbW9kZXNldChjcnRjX3N0YXRlKQogCQkJCSYmIGRwdV9lbmMtPm1vZGVfc2V0X2NvbXBsZXRl KSB7CiAJCQlyZXQgPSBkcHVfcm1fcmVzZXJ2ZSgmZHB1X2ttcy0+cm0sIGRybV9lbmMsIGNydGNf c3RhdGUsCi0JCQkJY29ubl9zdGF0ZSwgdG9wb2xvZ3ksIHRydWUpOworCQkJCQkgICAgIHRvcG9s b2d5LCB0cnVlKTsKIAkJCWRwdV9lbmMtPm1vZGVfc2V0X2NvbXBsZXRlID0gZmFsc2U7CiAJCX0K IAl9CkBAIC0xMDQ0LDcgKzEwNDMsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0X21v ZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKIAogCS8qIFJlc2VydmUgZHluYW1p YyByZXNvdXJjZXMgbm93LiBJbmRpY2F0aW5nIG5vbi1BdG9taWNUZXN0IHBoYXNlICovCiAJcmV0 ID0gZHB1X3JtX3Jlc2VydmUoJmRwdV9rbXMtPnJtLCBkcm1fZW5jLCBkcm1fZW5jLT5jcnRjLT5z dGF0ZSwKLQkJCWNvbm4tPnN0YXRlLCB0b3BvbG9neSwgZmFsc2UpOworCQkJICAgICB0b3BvbG9n eSwgZmFsc2UpOwogCWlmIChyZXQpIHsKIAkJRFBVX0VSUk9SX0VOQyhkcHVfZW5jLAogCQkJCSJm YWlsZWQgdG8gcmVzZXJ2ZSBodyByZXNvdXJjZXMsICVkXG4iLCByZXQpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKaW5kZXggZjEwOWI0ZC4uMzRhYzViNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCkBAIC01MSwx MSArNTEsOSBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfa2lja29mZl9wYXJhbXMgewogICogZHB1X2Vu Y29kZXJfZ2V0X2h3X3Jlc291cmNlcyAtIFBvcHVsYXRlIHRhYmxlIG9mIHJlcXVpcmVkIGhhcmR3 YXJlIHJlc291cmNlcwogICogQGVuY29kZXI6CWVuY29kZXIgcG9pbnRlcgogICogQGh3X3JlczoJ cmVzb3VyY2UgdGFibGUgdG8gcG9wdWxhdGUgd2l0aCBlbmNvZGVyIHJlcXVpcmVkIHJlc291cmNl cwotICogQGNvbm5fc3RhdGU6CXJlcG9ydCBodyByZXFzIGJhc2VkIG9uIHRoaXMgcHJvcG9zZWQg Y29ubmVjdG9yIHN0YXRlCiAgKi8KIHZvaWQgZHB1X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNlcyhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNv dXJjZXMgKmh3X3JlcywKLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp OworCQkJCSAgc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzKTsKIAogLyoq CiAgKiBkcHVfZW5jb2Rlcl9yZWdpc3Rlcl92YmxhbmtfY2FsbGJhY2sgLSBwcm92aWRlIGNhbGxi YWNrIHRvIGVuY29kZXIgdGhhdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXJfcGh5cy5oCmluZGV4IGEwMGIyMjIuLjNmZTRlZDkgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKQEAgLTE0MCw4ICsx NDAsNyBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19vcHMgewogCQkJICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKIAl2b2lkICgqZGVzdHJveSkoc3RydWN0IGRw dV9lbmNvZGVyX3BoeXMgKmVuY29kZXIpOwogCXZvaWQgKCpnZXRfaHdfcmVzb3VyY2VzKShzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5cyAqZW5jb2RlciwKLQkJCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19y ZXNvdXJjZXMgKmh3X3JlcywKLQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKTsKKwkJCQkgc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzKTsKIAlp bnQgKCpjb250cm9sX3ZibGFua19pcnEpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICplbmMsIGJv b2wgZW5hYmxlKTsKIAlpbnQgKCp3YWl0X2Zvcl9jb21taXRfZG9uZSkoc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXNfZW5jKTsKIAlpbnQgKCp3YWl0X2Zvcl90eF9jb21wbGV0ZSkoc3RydWN0 IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jCmluZGV4IDVjODk4NjguLmYyNzdh NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy X3BoeXNfY21kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXJfcGh5c19jbWQuYwpAQCAtNTk5LDggKzU5OSw3IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVy X3BoeXNfY21kX2Rlc3Ryb3koc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogCiBz dGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9nZXRfaHdfcmVzb3VyY2VzKAogCQlzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19y ZXNvdXJjZXMgKmh3X3JlcywKLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCisJCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgKmh3X3JlcykKIHsKIAlzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMgPQogCQl0b19kcHVfZW5jb2Rlcl9waHlz X2NtZChwaHlzX2VuYyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXJfcGh5c192aWQuYwppbmRleCA2ZGUxM2Y0Li5mZDUxZmU2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMK QEAgLTUzNywxMiArNTM3LDExIEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfdmlkX2Rl c3Ryb3koc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogCiBzdGF0aWMgdm9pZCBk cHVfZW5jb2Rlcl9waHlzX3ZpZF9nZXRfaHdfcmVzb3VyY2VzKAogCQlzdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5cyAqcGh5c19lbmMsCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgKmh3 X3JlcywKLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCisJCXN0cnVj dCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgKmh3X3JlcykKIHsKIAlpZiAoIXBoeXNfZW5jIHx8 ICFod19yZXMpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZyhzKSwgZW5jICVkIGh3X3JlcyAl ZCBjb25uX3N0YXRlICVkXG4iLAotCQkJCXBoeXNfZW5jICE9IDAsIGh3X3JlcyAhPSAwLCBjb25u X3N0YXRlICE9IDApOworCQlEUFVfRVJST1IoImludmFsaWQgYXJnKHMpLCBlbmMgJWQgaHdfcmVz ICVkXG4iLAorCQkJICBwaHlzX2VuYyAhPSAwLCBod19yZXMgIT0gMCk7CiAJCXJldHVybjsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKaW5kZXggODY0NjZmMC4uMzJk YjhjOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCkBAIC02ODIsNyAr NjgyLDYgQEAgc3RhdGljIGludCBfZHB1X3JtX21ha2VfbmV4dF9yc3ZwKAogCQlzdHJ1Y3QgZHB1 X3JtICpybSwKIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmMsCiAJCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUsCiAJCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cCwKIAkJc3RydWN0IGRwdV9ybV9yZXF1aXJl bWVudHMgKnJlcXMpCiB7CkBAIC03MjgsNyArNzI3LDYgQEAgc3RhdGljIGludCBfZHB1X3JtX3Bv cHVsYXRlX3JlcXVpcmVtZW50cygKIAkJc3RydWN0IGRwdV9ybSAqcm0sCiAJCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jLAogCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAogCQlzdHJ1Y3QgZHB1X3JtX3Jl cXVpcmVtZW50cyAqcmVxcywKIAkJc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5IHJlcV90b3Bv bG9neSkKIHsKQEAgLTczNiw3ICs3MzQsNyBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcG9wdWxhdGVf cmVxdWlyZW1lbnRzKAogCiAJbWVtc2V0KHJlcXMsIDAsIHNpemVvZigqcmVxcykpOwogCi0JZHB1 X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNlcyhlbmMsICZyZXFzLT5od19yZXMsIGNvbm5fc3RhdGUp OworCWRwdV9lbmNvZGVyX2dldF9od19yZXNvdXJjZXMoZW5jLCAmcmVxcy0+aHdfcmVzKTsKIAog CWZvciAoaSA9IDA7IGkgPCBEUFVfUk1fVE9QT0xPR1lfTUFYOyBpKyspIHsKIAkJaWYgKFJNX0lT X1RPUE9MT0dZX01BVENIKGdfdG9wX3RhYmxlW2ldLApAQCAtNzgwLDI5ICs3NzgsMTIgQEAgc3Rh dGljIHN0cnVjdCBkcHVfcm1fcnN2cCAqX2RwdV9ybV9nZXRfcnN2cCgKIAlyZXR1cm4gTlVMTDsK IH0KIAotc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yICpfZHB1X3JtX2dldF9jb25uZWN0b3Io Ci0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jKQotewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uID0gTlVMTDsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpjb25uZWN0b3JfbGlzdCA9Ci0JCQkmZW5j LT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0OwotCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShjb25uLCBjb25uZWN0b3JfbGlzdCwgaGVhZCkKLQkJaWYgKGNvbm4tPmVuY29kZXIgPT0gZW5j KQotCQkJcmV0dXJuIGNvbm47Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQogLyoqCiAgKiBfZHB1X3Jt X3JlbGVhc2VfcnN2cCAtIHJlbGVhc2UgcmVzb3VyY2VzIGFuZCByZWxlYXNlIGEgcmVzZXJ2YXRp b24KICAqIEBybToJS01TIGhhbmRsZQogICogQHJzdnA6CVJTVlAgcG9pbnRlciB0byByZWxlYXNl IGFuZCByZWxlYXNlIHJlc291cmNlcyBmb3IKICAqLwotc3RhdGljIHZvaWQgX2RwdV9ybV9yZWxl YXNlX3JzdnAoCi0JCXN0cnVjdCBkcHVfcm0gKnJtLAotCQlzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJz dnAsCi0JCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uKQorc3RhdGljIHZvaWQgX2RwdV9ybV9y ZWxlYXNlX3JzdnAoc3RydWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cCkK IHsKIAlzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnBfYywgKnJzdnBfbjsKIAlzdHJ1Y3QgZHB1X3Jt X2h3X2JsayAqYmxrOwpAQCAtODQzLDcgKzgyNCw2IEBAIHN0YXRpYyB2b2lkIF9kcHVfcm1fcmVs ZWFzZV9yc3ZwKAogdm9pZCBkcHVfcm1fcmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0 IGRybV9lbmNvZGVyICplbmMpCiB7CiAJc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwOwotCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uOwogCiAJaWYgKCFybSB8fCAhZW5jKSB7CiAJCURQVV9FUlJP UigiaW52YWxpZCBwYXJhbXNcbiIpOwpAQCAtODU4LDIxICs4MzgsMTIgQEAgdm9pZCBkcHVfcm1f cmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRybV9lbmNvZGVyICplbmMpCiAJCWdv dG8gZW5kOwogCX0KIAotCWNvbm4gPSBfZHB1X3JtX2dldF9jb25uZWN0b3IoZW5jKTsKLQlpZiAo IWNvbm4pIHsKLQkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IGNvbm5lY3RvciBmb3IgZW5jICVk XG4iLCBlbmMtPmJhc2UuaWQpOwotCQlnb3RvIGVuZDsKLQl9Ci0KLQlfZHB1X3JtX3JlbGVhc2Vf cnN2cChybSwgcnN2cCwgY29ubik7CisJX2RwdV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnApOwog ZW5kOgogCW11dGV4X3VubG9jaygmcm0tPnJtX2xvY2spOwogfQogCi1zdGF0aWMgaW50IF9kcHVf cm1fY29tbWl0X3JzdnAoCi0JCXN0cnVjdCBkcHVfcm0gKnJtLAotCQlzdHJ1Y3QgZHB1X3JtX3Jz dnAgKnJzdnAsCi0JCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQorc3Rh dGljIGludCBfZHB1X3JtX2NvbW1pdF9yc3ZwKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHB1 X3JtX3JzdnAgKnJzdnApCiB7CiAJc3RydWN0IGRwdV9ybV9od19ibGsgKmJsazsKIAllbnVtIGRw dV9od19ibGtfdHlwZSB0eXBlOwpAQCAtODk5LDcgKzg3MCw2IEBAIGludCBkcHVfcm1fcmVzZXJ2 ZSgKIAkJc3RydWN0IGRwdV9ybSAqcm0sCiAJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jLAogCQlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlLAogCQlzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgdG9wb2xv Z3ksCiAJCWJvb2wgdGVzdF9vbmx5KQogewpAQCAtOTA3LDI1ICs4NzcsMTkgQEAgaW50IGRwdV9y bV9yZXNlcnZlKAogCXN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzIHJlcXM7CiAJaW50IHJldDsK IAotCWlmICghcm0gfHwgIWVuYyB8fCAhY3J0Y19zdGF0ZSB8fCAhY29ubl9zdGF0ZSkgewotCQlE UFVfRVJST1IoImludmFsaWQgYXJndW1lbnRzXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQot CiAJLyogQ2hlY2sgaWYgdGhpcyBpcyBqdXN0IGEgcGFnZS1mbGlwICovCiAJaWYgKCFkcm1fYXRv bWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQlEUk1f REVCVUdfS01TKCJyZXNlcnZpbmcgaHcgZm9yIGNvbm4gJWQgZW5jICVkIGNydGMgJWQgdGVzdF9v bmx5ICVkXG4iLAotCQkgICAgICBjb25uX3N0YXRlLT5jb25uZWN0b3ItPmJhc2UuaWQsIGVuYy0+ YmFzZS5pZCwKLQkJICAgICAgY3J0Y19zdGF0ZS0+Y3J0Yy0+YmFzZS5pZCwgdGVzdF9vbmx5KTsK KwlEUk1fREVCVUdfS01TKCJyZXNlcnZpbmcgaHcgZm9yIGVuYyAlZCBjcnRjICVkIHRlc3Rfb25s eSAlZFxuIiwKKwkJICAgICAgZW5jLT5iYXNlLmlkLCBjcnRjX3N0YXRlLT5jcnRjLT5iYXNlLmlk LCB0ZXN0X29ubHkpOwogCiAJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwogCiAJX2RwdV9ybV9w cmludF9yc3ZwcyhybSwgRFBVX1JNX1NUQUdFX0JFR0lOKTsKIAotCXJldCA9IF9kcHVfcm1fcG9w dWxhdGVfcmVxdWlyZW1lbnRzKHJtLCBlbmMsIGNydGNfc3RhdGUsCi0JCQljb25uX3N0YXRlLCAm cmVxcywgdG9wb2xvZ3kpOworCXJldCA9IF9kcHVfcm1fcG9wdWxhdGVfcmVxdWlyZW1lbnRzKHJt LCBlbmMsIGNydGNfc3RhdGUsICZyZXFzLAorCQkJCQkgICAgdG9wb2xvZ3kpOwogCWlmIChyZXQp IHsKIAkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gcG9wdWxhdGUgaHcgcmVxdWlyZW1lbnRzXG4iKTsK IAkJZ290byBlbmQ7CkBAIC05NTEsMTQgKzkxNSwxMyBAQCBpbnQgZHB1X3JtX3Jlc2VydmUoCiAJ cnN2cF9jdXIgPSBfZHB1X3JtX2dldF9yc3ZwKHJtLCBlbmMpOwogCiAJLyogQ2hlY2sgdGhlIHBy b3Bvc2VkIHJlc2VydmF0aW9uLCBzdG9yZSBpdCBpbiBodydzICJuZXh0IiBmaWVsZCAqLwotCXJl dCA9IF9kcHVfcm1fbWFrZV9uZXh0X3JzdnAocm0sIGVuYywgY3J0Y19zdGF0ZSwgY29ubl9zdGF0 ZSwKLQkJCXJzdnBfbnh0LCAmcmVxcyk7CisJcmV0ID0gX2RwdV9ybV9tYWtlX25leHRfcnN2cChy bSwgZW5jLCBjcnRjX3N0YXRlLCByc3ZwX254dCwgJnJlcXMpOwogCiAJX2RwdV9ybV9wcmludF9y c3ZwcyhybSwgRFBVX1JNX1NUQUdFX0FGVEVSX1JTVlBORVhUKTsKIAogCWlmIChyZXQpIHsKIAkJ RFBVX0VSUk9SKCJmYWlsZWQgdG8gcmVzZXJ2ZSBodyByZXNvdXJjZXM6ICVkXG4iLCByZXQpOwot CQlfZHB1X3JtX3JlbGVhc2VfcnN2cChybSwgcnN2cF9ueHQsIGNvbm5fc3RhdGUtPmNvbm5lY3Rv cik7CisJCV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3ZwX254dCk7CiAJfSBlbHNlIGlmICh0 ZXN0X29ubHkpIHsKIAkJLyoKIAkJICogTm9ybWFsbHksIGlmIHRlc3Rfb25seSwgdGVzdCB0aGUg cmVzZXJ2YXRpb24gYW5kIHRoZW4gdW5kbwpAQCAtOTY3LDExICs5MzAsMTEgQEAgaW50IGRwdV9y bV9yZXNlcnZlKAogCQkgKi8KIAkJRFBVX0RFQlVHKCJ0ZXN0X29ubHk6IGRpc2NhcmQgdGVzdCBy c3ZwW3MlZGUlZF1cbiIsCiAJCQkJcnN2cF9ueHQtPnNlcSwgcnN2cF9ueHQtPmVuY19pZCk7Ci0J CV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3ZwX254dCwgY29ubl9zdGF0ZS0+Y29ubmVjdG9y KTsKKwkJX2RwdV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnBfbnh0KTsKIAl9IGVsc2UgewotCQlf ZHB1X3JtX3JlbGVhc2VfcnN2cChybSwgcnN2cF9jdXIsIGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7 CisJCV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3ZwX2N1cik7CiAKLQkJcmV0ID0gX2RwdV9y bV9jb21taXRfcnN2cChybSwgcnN2cF9ueHQsIGNvbm5fc3RhdGUpOworCQlfZHB1X3JtX2NvbW1p dF9yc3ZwKHJtLCByc3ZwX254dCk7CiAJfQogCiAJX2RwdV9ybV9wcmludF9yc3ZwcyhybSwgRFBV X1JNX1NUQUdFX0ZJTkFMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9ybS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKaW5k ZXggM2E2YTU1NDYuLjI4NDgxYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9ybS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9y bS5oCkBAIC0xMDcsNyArMTA3LDYgQEAgaW50IGRwdV9ybV9pbml0KHN0cnVjdCBkcHVfcm0gKnJt LAogICogQHJtOiBEUFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKICAqIEBkcm1fZW5jOiBEUk0g RW5jb2RlciBoYW5kbGUKICAqIEBjcnRjX3N0YXRlOiBQcm9wb3NlZCBBdG9taWMgRFJNIENSVEMg U3RhdGUgaGFuZGxlCi0gKiBAY29ubl9zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDb25uZWN0 b3IgU3RhdGUgaGFuZGxlCiAgKiBAdG9wb2xvZ3k6IFBvaW50ZXIgdG8gdG9wb2xvZ3kgaW5mbyBm b3IgdGhlIGRpc3BsYXkKICAqIEB0ZXN0X29ubHk6IEF0b21pYy1UZXN0IHBoYXNlLCBkaXNjYXJk IHJlc3VsdHMgKHVubGVzcyBwcm9wZXJ0eSBvdmVycmlkZXMpCiAgKiBAUmV0dXJuOiAwIG9uIFN1 Y2Nlc3Mgb3RoZXJ3aXNlIC1FUlJPUgpAQCAtMTE1LDcgKzExNCw2IEBAIGludCBkcHVfcm1faW5p dChzdHJ1Y3QgZHB1X3JtICpybSwKIGludCBkcHVfcm1fcmVzZXJ2ZShzdHJ1Y3QgZHB1X3JtICpy bSwKIAkJc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCi0JCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl LAogCQlzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgdG9wb2xvZ3ksCiAJCWJvb2wgdGVzdF9v bmx5KTsKIAotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVt YmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9y YXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRy ZW5vCg==