From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH 22/25] drm/msm/dpu: make crtc and encoder specific HW reservation Date: Tue, 09 Oct 2018 23:15:02 -0700 Message-ID: References: <1539059262-8326-1-git-send-email-jsanka@codeaurora.org> <1539059262-8326-23-git-send-email-jsanka@codeaurora.org> <20181009204152.GP154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181009204152.GP154160@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0xMC0wOSAxMzo0MSwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIE1vbiwgT2N0IDA4LCAy MDE4IGF0IDA5OjI3OjM5UE0gLTA3MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBJbnN0 ZWFkIG9mIGxldHRpbmcgZW5jb2RlciBtYWtlIGEgY2VudHJhbGl6ZWQgcmVzZXJ2YXRpb24gZm9y Cj4+IGFsbCBvZiBpdHMgZGlzcGxheSBEUk0gY29tcG9uZW50cywgdGhpcyBwYXRoIHNwbGl0cyB0 aGUKPj4gcmVzcG9uc2liaWxpdHkgYmV0d2VlbiBDUlRDIGFuZCBFbmNvZGVyLCBlYWNoIHJlcXVl c3RpbmcKPj4gUk0gZm9yIHRoZSBIVyBtYXBwaW5nIG9mIGl0cyBvd24gZG9tYWluLgo+PiAKPj4g U2lnbmVkLW9mZi1ieTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4K Pj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgIHwg MzEgKysrKysrKysrKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXIuYyB8IDE0ICsrLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3JtLmMgICAgICB8IDY5Cj4gKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPj4gIGRyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oICAgICAgfCAzNiArKysrKysrKysrKy0t LS0KPj4gIDQgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygt KQo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPj4gaW5k ZXggMDYyNWY1Ni4uMDUzNmI4YSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NydGMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5jCj4+IEBAIC00Nyw2ICs0Nyw4IEBACj4+ICAjZGVmaW5lIExFRlRfTUlYRVIg MAo+PiAgI2RlZmluZSBSSUdIVF9NSVhFUiAxCj4+IAo+PiArI2RlZmluZSBNQVhfVkRJU1BMQVlf U1BMSVQgMTA4MAo+PiArCj4+ICBzdGF0aWMgaW5saW5lIGludCBfZHB1X2NydGNfZ2V0X21peGVy X3dpZHRoKHN0cnVjdCBkcHVfY3J0Y19zdGF0ZQo+ICpjc3RhdGUsCj4+ICAJCQkJCSAgICBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPj4gIHsKPj4gQEAgLTQ0OCw2ICs0NTAsNyBAQCBz dGF0aWMgdm9pZCBfZHB1X2NydGNfc2V0dXBfbG1fYm91bmRzKHN0cnVjdAo+IGRybV9jcnRjICpj cnRjLAo+PiAKPj4gIAlmb3IgKGkgPSAwOyBpIDwgY3N0YXRlLT5udW1fbWl4ZXJzOyBpKyspIHsK Pj4gIAkJc3RydWN0IGRybV9yZWN0ICpyID0gJmNzdGF0ZS0+bG1fYm91bmRzW2ldOwo+PiArCj4+ ICAJCXItPngxID0gY3J0Y19zcGxpdF93aWR0aCAqIGk7Cj4+ICAJCXItPnkxID0gMDsKPj4gIAkJ ci0+eDIgPSByLT54MSArIGNydGNfc3BsaXRfd2lkdGg7Cj4+IEBAIC04ODUsNiArODg4LDcgQEAg c3RhdGljIHZvaWQgZHB1X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgCj4+ICpjcnRjKQo+ PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+PiAgCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcjsKPj4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2Owo+PiArCXN0cnVj dCBkcHVfa21zICpkcHVfa21zOwo+PiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+IAo+PiAgCWlm ICghY3J0YyB8fCAhY3J0Yy0+ZGV2IHx8ICFjcnRjLT5kZXYtPmRldl9wcml2YXRlIHx8Cj4gIWNy dGMtPnN0YXRlKSB7Cj4+IEBAIC04OTUsNiArODk5LDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNf ZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgCj4+ICpjcnRjKQo+PiAgCWNzdGF0ZSA9IHRvX2RwdV9j cnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPj4gIAltb2RlID0gJmNzdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+PiAgCXByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+PiArCWRwdV9rbXMg PSB0b19kcHVfa21zKHByaXYtPmttcyk7Cj4+IAo+PiAgCURSTV9ERUJVR19LTVMoImNydGMlZFxu IiwgY3J0Yy0+YmFzZS5pZCk7Cj4+IAo+PiBAQCAtOTUzLDYgKzk1OCw4IEBAIHN0YXRpYyB2b2lk IGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjIAo+PiAqY3J0YykKPj4gIAkJY3J0Yy0+ c3RhdGUtPmV2ZW50ID0gTlVMTDsKPj4gIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3J0Yy0+ ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4+ICAJfQo+PiArCj4+ICsJZHB1X3JtX2NydGNfcmVs ZWFzZSgmZHB1X2ttcy0+cm0sIGNydGMtPnN0YXRlKTsKPj4gIH0KPj4gCj4+ICBzdGF0aWMgdm9p ZCBkcHVfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiBAQCAtMTAwNCw2ICsx MDExLDIxIEBAIHN0cnVjdCBwbGFuZV9zdGF0ZSB7Cj4+ICAJdTMyIHBpcGVfaWQ7Cj4+ICB9Owo+ PiAKPj4gK3N0YXRpYyB2b2lkIF9kcHVfY3J0Y19nZXRfdG9wb2xvZ3koCj4+ICsJCQlzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICsJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0 b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPj4gKwo+PiArCWRwdV9jc3RhdGUtPm51bV9t aXhlcnMgPSAobW9kZS0+dmRpc3BsYXkgPiBNQVhfVkRJU1BMQVlfU1BMSVQpID8gMgo+IDogMTsK Pj4gKwo+PiArCS8qKgo+PiArCSAqIGVuY29kZXItPmF0b21pY19jaGVjayBpcyBpbnZva2VkIGJl Zm9yZSBjcnRjLT5hdG9taWNfY2hlY2suCj4+ICsJICogc28gZHB1X2NzdGF0ZS0+bnVtX2ludGZz IHNob3VsZCBoYXZlIGEgbm9uLXplcm8gdmFsdWUuCj4+ICsJICovCj4+ICsJZHB1X2NzdGF0ZS0+ bnVtX2N0bHMgPSBkcHVfY3N0YXRlLT5udW1faW50ZnM7Cj4gCj4gV2h5IGRvIHdlIG5lZWQgbnVt X2N0bHM/IENhbid0IHdlIGp1c3QgdXNlIGRwdV9jc3RhdGUtPm51bV9pbnRmcyAKPiBkaXJlY3Rs eT8KPiBBbHNvLAo+IHlvdSBkb24ndCByZWFsbHkgbmVlZCB0aGVzZSBpbiB0aGVpciBvd24gZnVu Y3Rpb24sIGVzcGVjaWFsbHkgaWYgCj4gbnVtX2N0bHMKPiBnb2VzCj4gYXdheS4KPiAKWWVzLiBJ IGNhbiBsaXZlIHdpdGgganVzdCB0aGF0LiBCdXQgc2luY2UgZHB1X2NzdGF0ZSBtYWludGFpbnMg SFcgYXJyYXlzCmZvciBlYWNoIHR5cGUsIEkgdGhvdWdodCBpdCB3b3VsZCBiZSBtb3JlIHJlYWRh YmxlIGlmIEkgY291bGQgdXNlCnNlcGFyYXRlIHZhcmlhYmxlcyB0byB0cmFjayB0aGVpciBjb3Vu dHMgaW5zdGVhZCBvZiBpdGVyYXRpbmcgb3ZlcgpjdGwgYXJyYXlzIG92ZXIgZHB1X2NzdGF0ZS0+ bnVtX2ludGZzIGFuZCBsZWF2aW5nIGNvbW1lbnRzIHRoYXQgYm90aAp3aWxsIGJlIHNhbWUgZm9y IHRoaXMgdmVyc2lvbiBvZiBoYXJkd2FyZS4KCkFsc28sIHRoZSBjb3VudHMgbmVlZCBub3QgYmUg dGhlIHNhbWUgZm9yIGFsbCB0aGUgU25hcGRyYWdvbiB2YXJpYW50cy4KClRoYW5rcywKSmV5a3Vt YXIgUy4KPj4gK30KPj4gKwo+PiAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+PiAgCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ PiAgewo+PiBAQCAtMTAxNCw2ICsxMDM2LDggQEAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNf Y2hlY2soc3RydWN0IGRybV9jcnRjCj4gKmNydGMsCj4+ICAJY29uc3Qgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqcHN0YXRlOwo+PiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+PiAgCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+PiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnBy aXY7Cj4+ICsJc3RydWN0IGRwdV9rbXMgKmRwdV9rbXM7Cj4+IAo+PiAgCWludCBjbnQgPSAwLCBy YyA9IDAsIG1peGVyX3dpZHRoLCBpLCB6X3BvczsKPj4gCj4+IEBAIC0xMDM5LDYgKzEwNjMsOSBA QCBzdGF0aWMgaW50IGRwdV9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMKPiAqY3J0 YywKPj4gIAkJZ290byBlbmQ7Cj4+ICAJfQo+PiAKPj4gKwlwcml2ID0gY3J0Yy0+ZGV2LT5kZXZf cHJpdmF0ZTsKPj4gKwlkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+PiArCj4+ICAJ bW9kZSA9ICZzdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPj4gIAlEUFVfREVCVUcoIiVzOiBjaGVjayIs IGRwdV9jcnRjLT5uYW1lKTsKPj4gCj4+IEBAIC0xMjI5LDYgKzEyNTYsMTAgQEAgc3RhdGljIGlu dCBkcHVfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IAo+PiBkcm1fY3J0Ywo+ICpjcnRjLAo+PiAg CQl9Cj4+ICAJfQo+PiAKPj4gKwlfZHB1X2NydGNfZ2V0X3RvcG9sb2d5KHN0YXRlLCBtb2RlKTsK Pj4gKwlpZiAoZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoc3RhdGUpKQo+PiArCQlyYyA9 IGRwdV9ybV9jcnRjX3Jlc2VydmUoJmRwdV9rbXMtPnJtLCBzdGF0ZSk7Cj4+ICsKPj4gIGVuZDoK Pj4gIAlrZnJlZShwc3RhdGVzKTsKPj4gIAlyZXR1cm4gcmM7Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+IGluZGV4IDVkNTAxYzguLmNlNjYzMDkg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ PiBAQCAtNjcsOCArNjcsNiBAQAo+PiAKPj4gICNkZWZpbmUgSURMRV9TSE9SVF9USU1FT1VUCTEK Pj4gCj4+IC0jZGVmaW5lIE1BWF9WRElTUExBWV9TUExJVCAxMDgwCj4+IC0KPj4gIC8qKgo+PiAg ICogZW51bSBkcHVfZW5jX3JjX2V2ZW50cyAtIGV2ZW50cyBmb3IgcmVzb3VyY2UgY29udHJvbCBz dGF0ZSBtYWNoaW5lCj4+ICAgKiBARFBVX0VOQ19SQ19FVkVOVF9LSUNLT0ZGOgo+PiBAQCAtNTU3 LDE0ICs1NTUsMTAgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2FkanVzdF9tb2RlKHN0cnVj dAo+IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gCj4+ICBzdGF0aWMgdm9pZCBfZHB1X2Vu Y29kZXJfZ2V0X3RvcG9sb2d5KAo+PiAgCQkJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9l bmMsCj4+IC0JCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+IC0JCQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPj4gKwkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUg PSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPj4gCj4+IC0JLyogVXNlciBzcGxpdCB0 b3BvbG9neSBmb3Igd2lkdGggPiAxMDgwICovCj4+IC0JZHB1X2NzdGF0ZS0+bnVtX21peGVycyA9 IChtb2RlLT52ZGlzcGxheSA+IE1BWF9WRElTUExBWV9TUExJVCkgPyAyCj4gOiAxOwo+PiAtCWRw dV9jc3RhdGUtPm51bV9jdGxzID0gZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsKPj4gIAlkcHVfY3N0 YXRlLT5udW1faW50ZnMgPSBkcHVfZW5jLT5udW1fcGh5c19lbmNzOwo+PiAgfQo+PiAKPj4gQEAg LTYyMyw5ICs2MTcsOSBAQCBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3ZpcnRfYXRvbWljX2NoZWNr KAo+PiAgCQl9Cj4+ICAJfQo+PiAKPj4gLQlfZHB1X2VuY29kZXJfZ2V0X3RvcG9sb2d5KGRwdV9l bmMsIGNydGNfc3RhdGUsIGFkal9tb2RlKTsKPj4gKwlfZHB1X2VuY29kZXJfZ2V0X3RvcG9sb2d5 KGRwdV9lbmMsIGNydGNfc3RhdGUpOwo+PiAgCWlmICghcmV0ICYmIGRybV9hdG9taWNfY3J0Y19u ZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+PiAtCQlyZXQgPSBkcHVfcm1fcmVzZXJ2ZSgmZHB1 X2ttcy0+cm0sIGRybV9lbmMsIGNydGNfc3RhdGUpOwo+PiArCQlyZXQgPSBkcHVfcm1fZW5jb2Rl cl9yZXNlcnZlKCZkcHVfa21zLT5ybSwgZHJtX2VuYywKPiBjcnRjX3N0YXRlKTsKPj4gCj4+ICAJ aWYgKCFyZXQpCj4+ICAJCWRybV9tb2RlX3NldF9jcnRjaW5mbyhhZGpfbW9kZSwgMCk7Cj4+IEBA IC0xMTg2LDcgKzExODAsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0X2Rpc2FibGUo c3RydWN0Cj4gZHJtX2VuY29kZXIgKmRybV9lbmMpCj4+IAo+PiAgCURQVV9ERUJVR19FTkMoZHB1 X2VuYywgImVuY29kZXIgZGlzYWJsZWRcbiIpOwo+PiAKPj4gLQlkcHVfcm1fcmVsZWFzZSgmZHB1 X2ttcy0+cm0sIGRybV9lbmMtPmNydGMtPnN0YXRlKTsKPj4gKwlkcHVfcm1fZW5jb2Rlcl9yZWxl YXNlKCZkcHVfa21zLT5ybSwgZHJtX2VuYy0+Y3J0Yy0+c3RhdGUpOwo+PiAgfQo+PiAKPj4gIHN0 YXRpYyBlbnVtIGRwdV9pbnRmIGRwdV9lbmNvZGVyX2dldF9pbnRmKHN0cnVjdCBkcHVfbWRzc19j ZmcgCj4+ICpjYXRhbG9nLAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3JtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5j Cj4+IGluZGV4IDUzMDQ1OTcuLjkwMWIxZmMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9ybS5jCj4+IEBAIC00MzYsOCArNDM2LDggQEAgc3RhdGljIGludCBfZHB1X3Jt X3JlbGVhc2VfaHcoc3RydWN0IGRwdV9ybSAqcm0sCj4gZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlw ZSwKPj4gIAlyZXR1cm4gLUVJTlZBTDsKPj4gIH0KPj4gCj4+IC1zdGF0aWMgdm9pZCBfZHB1X3Jt X3JlbGVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRwdV9ybSAqcm0sCj4+IC0JCQkJCXN0cnVjdCBk cHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSkKPj4gK3N0YXRpYyB2b2lkIF9kcHVfcm1fY3J0Y19y ZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkcHVfcm0gKnJtLAo+PiArCQkJCQkgICAgIHN0cnVj dCBkcHVfY3J0Y19zdGF0ZQo+ICpkcHVfY3N0YXRlKQo+PiAgewo+PiAgCWludCBpOwo+PiAKPj4g QEAgLTQ2NCw2ICs0NjQsMTIgQEAgc3RhdGljIHZvaWQgX2RwdV9ybV9yZWxlYXNlX3Jlc2VydmF0 aW9uKHN0cnVjdAo+IGRwdV9ybSAqcm0sCj4+ICAJCQkJCWRwdV9jc3RhdGUtPmh3X2N0bHNbaV0t PmJhc2UuaWQpKQo+PiAgCQkJZHB1X2NzdGF0ZS0+aHdfY3Rsc1tpXSA9IE5VTEw7Cj4+ICAJfQo+ PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBfZHB1X3JtX2VuY29kZXJfcmVsZWFzZV9yZXNlcnZh dGlvbihzdHJ1Y3QgZHB1X3JtICpybSwKPj4gKwkJCQkJICAgICAgc3RydWN0IGRwdV9jcnRjX3N0 YXRlCj4gKmRwdV9jc3RhdGUpCj4+ICt7Cj4+ICsJaW50IGk7Cj4+IAo+PiAgCWZvciAoaSA9IDA7 IGkgPCBkcHVfY3N0YXRlLT5udW1faW50ZnM7IGkrKykgewo+PiAgCQlpZiAoIWRwdV9jc3RhdGUt Pmh3X2ludGZzW2ldKQo+PiBAQCAtNDc1LDIzICs0ODEsMzMgQEAgc3RhdGljIHZvaWQgX2RwdV9y bV9yZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdAo+IGRwdV9ybSAqcm0sCj4+ICAJfQo+PiAgfQo+ PiAKPj4gLXZvaWQgZHB1X3JtX3JlbGVhc2Uoc3RydWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZQo+ICpjcnRjX3N0YXRlKQo+PiArdm9pZCBkcHVfcm1fY3J0Y19yZWxlYXNlKHN0 cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUKPiAqY3J0Y19zdGF0ZSkKPj4g IHsKPj4gIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19z dGF0ZShjcnRjX3N0YXRlKTsKPj4gCj4+ICAJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwo+PiAK Pj4gLQlfZHB1X3JtX3JlbGVhc2VfcmVzZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+PiArCV9k cHVfcm1fY3J0Y19yZWxlYXNlX3Jlc2VydmF0aW9uKHJtLCBkcHVfY3N0YXRlKTsKPj4gCj4+ICAJ bXV0ZXhfdW5sb2NrKCZybS0+cm1fbG9jayk7Cj4+ICB9Cj4+IAo+PiAtaW50IGRwdV9ybV9yZXNl cnZlKAo+PiArdm9pZCBkcHVfcm1fZW5jb2Rlcl9yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLAo+ PiArCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gK3sKPj4gKwlz dHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKTsKPj4gKwo+PiArCW11dGV4X2xvY2soJnJtLT5ybV9sb2NrKTsKPj4gKwo+PiArCV9k cHVfcm1fZW5jb2Rlcl9yZWxlYXNlX3Jlc2VydmF0aW9uKHJtLCBkcHVfY3N0YXRlKTsKPj4gKwo+ PiArCW11dGV4X3VubG9jaygmcm0tPnJtX2xvY2spOwo+PiArfQo+PiArCj4+ICtpbnQgZHB1X3Jt X2NydGNfcmVzZXJ2ZSgKPj4gIAkJc3RydWN0IGRwdV9ybSAqcm0sCj4+IC0JCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jLAo+PiAgCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ ICB7Cj4+IC0Jc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyBod19yZXM7Cj4+ICAJc3Ry dWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Y19z dGF0ZSk7Cj4+ICAJaW50IHJldDsKPj4gCj4+IEBAIC00OTksMTIgKzUxNSwxMCBAQCBpbnQgZHB1 X3JtX3Jlc2VydmUoCj4+ICAJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRj X3N0YXRlKSkKPj4gIAkJcmV0dXJuIDA7Cj4+IAo+PiAtCURSTV9ERUJVR19LTVMoInJlc2Vydmlu ZyBodyBmb3IgZW5jICVkIGNydGMgJWRcbiIsCj4+IC0JCSAgICAgIGVuYy0+YmFzZS5pZCwgY3J0 Y19zdGF0ZS0+Y3J0Yy0+YmFzZS5pZCk7Cj4+IAo+PiAtCW11dGV4X2xvY2soJnJtLT5ybV9sb2Nr KTsKPj4gKwlEUk1fREVCVUdfS01TKCJyZXNlcnZpbmcgaHcgZm9yIGNydGMgJWRcbiIsCj4gY3J0 Y19zdGF0ZS0+Y3J0Yy0+YmFzZS5pZCk7Cj4+IAo+PiAtCWRwdV9lbmNvZGVyX2dldF9od19yZXNv dXJjZXMoZW5jLCAmaHdfcmVzKTsKPj4gKwltdXRleF9sb2NrKCZybS0+cm1fbG9jayk7Cj4+IAo+ PiAgCXJldCA9IF9kcHVfcm1fcmVzZXJ2ZV9sbXMocm0sIGRwdV9jc3RhdGUpOwo+PiAgCWlmIChy ZXQpIHsKPj4gQEAgLTUxOCw2ICs1MzIsMzcgQEAgaW50IGRwdV9ybV9yZXNlcnZlKAo+PiAgCQln b3RvIGNsZWFudXBfb25fZmFpbDsKPj4gIAl9Cj4+IAo+PiArCW11dGV4X3VubG9jaygmcm0tPnJt X2xvY2spOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gKwo+PiArY2xlYW51cF9vbl9mYWlsOgo+ PiArCV9kcHVfcm1fY3J0Y19yZWxlYXNlX3Jlc2VydmF0aW9uKHJtLCBkcHVfY3N0YXRlKTsKPj4g Kwo+PiArCW11dGV4X3VubG9jaygmcm0tPnJtX2xvY2spOwo+PiArCj4+ICsJcmV0dXJuIHJldDsK Pj4gK30KPj4gKwo+PiAraW50IGRwdV9ybV9lbmNvZGVyX3Jlc2VydmUoCj4+ICsJCXN0cnVjdCBk cHVfcm0gKnJtLAo+PiArCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYywKPj4gKwkJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+PiArewo+PiArCXN0cnVjdCBkcHVfZW5jb2Rlcl9o d19yZXNvdXJjZXMgaHdfcmVzOwo+PiArCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0 ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+PiArCWludCByZXQ7Cj4+ICsKPj4g KwkvKiBDaGVjayBpZiB0aGlzIGlzIGp1c3QgYSBwYWdlLWZsaXAgKi8KPj4gKwlpZiAoIWRybV9h dG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+PiArCQlyZXR1cm4gMDsKPj4g Kwo+PiArCURSTV9ERUJVR19LTVMoInJlc2VydmluZyBodyBmb3IgZW5jICVkXG4iLCBlbmMtPmJh c2UuaWQpOwo+PiArCj4+ICsJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwo+PiArCj4+ICsJZHB1 X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNlcyhlbmMsICZod19yZXMpOwo+PiArCj4+ICAJcmV0ID0g X2RwdV9ybV9yZXNlcnZlX2ludGZzKHJtLCBkcHVfY3N0YXRlLCAmaHdfcmVzKTsKPj4gIAlpZiAo cmV0KSB7Cj4+ICAJCURQVV9FUlJPUigidW5hYmxlIHRvIGZpbmQgYXBwcm9wcmlhdGUgSU5URlxu Iik7Cj4+IEBAIC01MjksNyArNTc0LDcgQEAgaW50IGRwdV9ybV9yZXNlcnZlKAo+PiAgCXJldHVy biByZXQ7Cj4+IAo+PiAgY2xlYW51cF9vbl9mYWlsOgo+PiAtCV9kcHVfcm1fcmVsZWFzZV9yZXNl cnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7Cj4+ICsJX2RwdV9ybV9lbmNvZGVyX3JlbGVhc2VfcmVz ZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+PiAKPj4gIAltdXRleF91bmxvY2soJnJtLT5ybV9s b2NrKTsKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfcm0uaAo+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKPj4gaW5k ZXggMTYyNmNlZi4uMGIxZGViMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X3JtLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X3JtLmgKPj4gQEAgLTUzLDI3ICs1Myw0NSBAQCBpbnQgZHB1X3JtX2luaXQoc3RydWN0IGRw dV9ybSAqcm0sCj4+ICBpbnQgZHB1X3JtX2Rlc3Ryb3koc3RydWN0IGRwdV9ybSAqcm0pOwo+PiAK Pj4gIC8qKgo+PiAtICogZHB1X3JtX3Jlc2VydmUgLSBHaXZlbiBhIENSVEMtPkVuY29kZXItPkNv bm5lY3RvciBkaXNwbGF5IGNoYWluLAo+IGFuYWx5emUKPj4gLSAqCXRoZSB1c2UgY29ubmVjdGlv bnMgYW5kIHVzZXIgcmVxdWlyZW1lbnRzLCBzcGVjaWZpZWQgdGhyb3VnaAo+IHJlbGF0ZWQKPj4g KyAqIGRwdV9ybV9lbmNvZGVyX3Jlc2VydmUgLSBHaXZlbiBhbiBFbmNvZGVyLCBhbmFseXplIHRo ZSB1c2UKPiBjb25uZWN0aW9ucwo+PiArICogICAgICBhbmQgdXNlciByZXF1aXJlbWVudHMsIHNw ZWNpZmllZCB0aHJvdWdoIHJlbGF0ZWQKPj4gICAqCXRvcG9sb2d5IGNvbnRyb2wgcHJvcGVydGll cywgYW5kIHJlc2VydmUgaGFyZHdhcmUgYmxvY2tzIHRvIHRoYXQKPj4gICAqCWRpc3BsYXkgY2hh aW4uCj4+IC0gKglIVyBibG9ja3MgY2FuIHRoZW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBkcHVfcm1f Z2V0XyogZnVuY3Rpb25zLgo+PiAtICoJSFcgUmVzZXJ2YXRpb25zIHNob3VsZCBiZSByZWxlYXNl ZCB2aWEgZHB1X3JtX3JlbGVhc2VfaHcuCj4+ICAgKiBAcm06IERQVSBSZXNvdXJjZSBNYW5hZ2Vy IGhhbmRsZQo+PiAgICogQGRybV9lbmM6IERSTSBFbmNvZGVyIGhhbmRsZQo+PiAgICogQGNydGNf c3RhdGU6IFByb3Bvc2VkIEF0b21pYyBEUk0gQ1JUQyBTdGF0ZSBoYW5kbGUKPj4gICAqIEBSZXR1 cm46IDAgb24gU3VjY2VzcyBvdGhlcndpc2UgLUVSUk9SCj4+ICAgKi8KPj4gLWludCBkcHVfcm1f cmVzZXJ2ZShzdHJ1Y3QgZHB1X3JtICpybSwKPj4gK2ludCBkcHVfcm1fZW5jb2Rlcl9yZXNlcnZl KHN0cnVjdCBkcHVfcm0gKnJtLAo+PiAgCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCj4+ ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+IAo+PiAgLyoqCj4+IC0g KiBkcHVfcm1fcmVsZWFzZSAtIEdpdmVuIHRoZSBlbmNvZGVyIGZvciB0aGUgZGlzcGxheSBjaGFp biwgcmVsZWFzZQo+IGFueQo+PiAtICoJSFcgYmxvY2tzIHByZXZpb3VzbHkgcmVzZXJ2ZWQgZm9y IHRoYXQgdXNlIGNhc2UuCj4+ICsgKiBkcHVfcm1fY3J0Y19yZXNlcnZlIC0gR2l2ZW4gYSBDUlRD LCBhbmFseXplIHRoZSB1c2UgY29ubmVjdGlvbnMKPj4gKyAqICAgICAgYW5kIHVzZXIgcmVxdWly ZW1lbnRzLCBzcGVjaWZpZWQgdGhyb3VnaCByZWxhdGVkCj4+ICsgKgl0b3BvbG9neSBjb250cm9s IHByb3BlcnRpZXMsIGFuZCByZXNlcnZlIGhhcmR3YXJlIGJsb2NrcyB0byB0aGF0Cj4+ICsgKglk aXNwbGF5IGNoYWluLgo+PiAgICogQHJtOiBEUFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKPj4g LSAqIEBjcnRjX3N0YXRlOiBhdG9taWMgRFJNIHN0YXRlIGhhbmRsZQo+PiArICogQGNydGNfc3Rh dGU6IFByb3Bvc2VkIEF0b21pYyBEUk0gQ1JUQyBTdGF0ZSBoYW5kbGUKPj4gICAqIEBSZXR1cm46 IDAgb24gU3VjY2VzcyBvdGhlcndpc2UgLUVSUk9SCj4+ICAgKi8KPj4gLXZvaWQgZHB1X3JtX3Jl bGVhc2Uoc3RydWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZQo+ICpjcnRjX3N0 YXRlKTsKPj4gK2ludCBkcHVfcm1fY3J0Y19yZXNlcnZlKHN0cnVjdCBkcHVfcm0gKnJtLAo+PiAr CQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+PiArCj4+ICsvKioKPj4gKyAq IGRwdV9ybV9lbmNvZGVyX3JlbGVhc2UgLSBHaXZlbiB0aGUgZW5jb2RlciwgcmVsZWFzZSBhbnkK Pj4gKyAqCUhXIGJsb2NrcyBwcmV2aW91c2x5IHJlc2VydmVkIGZvciB0aGF0IHVzZSBjYXNlLgo+ PiArICogQHJtOiBEUFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKPj4gKyAqIEBjcnRjX3N0YXRl OiBQcm9wb3NlZCBBdG9taWMgRFJNIENSVEMgU3RhdGUgaGFuZGxlCj4+ICsgKi8KPj4gK3ZvaWQg ZHB1X3JtX2VuY29kZXJfcmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwKPj4gKwkJCSAgICBzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+PiArCj4+ICsvKioKPj4gKyAqIGRwdV9y bV9jcnRjX3JlbGVhc2UgLSBHaXZlbiB0aGUgY3J0YywgcmVsZWFzZSBhbnkKPj4gKyAqCUhXIGJs b2NrcyBwcmV2aW91c2x5IHJlc2VydmVkIGZvciB0aGF0IHVzZSBjYXNlLgo+PiArICogQHJtOiBE UFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKPj4gKyAqIEBjcnRjX3N0YXRlOiBQcm9wb3NlZCBB dG9taWMgRFJNIENSVEMgU3RhdGUgaGFuZGxlCj4+ICsgKi8KPj4gK3ZvaWQgZHB1X3JtX2NydGNf cmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRybV9jcnRjX3N0YXRlCj4gKmNydGNf c3RhdGUpOwo+PiAgI2VuZGlmIC8qIF9fRFBVX1JNX0hfXyAqLwo+PiAtLQo+PiBUaGUgUXVhbGNv bW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3Jh Cj4gRm9ydW0sCj4+IGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKPj4g Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEZy ZWVkcmVubyBtYWlsaW5nIGxpc3QKPj4gRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVu bwoKLS0gCkpleWt1bWFyIFMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJl ZWRyZW5vCg==