From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 22/25] drm/msm/dpu: make crtc and encoder specific HW reservation Date: Tue, 9 Oct 2018 16:41:52 -0400 Message-ID: <20181009204152.GP154160@art_vandelay> References: <1539059262-8326-1-git-send-email-jsanka@codeaurora.org> <1539059262-8326-23-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: <1539059262-8326-23-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, 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 T24gTW9uLCBPY3QgMDgsIDIwMTggYXQgMDk6Mjc6MzlQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gSW5zdGVhZCBvZiBsZXR0aW5nIGVuY29kZXIgbWFrZSBhIGNlbnRyYWxpemVk IHJlc2VydmF0aW9uIGZvcgo+IGFsbCBvZiBpdHMgZGlzcGxheSBEUk0gY29tcG9uZW50cywgdGhp cyBwYXRoIHNwbGl0cyB0aGUKPiByZXNwb25zaWJpbGl0eSBiZXR3ZWVuIENSVEMgYW5kIEVuY29k ZXIsIGVhY2ggcmVxdWVzdGluZwo+IFJNIGZvciB0aGUgSFcgbWFwcGluZyBvZiBpdHMgb3duIGRv bWFpbi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKZXlrdW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVh dXJvcmEub3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0 Yy5jICAgIHwgMzEgKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5jIHwgMTQgKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9ybS5jICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaCAgICAgIHwgMzYgKysrKysrKysr KystLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IGluZGV4 IDA2MjVmNTYuLjA1MzZiOGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmMKPiBAQCAtNDcsNiArNDcsOCBAQAo+ICAjZGVmaW5lIExFRlRfTUlYRVIgMAo+ICAj ZGVmaW5lIFJJR0hUX01JWEVSIDEKPiAgCj4gKyNkZWZpbmUgTUFYX1ZESVNQTEFZX1NQTElUIDEw ODAKPiArCj4gIHN0YXRpYyBpbmxpbmUgaW50IF9kcHVfY3J0Y19nZXRfbWl4ZXJfd2lkdGgoc3Ry dWN0IGRwdV9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAkJCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlKQo+ICB7Cj4gQEAgLTQ0OCw2ICs0NTAsNyBAQCBzdGF0aWMgdm9pZCBfZHB1 X2NydGNfc2V0dXBfbG1fYm91bmRzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCj4gIAlmb3Ig KGkgPSAwOyBpIDwgY3N0YXRlLT5udW1fbWl4ZXJzOyBpKyspIHsKPiAgCQlzdHJ1Y3QgZHJtX3Jl Y3QgKnIgPSAmY3N0YXRlLT5sbV9ib3VuZHNbaV07Cj4gKwo+ICAJCXItPngxID0gY3J0Y19zcGxp dF93aWR0aCAqIGk7Cj4gIAkJci0+eTEgPSAwOwo+ICAJCXItPngyID0gci0+eDEgKyBjcnRjX3Nw bGl0X3dpZHRoOwo+IEBAIC04ODUsNiArODg4LDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZGlz YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZTsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAgCXN0cnVjdCBtc21fZHJt X3ByaXZhdGUgKnByaXY7Cj4gKwlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttczsKPiAgCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gIAo+ICAJaWYgKCFjcnRjIHx8ICFjcnRjLT5kZXYgfHwgIWNydGMtPmRl di0+ZGV2X3ByaXZhdGUgfHwgIWNydGMtPnN0YXRlKSB7Cj4gQEAgLTg5NSw2ICs4OTksNyBAQCBz dGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCWNz dGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiAgCW1vZGUgPSAmY3N0YXRl LT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gIAlwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsK PiArCWRwdV9rbXMgPSB0b19kcHVfa21zKHByaXYtPmttcyk7Cj4gIAo+ICAJRFJNX0RFQlVHX0tN UygiY3J0YyVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKPiAgCj4gQEAgLTk1Myw2ICs5NTgsOCBAQCBz dGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQlj cnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwo+ICAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNy dGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ICAJfQo+ICsKPiArCWRwdV9ybV9jcnRjX3Jl bGVhc2UoJmRwdV9rbXMtPnJtLCBjcnRjLT5zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGRwdV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gQEAgLTEwMDQsNiArMTAx MSwyMSBAQCBzdHJ1Y3QgcGxhbmVfc3RhdGUgewo+ICAJdTMyIHBpcGVfaWQ7Cj4gIH07Cj4gIAo+ ICtzdGF0aWMgdm9pZCBfZHB1X2NydGNfZ2V0X3RvcG9sb2d5KAo+ICsJCQlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQo+ICt7Cj4gKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0 Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiArCj4gKwlkcHVfY3N0YXRlLT5udW1fbWl4ZXJzID0gKG1v ZGUtPnZkaXNwbGF5ID4gTUFYX1ZESVNQTEFZX1NQTElUKSA/IDIgOiAxOwo+ICsKPiArCS8qKgo+ ICsJICogZW5jb2Rlci0+YXRvbWljX2NoZWNrIGlzIGludm9rZWQgYmVmb3JlIGNydGMtPmF0b21p Y19jaGVjay4KPiArCSAqIHNvIGRwdV9jc3RhdGUtPm51bV9pbnRmcyBzaG91bGQgaGF2ZSBhIG5v bi16ZXJvIHZhbHVlLgo+ICsJICovCj4gKwlkcHVfY3N0YXRlLT5udW1fY3RscyA9IGRwdV9jc3Rh dGUtPm51bV9pbnRmczsKCldoeSBkbyB3ZSBuZWVkIG51bV9jdGxzPyBDYW4ndCB3ZSBqdXN0IHVz ZSBkcHVfY3N0YXRlLT5udW1faW50ZnMgZGlyZWN0bHk/IEFsc28sCnlvdSBkb24ndCByZWFsbHkg bmVlZCB0aGVzZSBpbiB0aGVpciBvd24gZnVuY3Rpb24sIGVzcGVjaWFsbHkgaWYgbnVtX2N0bHMg Z29lcwphd2F5LgoKPiArfQo+ICsKPiAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNfY2hlY2so c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUp Cj4gIHsKPiBAQCAtMTAxNCw2ICsxMDM2LDggQEAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNf Y2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcHN0YXRlOwo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4g KwlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttczsKPiAgCj4gIAlpbnQgY250ID0gMCwgcmMgPSAwLCBt aXhlcl93aWR0aCwgaSwgel9wb3M7Cj4gIAo+IEBAIC0xMDM5LDYgKzEwNjMsOSBAQCBzdGF0aWMg aW50IGRwdV9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJZ290 byBlbmQ7Cj4gIAl9Cj4gIAo+ICsJcHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlk cHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+ICsKPiAgCW1vZGUgPSAmc3RhdGUtPmFk anVzdGVkX21vZGU7Cj4gIAlEUFVfREVCVUcoIiVzOiBjaGVjayIsIGRwdV9jcnRjLT5uYW1lKTsK PiAgCj4gQEAgLTEyMjksNiArMTI1NiwxMCBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJfQo+ICAJfQo+ICAKPiArCV9kcHVfY3J0 Y19nZXRfdG9wb2xvZ3koc3RhdGUsIG1vZGUpOwo+ICsJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVk c19tb2Rlc2V0KHN0YXRlKSkKPiArCQlyYyA9IGRwdV9ybV9jcnRjX3Jlc2VydmUoJmRwdV9rbXMt PnJtLCBzdGF0ZSk7Cj4gKwo+ICBlbmQ6Cj4gIAlrZnJlZShwc3RhdGVzKTsKPiAgCXJldHVybiBy YzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiBpbmRl eCA1ZDUwMWM4Li5jZTY2MzA5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5jCj4gQEAgLTY3LDggKzY3LDYgQEAKPiAgCj4gICNkZWZpbmUgSURMRV9T SE9SVF9USU1FT1VUCTEKPiAgCj4gLSNkZWZpbmUgTUFYX1ZESVNQTEFZX1NQTElUIDEwODAKPiAt Cj4gIC8qKgo+ICAgKiBlbnVtIGRwdV9lbmNfcmNfZXZlbnRzIC0gZXZlbnRzIGZvciByZXNvdXJj ZSBjb250cm9sIHN0YXRlIG1hY2hpbmUKPiAgICogQERQVV9FTkNfUkNfRVZFTlRfS0lDS09GRjoK PiBAQCAtNTU3LDE0ICs1NTUsMTAgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2FkanVzdF9t b2RlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAo+ICBzdGF0aWMgdm9pZCBf ZHB1X2VuY29kZXJfZ2V0X3RvcG9sb2d5KAo+ICAJCQlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAq ZHB1X2VuYywKPiAtCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IC0JCQlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiArCQkJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUg PSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiAgCj4gLQkvKiBVc2VyIHNwbGl0IHRv cG9sb2d5IGZvciB3aWR0aCA+IDEwODAgKi8KPiAtCWRwdV9jc3RhdGUtPm51bV9taXhlcnMgPSAo bW9kZS0+dmRpc3BsYXkgPiBNQVhfVkRJU1BMQVlfU1BMSVQpID8gMiA6IDE7Cj4gLQlkcHVfY3N0 YXRlLT5udW1fY3RscyA9IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7Cj4gIAlkcHVfY3N0YXRlLT5u dW1faW50ZnMgPSBkcHVfZW5jLT5udW1fcGh5c19lbmNzOwo+ICB9Cj4gIAo+IEBAIC02MjMsOSAr NjE3LDkgQEAgc3RhdGljIGludCBkcHVfZW5jb2Rlcl92aXJ0X2F0b21pY19jaGVjaygKPiAgCQl9 Cj4gIAl9Cj4gIAo+IC0JX2RwdV9lbmNvZGVyX2dldF90b3BvbG9neShkcHVfZW5jLCBjcnRjX3N0 YXRlLCBhZGpfbW9kZSk7Cj4gKwlfZHB1X2VuY29kZXJfZ2V0X3RvcG9sb2d5KGRwdV9lbmMsIGNy dGNfc3RhdGUpOwo+ICAJaWYgKCFyZXQgJiYgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQo Y3J0Y19zdGF0ZSkpCj4gLQkJcmV0ID0gZHB1X3JtX3Jlc2VydmUoJmRwdV9rbXMtPnJtLCBkcm1f ZW5jLCBjcnRjX3N0YXRlKTsKPiArCQlyZXQgPSBkcHVfcm1fZW5jb2Rlcl9yZXNlcnZlKCZkcHVf a21zLT5ybSwgZHJtX2VuYywgY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJaWYgKCFyZXQpCj4gIAkJZHJt X21vZGVfc2V0X2NydGNpbmZvKGFkal9tb2RlLCAwKTsKPiBAQCAtMTE4Niw3ICsxMTgwLDcgQEAg c3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdmlydF9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAq ZHJtX2VuYykKPiAgCj4gIAlEUFVfREVCVUdfRU5DKGRwdV9lbmMsICJlbmNvZGVyIGRpc2FibGVk XG4iKTsKPiAgCj4gLQlkcHVfcm1fcmVsZWFzZSgmZHB1X2ttcy0+cm0sIGRybV9lbmMtPmNydGMt PnN0YXRlKTsKPiArCWRwdV9ybV9lbmNvZGVyX3JlbGVhc2UoJmRwdV9rbXMtPnJtLCBkcm1fZW5j LT5jcnRjLT5zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBlbnVtIGRwdV9pbnRmIGRwdV9lbmNv ZGVyX2dldF9pbnRmKHN0cnVjdCBkcHVfbWRzc19jZmcgKmNhdGFsb2csCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKPiBpbmRleCA1MzA0NTk3Li45MDFiMWZjIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKPiBAQCAtNDM2LDggKzQzNiw4IEBA IHN0YXRpYyBpbnQgX2RwdV9ybV9yZWxlYXNlX2h3KHN0cnVjdCBkcHVfcm0gKnJtLCBlbnVtIGRw dV9od19ibGtfdHlwZSB0eXBlLAo+ICAJcmV0dXJuIC1FSU5WQUw7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIF9kcHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZHB1X3JtICpybSwKPiAt CQkJCQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUpCj4gK3N0YXRpYyB2b2lkIF9k cHVfcm1fY3J0Y19yZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkcHVfcm0gKnJtLAo+ICsJCQkJ CSAgICAgc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlKQo+ICB7Cj4gIAlpbnQgaTsK PiAgCj4gQEAgLTQ2NCw2ICs0NjQsMTIgQEAgc3RhdGljIHZvaWQgX2RwdV9ybV9yZWxlYXNlX3Jl c2VydmF0aW9uKHN0cnVjdCBkcHVfcm0gKnJtLAo+ICAJCQkJCWRwdV9jc3RhdGUtPmh3X2N0bHNb aV0tPmJhc2UuaWQpKQo+ICAJCQlkcHVfY3N0YXRlLT5od19jdGxzW2ldID0gTlVMTDsKPiAgCX0K PiArfQo+ICsKPiArc3RhdGljIHZvaWQgX2RwdV9ybV9lbmNvZGVyX3JlbGVhc2VfcmVzZXJ2YXRp b24oc3RydWN0IGRwdV9ybSAqcm0sCj4gKwkJCQkJICAgICAgc3RydWN0IGRwdV9jcnRjX3N0YXRl ICpkcHVfY3N0YXRlKQo+ICt7Cj4gKwlpbnQgaTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgZHB1 X2NzdGF0ZS0+bnVtX2ludGZzOyBpKyspIHsKPiAgCQlpZiAoIWRwdV9jc3RhdGUtPmh3X2ludGZz W2ldKQo+IEBAIC00NzUsMjMgKzQ4MSwzMyBAQCBzdGF0aWMgdm9pZCBfZHB1X3JtX3JlbGVhc2Vf cmVzZXJ2YXRpb24oc3RydWN0IGRwdV9ybSAqcm0sCj4gIAl9Cj4gIH0KPiAgCj4gLXZvaWQgZHB1 X3JtX3JlbGVhc2Uoc3RydWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiArdm9pZCBkcHVfcm1fY3J0Y19yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcHVfY3J0 Y19zdGF0ZSAqZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ICAK PiAgCW11dGV4X2xvY2soJnJtLT5ybV9sb2NrKTsKPiAgCj4gLQlfZHB1X3JtX3JlbGVhc2VfcmVz ZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+ICsJX2RwdV9ybV9jcnRjX3JlbGVhc2VfcmVzZXJ2 YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+ICAKPiAgCW11dGV4X3VubG9jaygmcm0tPnJtX2xvY2sp Owo+ICB9Cj4gIAo+IC1pbnQgZHB1X3JtX3Jlc2VydmUoCj4gK3ZvaWQgZHB1X3JtX2VuY29kZXJf cmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwKPiArCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRl ID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmcm0t PnJtX2xvY2spOwo+ICsKPiArCV9kcHVfcm1fZW5jb2Rlcl9yZWxlYXNlX3Jlc2VydmF0aW9uKHJt LCBkcHVfY3N0YXRlKTsKPiArCj4gKwltdXRleF91bmxvY2soJnJtLT5ybV9sb2NrKTsKPiArfQo+ ICsKPiAraW50IGRwdV9ybV9jcnRjX3Jlc2VydmUoCj4gIAkJc3RydWN0IGRwdV9ybSAqcm0sCj4g LQkJc3RydWN0IGRybV9lbmNvZGVyICplbmMsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzIGh3X3Jl czsKPiAgCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0 YXRlKGNydGNfc3RhdGUpOwo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTQ5OSwxMiArNTE1LDEwIEBA IGludCBkcHVfcm1fcmVzZXJ2ZSgKPiAgCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQoY3J0Y19zdGF0ZSkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygicmVz ZXJ2aW5nIGh3IGZvciBlbmMgJWQgY3J0YyAlZFxuIiwKPiAtCQkgICAgICBlbmMtPmJhc2UuaWQs IGNydGNfc3RhdGUtPmNydGMtPmJhc2UuaWQpOwo+ICAKPiAtCW11dGV4X2xvY2soJnJtLT5ybV9s b2NrKTsKPiArCURSTV9ERUJVR19LTVMoInJlc2VydmluZyBodyBmb3IgY3J0YyAlZFxuIiwgY3J0 Y19zdGF0ZS0+Y3J0Yy0+YmFzZS5pZCk7Cj4gIAo+IC0JZHB1X2VuY29kZXJfZ2V0X2h3X3Jlc291 cmNlcyhlbmMsICZod19yZXMpOwo+ICsJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwo+ICAKPiAg CXJldCA9IF9kcHVfcm1fcmVzZXJ2ZV9sbXMocm0sIGRwdV9jc3RhdGUpOwo+ICAJaWYgKHJldCkg ewo+IEBAIC01MTgsNiArNTMyLDM3IEBAIGludCBkcHVfcm1fcmVzZXJ2ZSgKPiAgCQlnb3RvIGNs ZWFudXBfb25fZmFpbDsKPiAgCX0KPiAgCj4gKwltdXRleF91bmxvY2soJnJtLT5ybV9sb2NrKTsK PiArCj4gKwlyZXR1cm4gcmV0Owo+ICsKPiArY2xlYW51cF9vbl9mYWlsOgo+ICsJX2RwdV9ybV9j cnRjX3JlbGVhc2VfcmVzZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+ICsKPiArCW11dGV4X3Vu bG9jaygmcm0tPnJtX2xvY2spOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK2ludCBk cHVfcm1fZW5jb2Rlcl9yZXNlcnZlKAo+ICsJCXN0cnVjdCBkcHVfcm0gKnJtLAo+ICsJCXN0cnVj dCBkcm1fZW5jb2RlciAqZW5jLAo+ICsJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiArewo+ICsJc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyBod19yZXM7Cj4gKwlz dHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKTsKPiArCWludCByZXQ7Cj4gKwo+ICsJLyogQ2hlY2sgaWYgdGhpcyBpcyBqdXN0IGEg cGFnZS1mbGlwICovCj4gKwlpZiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNf c3RhdGUpKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCURSTV9ERUJVR19LTVMoInJlc2VydmluZyBo dyBmb3IgZW5jICVkXG4iLCBlbmMtPmJhc2UuaWQpOwo+ICsKPiArCW11dGV4X2xvY2soJnJtLT5y bV9sb2NrKTsKPiArCj4gKwlkcHVfZW5jb2Rlcl9nZXRfaHdfcmVzb3VyY2VzKGVuYywgJmh3X3Jl cyk7Cj4gKwo+ICAJcmV0ID0gX2RwdV9ybV9yZXNlcnZlX2ludGZzKHJtLCBkcHVfY3N0YXRlLCAm aHdfcmVzKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlEUFVfRVJST1IoInVuYWJsZSB0byBmaW5kIGFw cHJvcHJpYXRlIElOVEZcbiIpOwo+IEBAIC01MjksNyArNTc0LDcgQEAgaW50IGRwdV9ybV9yZXNl cnZlKAo+ICAJcmV0dXJuIHJldDsKPiAgCj4gIGNsZWFudXBfb25fZmFpbDoKPiAtCV9kcHVfcm1f cmVsZWFzZV9yZXNlcnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7Cj4gKwlfZHB1X3JtX2VuY29kZXJf cmVsZWFzZV9yZXNlcnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7Cj4gIAo+ICAJbXV0ZXhfdW5sb2Nr KCZybS0+cm1fbG9jayk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfcm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5o Cj4gaW5kZXggMTYyNmNlZi4uMGIxZGViMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfcm0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9ybS5oCj4gQEAgLTUzLDI3ICs1Myw0NSBAQCBpbnQgZHB1X3JtX2luaXQoc3RydWN0 IGRwdV9ybSAqcm0sCj4gIGludCBkcHVfcm1fZGVzdHJveShzdHJ1Y3QgZHB1X3JtICpybSk7Cj4g IAo+ICAvKioKPiAtICogZHB1X3JtX3Jlc2VydmUgLSBHaXZlbiBhIENSVEMtPkVuY29kZXItPkNv bm5lY3RvciBkaXNwbGF5IGNoYWluLCBhbmFseXplCj4gLSAqCXRoZSB1c2UgY29ubmVjdGlvbnMg YW5kIHVzZXIgcmVxdWlyZW1lbnRzLCBzcGVjaWZpZWQgdGhyb3VnaCByZWxhdGVkCj4gKyAqIGRw dV9ybV9lbmNvZGVyX3Jlc2VydmUgLSBHaXZlbiBhbiBFbmNvZGVyLCBhbmFseXplIHRoZSB1c2Ug Y29ubmVjdGlvbnMKPiArICogICAgICBhbmQgdXNlciByZXF1aXJlbWVudHMsIHNwZWNpZmllZCB0 aHJvdWdoIHJlbGF0ZWQKPiAgICoJdG9wb2xvZ3kgY29udHJvbCBwcm9wZXJ0aWVzLCBhbmQgcmVz ZXJ2ZSBoYXJkd2FyZSBibG9ja3MgdG8gdGhhdAo+ICAgKglkaXNwbGF5IGNoYWluLgo+IC0gKglI VyBibG9ja3MgY2FuIHRoZW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBkcHVfcm1fZ2V0XyogZnVuY3Rp b25zLgo+IC0gKglIVyBSZXNlcnZhdGlvbnMgc2hvdWxkIGJlIHJlbGVhc2VkIHZpYSBkcHVfcm1f cmVsZWFzZV9ody4KPiAgICogQHJtOiBEUFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKPiAgICog QGRybV9lbmM6IERSTSBFbmNvZGVyIGhhbmRsZQo+ICAgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQg QXRvbWljIERSTSBDUlRDIFN0YXRlIGhhbmRsZQo+ICAgKiBAUmV0dXJuOiAwIG9uIFN1Y2Nlc3Mg b3RoZXJ3aXNlIC1FUlJPUgo+ICAgKi8KPiAtaW50IGRwdV9ybV9yZXNlcnZlKHN0cnVjdCBkcHVf cm0gKnJtLAo+ICtpbnQgZHB1X3JtX2VuY29kZXJfcmVzZXJ2ZShzdHJ1Y3QgZHB1X3JtICpybSwK PiAgCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKTsKPiAgCj4gIC8qKgo+IC0gKiBkcHVfcm1fcmVsZWFzZSAtIEdpdmVu IHRoZSBlbmNvZGVyIGZvciB0aGUgZGlzcGxheSBjaGFpbiwgcmVsZWFzZSBhbnkKPiAtICoJSFcg YmxvY2tzIHByZXZpb3VzbHkgcmVzZXJ2ZWQgZm9yIHRoYXQgdXNlIGNhc2UuCj4gKyAqIGRwdV9y bV9jcnRjX3Jlc2VydmUgLSBHaXZlbiBhIENSVEMsIGFuYWx5emUgdGhlIHVzZSBjb25uZWN0aW9u cwo+ICsgKiAgICAgIGFuZCB1c2VyIHJlcXVpcmVtZW50cywgc3BlY2lmaWVkIHRocm91Z2ggcmVs YXRlZAo+ICsgKgl0b3BvbG9neSBjb250cm9sIHByb3BlcnRpZXMsIGFuZCByZXNlcnZlIGhhcmR3 YXJlIGJsb2NrcyB0byB0aGF0Cj4gKyAqCWRpc3BsYXkgY2hhaW4uCj4gICAqIEBybTogRFBVIFJl c291cmNlIE1hbmFnZXIgaGFuZGxlCj4gLSAqIEBjcnRjX3N0YXRlOiBhdG9taWMgRFJNIHN0YXRl IGhhbmRsZQo+ICsgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRDIFN0YXRl IGhhbmRsZQo+ICAgKiBAUmV0dXJuOiAwIG9uIFN1Y2Nlc3Mgb3RoZXJ3aXNlIC1FUlJPUgo+ICAg Ki8KPiAtdm9pZCBkcHVfcm1fcmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRybV9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAraW50IGRwdV9ybV9jcnRjX3Jlc2VydmUoc3RydWN0 IGRwdV9ybSAqcm0sCj4gKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAr Cj4gKy8qKgo+ICsgKiBkcHVfcm1fZW5jb2Rlcl9yZWxlYXNlIC0gR2l2ZW4gdGhlIGVuY29kZXIs IHJlbGVhc2UgYW55Cj4gKyAqCUhXIGJsb2NrcyBwcmV2aW91c2x5IHJlc2VydmVkIGZvciB0aGF0 IHVzZSBjYXNlLgo+ICsgKiBAcm06IERQVSBSZXNvdXJjZSBNYW5hZ2VyIGhhbmRsZQo+ICsgKiBA Y3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRDIFN0YXRlIGhhbmRsZQo+ICsgKi8K PiArdm9pZCBkcHVfcm1fZW5jb2Rlcl9yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLAo+ICsJCQkg ICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiArCj4gKy8qKgo+ICsgKiBk cHVfcm1fY3J0Y19yZWxlYXNlIC0gR2l2ZW4gdGhlIGNydGMsIHJlbGVhc2UgYW55Cj4gKyAqCUhX IGJsb2NrcyBwcmV2aW91c2x5IHJlc2VydmVkIGZvciB0aGF0IHVzZSBjYXNlLgo+ICsgKiBAcm06 IERQVSBSZXNvdXJjZSBNYW5hZ2VyIGhhbmRsZQo+ICsgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQg QXRvbWljIERSTSBDUlRDIFN0YXRlIGhhbmRsZQo+ICsgKi8KPiArdm9pZCBkcHVfcm1fY3J0Y19y ZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpOwo+ICAjZW5kaWYgLyogX19EUFVfUk1fSF9fICovCj4gLS0gCj4gVGhlIFF1YWxjb21tIElu bm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1 bSwKPiBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cj4gCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBGcmVlZHJlbm8gbWFp bGluZyBsaXN0Cj4gRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCgotLSAKU2VhbiBQ YXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlz dApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==