From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: Re: [PATCH v5 17/19] drm/msm/dpu: remove RM dependency on connector state Date: Thu, 6 Sep 2018 10:14:28 -0600 Message-ID: <20180906161428.GC13368@jcrouse-lnx.qualcomm.com> References: <1536199708-23664-1-git-send-email-jsanka@codeaurora.org> <1536199708-23664-18-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1536199708-23664-18-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: Jeykumar Sankaran Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBTZXAgMDUsIDIwMTggYXQgMDc6MDg6MjZQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gQ29ubmVjdG9yIHN0YXRlcyB3ZXJlIHBhc3NlZCBhcm91bmQgUk0gdG8gdXBk YXRlIHRoZSBjdXN0b20KPiB0b3BvbG9neSBjb25uZWN0b3IgcHJvcGVydHkgd2l0aCBjaG9zZW4g dG9wb2xvZ3kgZGF0YS4gTm93IHRoYXQKPiB3ZSBnb3QgcmlkIG9mIGJvdGggY3VzdG9tIHByb3Bl cnRpZXMgYW5kIHRvcG9sb2d5IG5hbWVzLCB0aGlzCj4gY2hhbmdlIGNsZWFucyB1cCB0aGUgbWVj aGFuaXNtIHRvIHBhc3MgY29ubmVjdG9yIHN0YXRlcyBhY3Jvc3MKPiBSTSBoZWxwZXJzIGFuZCBl bmNvZGVyIGZ1bmN0aW9ucy4KPiAKPiBjaGFuZ2VzIGluIHY1Ogo+IAktIEludHJvZHVjZWQgaW4g dGhlIHNlcmllcwo+IAo+IFNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FA Y29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyLmMgICAgICAgIHwgMTUgKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmggICAgICAgIHwgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oICAgfCAgMyArLQo+ICAuLi4vZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMgICB8ICAzICstCj4gIC4uLi9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYyAgIHwgIDcgKystCj4gIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jICAgICAgICAgICAgIHwgNjAgKysr KystLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf cm0uaCAgICAgICAgICAgICB8ICAyIC0KPiAgNyBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25z KCspLCA2NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyLmMKPiBpbmRleCAwZDQzNTI1Li4xOGY1ZDFkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gQEAgLTQzNiwxNSArNDM2LDE0 IEBAIGludCBkcHVfZW5jb2Rlcl9oZWxwZXJfdW5yZWdpc3Rlcl9pcnEoc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXNfZW5jLAo+ICB9Cj4gIAo+ICB2b2lkIGRwdV9lbmNvZGVyX2dldF9od19y ZXNvdXJjZXMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+IC0JCXN0cnVjdCBkcHVfZW5j b2Rlcl9od19yZXNvdXJjZXMgKmh3X3JlcywKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKPiArCQkJCSAgc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAq aHdfcmVzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYyA9IE5VTEw7 Cj4gIAlpbnQgaSA9IDA7Cj4gIAo+IC0JaWYgKCFod19yZXMgfHwgIWRybV9lbmMgfHwgIWNvbm5f c3RhdGUpIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnQocyksIGRybV9lbmMgJWQs IHJlcyAlZCwgc3RhdGUgJWRcbiIsCj4gLQkJCQlkcm1fZW5jICE9IDAsIGh3X3JlcyAhPSAwLCBj b25uX3N0YXRlICE9IDApOwo+ICsJaWYgKCFod19yZXMgfHwgIWRybV9lbmMpIHsKPiArCQlEUFVf RVJST1IoImludmFsaWQgYXJndW1lbnQocyksIGRybV9lbmMgJWQsIHJlcyAlZFxuIiwKPiArCQkJ ICBkcm1fZW5jICE9IDAsIGh3X3JlcyAhPSAwKTsKCkFzIGZhciBhcyBJIGNhbiB0ZWxsIGJvdGgg aHdfcmVzIGFuZCBkcm1fZW5jIHdpbGwgYmUgc2V0IGZvciBhbGwgdGhlIGNhbGxlcnMgc28KdGhp cyBjaGVjayBzaG91bGRuJ3QgYmUgbmVlZGVkLiBJZiB5b3UgYXJlIHBhcmFub2lkIHlvdSBjYW4g c3dpdGNoIHRvIGEKV0FSTl9PTigpIGFuZCBnZXQgcmlkIG9mIHRoZSBjdXN0b20gZXJyb3IgbWVz c2FnZSBidXQgSSBkb24ndCB0aGluayB5b3UgbmVlZCB0by4KCj4gIAkJcmV0dXJuOwo+ICAJfQo+ ICAKPiBAQCAtNDU4LDcgKzQ1Nyw3IEBAIHZvaWQgZHB1X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNl cyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCj4gIAkJc3RydWN0IGRwdV9lbmNvZGVyX3Bo eXMgKnBoeXMgPSBkcHVfZW5jLT5waHlzX2VuY3NbaV07Cj4gIAo+ICAJCWlmIChwaHlzICYmIHBo eXMtPm9wcy5nZXRfaHdfcmVzb3VyY2VzKQo+IC0JCQlwaHlzLT5vcHMuZ2V0X2h3X3Jlc291cmNl cyhwaHlzLCBod19yZXMsIGNvbm5fc3RhdGUpOwo+ICsJCQlwaHlzLT5vcHMuZ2V0X2h3X3Jlc291 cmNlcyhwaHlzLCBod19yZXMpOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC02NTIsNyArNjUxLDcgQEAg c3RhdGljIGludCBkcHVfZW5jb2Rlcl92aXJ0X2F0b21pY19jaGVjaygKPiAgCQlpZiAoZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkKPiAgCQkJCSYmIGRwdV9lbmMtPm1v ZGVfc2V0X2NvbXBsZXRlKSB7Cj4gIAkJCXJldCA9IGRwdV9ybV9yZXNlcnZlKCZkcHVfa21zLT5y bSwgZHJtX2VuYywgY3J0Y19zdGF0ZSwKPiAtCQkJCWNvbm5fc3RhdGUsIHRvcG9sb2d5LCB0cnVl KTsKPiArCQkJCQkgICAgIHRvcG9sb2d5LCB0cnVlKTsKPiAgCQkJZHB1X2VuYy0+bW9kZV9zZXRf Y29tcGxldGUgPSBmYWxzZTsKPiAgCQl9Cj4gIAl9Cj4gQEAgLTEwNDQsNyArMTA0Myw3IEBAIHN0 YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3ZpcnRfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICpk cm1fZW5jLAo+ICAKPiAgCS8qIFJlc2VydmUgZHluYW1pYyByZXNvdXJjZXMgbm93LiBJbmRpY2F0 aW5nIG5vbi1BdG9taWNUZXN0IHBoYXNlICovCj4gIAlyZXQgPSBkcHVfcm1fcmVzZXJ2ZSgmZHB1 X2ttcy0+cm0sIGRybV9lbmMsIGRybV9lbmMtPmNydGMtPnN0YXRlLAo+IC0JCQljb25uLT5zdGF0 ZSwgdG9wb2xvZ3ksIGZhbHNlKTsKPiArCQkJICAgICB0b3BvbG9neSwgZmFsc2UpOwo+ICAJaWYg KHJldCkgewo+ICAJCURQVV9FUlJPUl9FTkMoZHB1X2VuYywKPiAgCQkJCSJmYWlsZWQgdG8gcmVz ZXJ2ZSBodyByZXNvdXJjZXMsICVkXG4iLCByZXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+IGluZGV4IGYxMDliNGQuLjM0YWM1YjYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKPiBAQCAtNTEsMTEg KzUxLDkgQEAgc3RydWN0IGRwdV9lbmNvZGVyX2tpY2tvZmZfcGFyYW1zIHsKPiAgICogZHB1X2Vu Y29kZXJfZ2V0X2h3X3Jlc291cmNlcyAtIFBvcHVsYXRlIHRhYmxlIG9mIHJlcXVpcmVkIGhhcmR3 YXJlIHJlc291cmNlcwo+ICAgKiBAZW5jb2RlcjoJZW5jb2RlciBwb2ludGVyCj4gICAqIEBod19y ZXM6CXJlc291cmNlIHRhYmxlIHRvIHBvcHVsYXRlIHdpdGggZW5jb2RlciByZXF1aXJlZCByZXNv dXJjZXMKPiAtICogQGNvbm5fc3RhdGU6CXJlcG9ydCBodyByZXFzIGJhc2VkIG9uIHRoaXMgcHJv cG9zZWQgY29ubmVjdG9yIHN0YXRlCj4gICAqLwo+ICB2b2lkIGRwdV9lbmNvZGVyX2dldF9od19y ZXNvdXJjZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCXN0cnVjdCBkcHVfZW5j b2Rlcl9od19yZXNvdXJjZXMgKmh3X3JlcywKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSk7Cj4gKwkJCQkgIHN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMg Kmh3X3Jlcyk7Cj4gIAo+ICAvKioKPiAgICogZHB1X2VuY29kZXJfcmVnaXN0ZXJfdmJsYW5rX2Nh bGxiYWNrIC0gcHJvdmlkZSBjYWxsYmFjayB0byBlbmNvZGVyIHRoYXQKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCj4gaW5kZXggYTAwYjIy Mi4uM2ZlNGVkOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlcl9waHlzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlcl9waHlzLmgKPiBAQCAtMTQwLDggKzE0MCw3IEBAIHN0cnVjdCBkcHVfZW5jb2Rl cl9waHlzX29wcyB7Cj4gIAkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSk7Cj4gIAl2b2lkICgqZGVzdHJveSkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKmVuY29k ZXIpOwo+ICAJdm9pZCAoKmdldF9od19yZXNvdXJjZXMpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlz ICplbmNvZGVyLAo+IC0JCQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzICpod19yZXMs Cj4gLQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiArCQkJCSBz dHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzICpod19yZXMpOwo+ICAJaW50ICgqY29udHJv bF92YmxhbmtfaXJxKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqZW5jLCBib29sIGVuYWJsZSk7 Cj4gIAlpbnQgKCp3YWl0X2Zvcl9jb21taXRfZG9uZSkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMg KnBoeXNfZW5jKTsKPiAgCWludCAoKndhaXRfZm9yX3R4X2NvbXBsZXRlKShzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5c19lbmMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYwo+IGluZGV4IDVjODk4NjguLmYyNzdhNjkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJf cGh5c19jbWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNv ZGVyX3BoeXNfY21kLmMKPiBAQCAtNTk5LDggKzU5OSw3IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNv ZGVyX3BoeXNfY21kX2Rlc3Ryb3koc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQo+ ICAKPiAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfZ2V0X2h3X3Jlc291cmNlcygK PiAgCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCj4gLQkJc3RydWN0IGRwdV9l bmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzLAo+IC0JCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQo+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgKmh3 X3JlcykKPiAgewo+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpjbWRfZW5jID0KPiAg CQl0b19kcHVfZW5jb2Rlcl9waHlzX2NtZChwaHlzX2VuYyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCj4gaW5kZXggNmRl MTNmNC4uZmQ1MWZlNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYwo+IEBAIC01MzcsMTIgKzUzNywxMSBAQCBzdGF0 aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9kZXN0cm95KHN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzICpwaHlzX2VuYykKPiAgCj4gIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfdmlkX2dl dF9od19yZXNvdXJjZXMoCj4gIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jLAo+ IC0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgKmh3X3JlcywKPiAtCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiArCQlzdHJ1Y3QgZHB1X2VuY29kZXJf aHdfcmVzb3VyY2VzICpod19yZXMpCj4gIHsKPiAgCWlmICghcGh5c19lbmMgfHwgIWh3X3Jlcykg ewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBhcmcocyksIGVuYyAlZCBod19yZXMgJWQgY29ubl9z dGF0ZSAlZFxuIiwKPiAtCQkJCXBoeXNfZW5jICE9IDAsIGh3X3JlcyAhPSAwLCBjb25uX3N0YXRl ICE9IDApOwo+ICsJCURQVV9FUlJPUigiaW52YWxpZCBhcmcocyksIGVuYyAlZCBod19yZXMgJWRc biIsCj4gKwkJCSAgcGh5c19lbmMgIT0gMCwgaHdfcmVzICE9IDApOwoKSSBkb24ndCB0aGluayB0 aGlzIGlzIHBvc3NpYmxlIGVpdGhlci4KCj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwo+IGluZGV4IDg2NDY2ZjAuLjExNjQ1NjEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwo+IEBAIC02ODIsNyArNjgy LDYgQEAgc3RhdGljIGludCBfZHB1X3JtX21ha2VfbmV4dF9yc3ZwKAo+ICAJCXN0cnVjdCBkcHVf cm0gKnJtLAo+ICAJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jLAo+ICAJCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSwKPiAgCQlzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnAsCj4gIAkJc3RydWN0IGRwdV9y bV9yZXF1aXJlbWVudHMgKnJlcXMpCj4gIHsKPiBAQCAtNzI4LDcgKzcyNyw2IEBAIHN0YXRpYyBp bnQgX2RwdV9ybV9wb3B1bGF0ZV9yZXF1aXJlbWVudHMoCj4gIAkJc3RydWN0IGRwdV9ybSAqcm0s Cj4gIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmMsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+IC0JCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl LAo+ICAJCXN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzICpyZXFzLAo+ICAJCXN0cnVjdCBtc21f ZGlzcGxheV90b3BvbG9neSByZXFfdG9wb2xvZ3kpCj4gIHsKPiBAQCAtNzM2LDcgKzczNCw3IEBA IHN0YXRpYyBpbnQgX2RwdV9ybV9wb3B1bGF0ZV9yZXF1aXJlbWVudHMoCj4gIAo+ICAJbWVtc2V0 KHJlcXMsIDAsIHNpemVvZigqcmVxcykpOwo+ICAKPiAtCWRwdV9lbmNvZGVyX2dldF9od19yZXNv dXJjZXMoZW5jLCAmcmVxcy0+aHdfcmVzLCBjb25uX3N0YXRlKTsKPiArCWRwdV9lbmNvZGVyX2dl dF9od19yZXNvdXJjZXMoZW5jLCAmcmVxcy0+aHdfcmVzKTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBp IDwgRFBVX1JNX1RPUE9MT0dZX01BWDsgaSsrKSB7Cj4gIAkJaWYgKFJNX0lTX1RPUE9MT0dZX01B VENIKGdfdG9wX3RhYmxlW2ldLAo+IEBAIC03ODAsMjkgKzc3OCwxMiBAQCBzdGF0aWMgc3RydWN0 IGRwdV9ybV9yc3ZwICpfZHB1X3JtX2dldF9yc3ZwKAo+ICAJcmV0dXJuIE5VTEw7Cj4gIH0KPiAg Cj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqX2RwdV9ybV9nZXRfY29ubmVjdG9yKAo+ IC0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubiA9IE5VTEw7Cj4gLQlzdHJ1Y3QgbGlzdF9oZWFkICpjb25uZWN0b3JfbGlzdCA9Cj4g LQkJCSZlbmMtPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3Q7Cj4gLQo+IC0JbGlzdF9m b3JfZWFjaF9lbnRyeShjb25uLCBjb25uZWN0b3JfbGlzdCwgaGVhZCkKPiAtCQlpZiAoY29ubi0+ ZW5jb2RlciA9PSBlbmMpCj4gLQkJCXJldHVybiBjb25uOwo+IC0KPiAtCXJldHVybiBOVUxMOwo+ IC19Cj4gLQo+ICAvKioKPiAgICogX2RwdV9ybV9yZWxlYXNlX3JzdnAgLSByZWxlYXNlIHJlc291 cmNlcyBhbmQgcmVsZWFzZSBhIHJlc2VydmF0aW9uCj4gICAqIEBybToJS01TIGhhbmRsZQo+ICAg KiBAcnN2cDoJUlNWUCBwb2ludGVyIHRvIHJlbGVhc2UgYW5kIHJlbGVhc2UgcmVzb3VyY2VzIGZv cgo+ICAgKi8KPiAtc3RhdGljIHZvaWQgX2RwdV9ybV9yZWxlYXNlX3JzdnAoCj4gLQkJc3RydWN0 IGRwdV9ybSAqcm0sCj4gLQkJc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwLAo+IC0JCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uKQo+ICtzdGF0aWMgdm9pZCBfZHB1X3JtX3JlbGVhc2VfcnN2cChz dHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHB1X3JtX3JzdnAgKnJzdnBfYywgKnJzdnBfbjsKPiAgCXN0cnVjdCBkcHVfcm1faHdfYmxr ICpibGs7Cj4gQEAgLTg0Myw3ICs4MjQsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X3JtX3JlbGVhc2Vf cnN2cCgKPiAgdm9pZCBkcHVfcm1fcmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRy bV9lbmNvZGVyICplbmMpCj4gIHsKPiAgCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cDsKPiAtCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICAKPiAgCWlmICghcm0gfHwgIWVuYykgewo+ICAJ CURQVV9FUlJPUigiaW52YWxpZCBwYXJhbXNcbiIpOwo+IEBAIC04NTgsMjEgKzgzOCwxMiBAQCB2 b2lkIGRwdV9ybV9yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuYykKPiAgCQlnb3RvIGVuZDsKPiAgCX0KPiAgCj4gLQljb25uID0gX2RwdV9ybV9nZXRfY29u bmVjdG9yKGVuYyk7Cj4gLQlpZiAoIWNvbm4pIHsKPiAtCQlEUFVfRVJST1IoImZhaWxlZCB0byBn ZXQgY29ubmVjdG9yIGZvciBlbmMgJWRcbiIsIGVuYy0+YmFzZS5pZCk7Cj4gLQkJZ290byBlbmQ7 Cj4gLQl9Cj4gLQo+IC0JX2RwdV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnAsIGNvbm4pOwo+ICsJ X2RwdV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnApOwo+ICBlbmQ6Cj4gIAltdXRleF91bmxvY2so JnJtLT5ybV9sb2NrKTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBfZHB1X3JtX2NvbW1pdF9yc3Zw KAo+IC0JCXN0cnVjdCBkcHVfcm0gKnJtLAo+IC0JCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cCwK PiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiArc3RhdGljIGlu dCBfZHB1X3JtX2NvbW1pdF9yc3ZwKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHB1X3JtX3Jz dnAgKnJzdnApCj4gIHsKPiAgCXN0cnVjdCBkcHVfcm1faHdfYmxrICpibGs7Cj4gIAllbnVtIGRw dV9od19ibGtfdHlwZSB0eXBlOwo+IEBAIC04OTksNyArODcwLDYgQEAgaW50IGRwdV9ybV9yZXNl cnZlKAo+ICAJCXN0cnVjdCBkcHVfcm0gKnJtLAo+ICAJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j LAo+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAtCQlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiAgCQlzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9w b2xvZ3kgdG9wb2xvZ3ksCj4gIAkJYm9vbCB0ZXN0X29ubHkpCj4gIHsKPiBAQCAtOTA3LDcgKzg3 Nyw3IEBAIGludCBkcHVfcm1fcmVzZXJ2ZSgKPiAgCXN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRz IHJlcXM7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCWlmICghcm0gfHwgIWVuYyB8fCAhY3J0Y19zdGF0 ZSB8fCAhY29ubl9zdGF0ZSkgewo+ICsJaWYgKCFybSB8fCAhZW5jIHx8ICFjcnRjX3N0YXRlKSB7 CgpJIGFsc28gZG9uJ3QgdGhpbmsgdGhpcyBpcyBwb3NzaWJsZS4KCj4gIAkJRFBVX0VSUk9SKCJp bnZhbGlkIGFyZ3VtZW50c1xuIik7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cgo8c25pcD4K CkpvcmRhbgoKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1l bWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRp dmUgUHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K