From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [Freedreno] [PATCH 22/25] drm/msm/dpu: make crtc and encoder specific HW reservation Date: Wed, 10 Oct 2018 10:33:06 -0400 Message-ID: <20181010143306.GS154160@art_vandelay> 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" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeykumar Sankaran Cc: Sean Paul , dri-devel@lists.freedesktop.org, hoegsberg@google.com, linux-arm-msm@vger.kernel.org, seanpaul@chromium.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gVHVlLCBPY3QgMDksIDIwMTggYXQgMTE6MTU6MDJQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0xMC0wOSAxMzo0MSwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gT24g TW9uLCBPY3QgMDgsIDIwMTggYXQgMDk6Mjc6MzlQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2FyYW4g d3JvdGU6Cj4gPiA+IEluc3RlYWQgb2YgbGV0dGluZyBlbmNvZGVyIG1ha2UgYSBjZW50cmFsaXpl ZCByZXNlcnZhdGlvbiBmb3IKPiA+ID4gYWxsIG9mIGl0cyBkaXNwbGF5IERSTSBjb21wb25lbnRz LCB0aGlzIHBhdGggc3BsaXRzIHRoZQo+ID4gPiByZXNwb25zaWJpbGl0eSBiZXR3ZWVuIENSVEMg YW5kIEVuY29kZXIsIGVhY2ggcmVxdWVzdGluZwo+ID4gPiBSTSBmb3IgdGhlIEhXIG1hcHBpbmcg b2YgaXRzIG93biBkb21haW4uCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKZXlrdW1hciBT YW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgfCAzMSArKysrKysrKysrKysrCj4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIHwgMTQgKyst LS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYyAgICAgIHwg NjkKPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaCAgICAgIHwgMzYgKysrKysrKysrKystLS0tCj4gPiA+ ICA0IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiA+ ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiA+ ID4gaW5kZXggMDYyNWY1Ni4uMDUzNmI4YSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gPiA+IEBAIC00Nyw2ICs0Nyw4IEBACj4gPiA+ICAj ZGVmaW5lIExFRlRfTUlYRVIgMAo+ID4gPiAgI2RlZmluZSBSSUdIVF9NSVhFUiAxCj4gPiA+IAo+ ID4gPiArI2RlZmluZSBNQVhfVkRJU1BMQVlfU1BMSVQgMTA4MAo+ID4gPiArCj4gPiA+ICBzdGF0 aWMgaW5saW5lIGludCBfZHB1X2NydGNfZ2V0X21peGVyX3dpZHRoKHN0cnVjdCBkcHVfY3J0Y19z dGF0ZQo+ID4gKmNzdGF0ZSwKPiA+ID4gIAkJCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlKQo+ID4gPiAgewo+ID4gPiBAQCAtNDQ4LDYgKzQ1MCw3IEBAIHN0YXRpYyB2b2lkIF9k cHVfY3J0Y19zZXR1cF9sbV9ib3VuZHMoc3RydWN0Cj4gPiBkcm1fY3J0YyAqY3J0YywKPiA+ID4g Cj4gPiA+ICAJZm9yIChpID0gMDsgaSA8IGNzdGF0ZS0+bnVtX21peGVyczsgaSsrKSB7Cj4gPiA+ ICAJCXN0cnVjdCBkcm1fcmVjdCAqciA9ICZjc3RhdGUtPmxtX2JvdW5kc1tpXTsKPiA+ID4gKwo+ ID4gPiAgCQlyLT54MSA9IGNydGNfc3BsaXRfd2lkdGggKiBpOwo+ID4gPiAgCQlyLT55MSA9IDA7 Cj4gPiA+ICAJCXItPngyID0gci0+eDEgKyBjcnRjX3NwbGl0X3dpZHRoOwo+ID4gPiBAQCAtODg1 LDYgKzg4OCw3IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj Cj4gPiA+ICpjcnRjKQo+ID4gPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ID4g PiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiA+ID4gIAlzdHJ1Y3QgbXNtX2RybV9w cml2YXRlICpwcml2Owo+ID4gPiArCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwo+ID4gPiAgCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiA+IAo+ID4gPiAgCWlmICghY3J0YyB8fCAhY3J0Yy0+ZGV2 IHx8ICFjcnRjLT5kZXYtPmRldl9wcml2YXRlIHx8Cj4gPiAhY3J0Yy0+c3RhdGUpIHsKPiA+ID4g QEAgLTg5NSw2ICs4OTksNyBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBk cm1fY3J0Ywo+ID4gPiAqY3J0YykKPiA+ID4gIAljc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShj cnRjLT5zdGF0ZSk7Cj4gPiA+ICAJbW9kZSA9ICZjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsK PiA+ID4gIAlwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4gKwlkcHVfa21zID0g dG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+ID4gPiAKPiA+ID4gIAlEUk1fREVCVUdfS01TKCJjcnRj JWRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ID4gPiAKPiA+ID4gQEAgLTk1Myw2ICs5NTgsOCBAQCBz dGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0Ywo+ID4gPiAqY3J0YykK PiA+ID4gIAkJY3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKPiA+ID4gIAkJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4gPiA+ICAJfQo+ID4g PiArCj4gPiA+ICsJZHB1X3JtX2NydGNfcmVsZWFzZSgmZHB1X2ttcy0+cm0sIGNydGMtPnN0YXRl KTsKPiA+ID4gIH0KPiA+ID4gCj4gPiA+ICBzdGF0aWMgdm9pZCBkcHVfY3J0Y19lbmFibGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ID4gPiBAQCAtMTAwNCw2ICsxMDExLDIxIEBAIHN0cnVjdCBw bGFuZV9zdGF0ZSB7Cj4gPiA+ICAJdTMyIHBpcGVfaWQ7Cj4gPiA+ICB9Owo+ID4gPiAKPiA+ID4g K3N0YXRpYyB2b2lkIF9kcHVfY3J0Y19nZXRfdG9wb2xvZ3koCj4gPiA+ICsJCQlzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+ICsJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3Rh dGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiA+ID4gKwo+ID4gPiArCWRwdV9j c3RhdGUtPm51bV9taXhlcnMgPSAobW9kZS0+dmRpc3BsYXkgPiBNQVhfVkRJU1BMQVlfU1BMSVQp ID8gMgo+ID4gOiAxOwo+ID4gPiArCj4gPiA+ICsJLyoqCj4gPiA+ICsJICogZW5jb2Rlci0+YXRv bWljX2NoZWNrIGlzIGludm9rZWQgYmVmb3JlIGNydGMtPmF0b21pY19jaGVjay4KPiA+ID4gKwkg KiBzbyBkcHVfY3N0YXRlLT5udW1faW50ZnMgc2hvdWxkIGhhdmUgYSBub24temVybyB2YWx1ZS4K PiA+ID4gKwkgKi8KPiA+ID4gKwlkcHVfY3N0YXRlLT5udW1fY3RscyA9IGRwdV9jc3RhdGUtPm51 bV9pbnRmczsKPiA+IAo+ID4gV2h5IGRvIHdlIG5lZWQgbnVtX2N0bHM/IENhbid0IHdlIGp1c3Qg dXNlIGRwdV9jc3RhdGUtPm51bV9pbnRmcwo+ID4gZGlyZWN0bHk/Cj4gPiBBbHNvLAo+ID4geW91 IGRvbid0IHJlYWxseSBuZWVkIHRoZXNlIGluIHRoZWlyIG93biBmdW5jdGlvbiwgZXNwZWNpYWxs eSBpZgo+ID4gbnVtX2N0bHMKPiA+IGdvZXMKPiA+IGF3YXkuCj4gPiAKPiBZZXMuIEkgY2FuIGxp dmUgd2l0aCBqdXN0IHRoYXQuIEJ1dCBzaW5jZSBkcHVfY3N0YXRlIG1haW50YWlucyBIVyBhcnJh eXMKPiBmb3IgZWFjaCB0eXBlLCBJIHRob3VnaHQgaXQgd291bGQgYmUgbW9yZSByZWFkYWJsZSBp ZiBJIGNvdWxkIHVzZQo+IHNlcGFyYXRlIHZhcmlhYmxlcyB0byB0cmFjayB0aGVpciBjb3VudHMg aW5zdGVhZCBvZiBpdGVyYXRpbmcgb3Zlcgo+IGN0bCBhcnJheXMgb3ZlciBkcHVfY3N0YXRlLT5u dW1faW50ZnMgYW5kIGxlYXZpbmcgY29tbWVudHMgdGhhdCBib3RoCj4gd2lsbCBiZSBzYW1lIGZv ciB0aGlzIHZlcnNpb24gb2YgaGFyZHdhcmUuCgpZb3UgY291bGQgY2hhbmdlIHRoZSBuYW1lIHRv IG1ha2UgaXQgbW9yZSBnZW5lcmljLiBBRkFJQ1QsCgpudW1faF90aWxlcyA9PSBudW1fcGh5c19l bmNzID09IG51bV9pbnRmcyA9PSBudW1fY3RscwoKU28gc3RvcmluZyBpdCBhcyBudW1faF90aWxl cyBtaWdodCBtYWtlIG1vcmUgc2Vuc2UuCgo+IAo+IEFsc28sIHRoZSBjb3VudHMgbmVlZCBub3Qg YmUgdGhlIHNhbWUgZm9yIGFsbCB0aGUgU25hcGRyYWdvbiB2YXJpYW50cy4KClRoaXMgaXMgcHJv YmFibHkgYSBnb29kIHRoaW5nLiBJdCBkb2Vzbid0IHNlZW0gbGlrZSB0aGUgY3VycmVudCBkcml2 ZXIgd291bGQKd29yayBpZiB0aGVzZSB2YWx1ZXMgd2VyZSBkaWZmZXJlbnQsIHNvIG1ha2luZyBp dCBleHBsaWNpdCBpcyBhIGdvb2Qgc2lnbmFsIHRoYXQKbW9yZSBpbnZhc2l2ZSBjaGFuZ2VzIGFy ZSBuZWVkZWQuCgpTZWFuCgo+IAo+IFRoYW5rcywKPiBKZXlrdW1hciBTLgo+ID4gPiArfQo+ID4g PiArCj4gPiA+ICBzdGF0aWMgaW50IGRwdV9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gPiA+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gPiA+ICB7 Cj4gPiA+IEBAIC0xMDE0LDYgKzEwMzYsOCBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX2NydGMKPiA+ICpjcnRjLAo+ID4gPiAgCWNvbnN0IHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiA+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiA+ID4gKwlzdHJ1Y3QgbXNtX2Ry bV9wcml2YXRlICpwcml2Owo+ID4gPiArCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwo+ID4gPiAK PiA+ID4gIAlpbnQgY250ID0gMCwgcmMgPSAwLCBtaXhlcl93aWR0aCwgaSwgel9wb3M7Cj4gPiA+ IAo+ID4gPiBAQCAtMTAzOSw2ICsxMDYzLDkgQEAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNf Y2hlY2soc3RydWN0IGRybV9jcnRjCj4gPiAqY3J0YywKPiA+ID4gIAkJZ290byBlbmQ7Cj4gPiA+ ICAJfQo+ID4gPiAKPiA+ID4gKwlwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4g KwlkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+ID4gPiArCj4gPiA+ICAJbW9kZSA9 ICZzdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPiA+ID4gIAlEUFVfREVCVUcoIiVzOiBjaGVjayIsIGRw dV9jcnRjLT5uYW1lKTsKPiA+ID4gCj4gPiA+IEBAIC0xMjI5LDYgKzEyNTYsMTAgQEAgc3RhdGlj IGludCBkcHVfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0Cj4gPiA+IGRybV9jcnRjCj4gPiAqY3J0 YywKPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gCj4gPiA+ICsJX2RwdV9jcnRjX2dldF90b3Bv bG9neShzdGF0ZSwgbW9kZSk7Cj4gPiA+ICsJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rl c2V0KHN0YXRlKSkKPiA+ID4gKwkJcmMgPSBkcHVfcm1fY3J0Y19yZXNlcnZlKCZkcHVfa21zLT5y bSwgc3RhdGUpOwo+ID4gPiArCj4gPiA+ICBlbmQ6Cj4gPiA+ICAJa2ZyZWUocHN0YXRlcyk7Cj4g PiA+ICAJcmV0dXJuIHJjOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5jCj4gPiA+IGluZGV4IDVkNTAxYzguLmNlNjYzMDkgMTAwNjQ0Cj4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4gPiBA QCAtNjcsOCArNjcsNiBAQAo+ID4gPiAKPiA+ID4gICNkZWZpbmUgSURMRV9TSE9SVF9USU1FT1VU CTEKPiA+ID4gCj4gPiA+IC0jZGVmaW5lIE1BWF9WRElTUExBWV9TUExJVCAxMDgwCj4gPiA+IC0K PiA+ID4gIC8qKgo+ID4gPiAgICogZW51bSBkcHVfZW5jX3JjX2V2ZW50cyAtIGV2ZW50cyBmb3Ig cmVzb3VyY2UgY29udHJvbCBzdGF0ZSBtYWNoaW5lCj4gPiA+ICAgKiBARFBVX0VOQ19SQ19FVkVO VF9LSUNLT0ZGOgo+ID4gPiBAQCAtNTU3LDE0ICs1NTUsMTAgQEAgc3RhdGljIHZvaWQgX2RwdV9l bmNvZGVyX2FkanVzdF9tb2RlKHN0cnVjdAo+ID4gZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ID4gPiAKPiA+ID4gIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9nZXRfdG9wb2xvZ3koCj4gPiA+ ICAJCQlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYywKPiA+ID4gLQkJCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gLQkJCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlKQo+ID4gPiArCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSA9IHRvX2Rw dV9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ID4gPiAKPiA+ID4gLQkvKiBVc2VyIHNwbGl0IHRv cG9sb2d5IGZvciB3aWR0aCA+IDEwODAgKi8KPiA+ID4gLQlkcHVfY3N0YXRlLT5udW1fbWl4ZXJz ID0gKG1vZGUtPnZkaXNwbGF5ID4gTUFYX1ZESVNQTEFZX1NQTElUKSA/IDIKPiA+IDogMTsKPiA+ ID4gLQlkcHVfY3N0YXRlLT5udW1fY3RscyA9IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7Cj4gPiA+ ICAJZHB1X2NzdGF0ZS0+bnVtX2ludGZzID0gZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsKPiA+ID4g IH0KPiA+ID4gCj4gPiA+IEBAIC02MjMsOSArNjE3LDkgQEAgc3RhdGljIGludCBkcHVfZW5jb2Rl cl92aXJ0X2F0b21pY19jaGVjaygKPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gCj4gPiA+IC0J X2RwdV9lbmNvZGVyX2dldF90b3BvbG9neShkcHVfZW5jLCBjcnRjX3N0YXRlLCBhZGpfbW9kZSk7 Cj4gPiA+ICsJX2RwdV9lbmNvZGVyX2dldF90b3BvbG9neShkcHVfZW5jLCBjcnRjX3N0YXRlKTsK PiA+ID4gIAlpZiAoIXJldCAmJiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0 YXRlKSkKPiA+ID4gLQkJcmV0ID0gZHB1X3JtX3Jlc2VydmUoJmRwdV9rbXMtPnJtLCBkcm1fZW5j LCBjcnRjX3N0YXRlKTsKPiA+ID4gKwkJcmV0ID0gZHB1X3JtX2VuY29kZXJfcmVzZXJ2ZSgmZHB1 X2ttcy0+cm0sIGRybV9lbmMsCj4gPiBjcnRjX3N0YXRlKTsKPiA+ID4gCj4gPiA+ICAJaWYgKCFy ZXQpCj4gPiA+ICAJCWRybV9tb2RlX3NldF9jcnRjaW5mbyhhZGpfbW9kZSwgMCk7Cj4gPiA+IEBA IC0xMTg2LDcgKzExODAsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0X2Rpc2FibGUo c3RydWN0Cj4gPiBkcm1fZW5jb2RlciAqZHJtX2VuYykKPiA+ID4gCj4gPiA+ICAJRFBVX0RFQlVH X0VOQyhkcHVfZW5jLCAiZW5jb2RlciBkaXNhYmxlZFxuIik7Cj4gPiA+IAo+ID4gPiAtCWRwdV9y bV9yZWxlYXNlKCZkcHVfa21zLT5ybSwgZHJtX2VuYy0+Y3J0Yy0+c3RhdGUpOwo+ID4gPiArCWRw dV9ybV9lbmNvZGVyX3JlbGVhc2UoJmRwdV9rbXMtPnJtLCBkcm1fZW5jLT5jcnRjLT5zdGF0ZSk7 Cj4gPiA+ICB9Cj4gPiA+IAo+ID4gPiAgc3RhdGljIGVudW0gZHB1X2ludGYgZHB1X2VuY29kZXJf Z2V0X2ludGYoc3RydWN0IGRwdV9tZHNzX2NmZwo+ID4gPiAqY2F0YWxvZywKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCj4gPiBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCj4gPiA+IGluZGV4IDUzMDQ1OTcuLjkw MWIxZmMgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9ybS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5j Cj4gPiA+IEBAIC00MzYsOCArNDM2LDggQEAgc3RhdGljIGludCBfZHB1X3JtX3JlbGVhc2VfaHco c3RydWN0IGRwdV9ybSAqcm0sCj4gPiBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlLAo+ID4gPiAg CXJldHVybiAtRUlOVkFMOwo+ID4gPiAgfQo+ID4gPiAKPiA+ID4gLXN0YXRpYyB2b2lkIF9kcHVf cm1fcmVsZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZHB1X3JtICpybSwKPiA+ID4gLQkJCQkJc3Ry dWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlKQo+ID4gPiArc3RhdGljIHZvaWQgX2RwdV9y bV9jcnRjX3JlbGVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRwdV9ybSAqcm0sCj4gPiA+ICsJCQkJ CSAgICAgc3RydWN0IGRwdV9jcnRjX3N0YXRlCj4gPiAqZHB1X2NzdGF0ZSkKPiA+ID4gIHsKPiA+ ID4gIAlpbnQgaTsKPiA+ID4gCj4gPiA+IEBAIC00NjQsNiArNDY0LDEyIEBAIHN0YXRpYyB2b2lk IF9kcHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QKPiA+IGRwdV9ybSAqcm0sCj4gPiA+ ICAJCQkJCWRwdV9jc3RhdGUtPmh3X2N0bHNbaV0tPmJhc2UuaWQpKQo+ID4gPiAgCQkJZHB1X2Nz dGF0ZS0+aHdfY3Rsc1tpXSA9IE5VTEw7Cj4gPiA+ICAJfQo+ID4gPiArfQo+ID4gPiArCj4gPiA+ ICtzdGF0aWMgdm9pZCBfZHB1X3JtX2VuY29kZXJfcmVsZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3Qg ZHB1X3JtICpybSwKPiA+ID4gKwkJCQkJICAgICAgc3RydWN0IGRwdV9jcnRjX3N0YXRlCj4gPiAq ZHB1X2NzdGF0ZSkKPiA+ID4gK3sKPiA+ID4gKwlpbnQgaTsKPiA+ID4gCj4gPiA+ICAJZm9yIChp ID0gMDsgaSA8IGRwdV9jc3RhdGUtPm51bV9pbnRmczsgaSsrKSB7Cj4gPiA+ICAJCWlmICghZHB1 X2NzdGF0ZS0+aHdfaW50ZnNbaV0pCj4gPiA+IEBAIC00NzUsMjMgKzQ4MSwzMyBAQCBzdGF0aWMg dm9pZCBfZHB1X3JtX3JlbGVhc2VfcmVzZXJ2YXRpb24oc3RydWN0Cj4gPiBkcHVfcm0gKnJtLAo+ ID4gPiAgCX0KPiA+ID4gIH0KPiA+ID4gCj4gPiA+IC12b2lkIGRwdV9ybV9yZWxlYXNlKHN0cnVj dCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUKPiA+ICpjcnRjX3N0YXRlKQo+ID4g PiArdm9pZCBkcHVfcm1fY3J0Y19yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUKPiA+ICpjcnRjX3N0YXRlKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBkcHVf Y3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ ID4gPiAKPiA+ID4gIAltdXRleF9sb2NrKCZybS0+cm1fbG9jayk7Cj4gPiA+IAo+ID4gPiAtCV9k cHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7Cj4gPiA+ICsJX2RwdV9y bV9jcnRjX3JlbGVhc2VfcmVzZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+ID4gPiAKPiA+ID4g IAltdXRleF91bmxvY2soJnJtLT5ybV9sb2NrKTsKPiA+ID4gIH0KPiA+ID4gCj4gPiA+IC1pbnQg ZHB1X3JtX3Jlc2VydmUoCj4gPiA+ICt2b2lkIGRwdV9ybV9lbmNvZGVyX3JlbGVhc2Uoc3RydWN0 IGRwdV9ybSAqcm0sCj4gPiA+ICsJCQkgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSA9 IHRvX2RwdV9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ID4gPiArCj4gPiA+ICsJbXV0ZXhfbG9j aygmcm0tPnJtX2xvY2spOwo+ID4gPiArCj4gPiA+ICsJX2RwdV9ybV9lbmNvZGVyX3JlbGVhc2Vf cmVzZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+ID4gPiArCj4gPiA+ICsJbXV0ZXhfdW5sb2Nr KCZybS0+cm1fbG9jayk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK2ludCBkcHVfcm1fY3J0Y19y ZXNlcnZlKAo+ID4gPiAgCQlzdHJ1Y3QgZHB1X3JtICpybSwKPiA+ID4gLQkJc3RydWN0IGRybV9l bmNvZGVyICplbmMsCj4gPiA+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiA+ID4gIHsKPiA+ID4gLQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzIGh3X3JlczsK PiA+ID4gIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19z dGF0ZShjcnRjX3N0YXRlKTsKPiA+ID4gIAlpbnQgcmV0Owo+ID4gPiAKPiA+ID4gQEAgLTQ5OSwx MiArNTE1LDEwIEBAIGludCBkcHVfcm1fcmVzZXJ2ZSgKPiA+ID4gIAlpZiAoIWRybV9hdG9taWNf Y3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ID4gPiAgCQlyZXR1cm4gMDsKPiA+ID4g Cj4gPiA+IC0JRFJNX0RFQlVHX0tNUygicmVzZXJ2aW5nIGh3IGZvciBlbmMgJWQgY3J0YyAlZFxu IiwKPiA+ID4gLQkJICAgICAgZW5jLT5iYXNlLmlkLCBjcnRjX3N0YXRlLT5jcnRjLT5iYXNlLmlk KTsKPiA+ID4gCj4gPiA+IC0JbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwo+ID4gPiArCURSTV9E RUJVR19LTVMoInJlc2VydmluZyBodyBmb3IgY3J0YyAlZFxuIiwKPiA+IGNydGNfc3RhdGUtPmNy dGMtPmJhc2UuaWQpOwo+ID4gPiAKPiA+ID4gLQlkcHVfZW5jb2Rlcl9nZXRfaHdfcmVzb3VyY2Vz KGVuYywgJmh3X3Jlcyk7Cj4gPiA+ICsJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwo+ID4gPiAK PiA+ID4gIAlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfbG1zKHJtLCBkcHVfY3N0YXRlKTsKPiA+ID4g IAlpZiAocmV0KSB7Cj4gPiA+IEBAIC01MTgsNiArNTMyLDM3IEBAIGludCBkcHVfcm1fcmVzZXJ2 ZSgKPiA+ID4gIAkJZ290byBjbGVhbnVwX29uX2ZhaWw7Cj4gPiA+ICAJfQo+ID4gPiAKPiA+ID4g KwltdXRleF91bmxvY2soJnJtLT5ybV9sb2NrKTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiByZXQ7 Cj4gPiA+ICsKPiA+ID4gK2NsZWFudXBfb25fZmFpbDoKPiA+ID4gKwlfZHB1X3JtX2NydGNfcmVs ZWFzZV9yZXNlcnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7Cj4gPiA+ICsKPiA+ID4gKwltdXRleF91 bmxvY2soJnJtLT5ybV9sb2NrKTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiByZXQ7Cj4gPiA+ICt9 Cj4gPiA+ICsKPiA+ID4gK2ludCBkcHVfcm1fZW5jb2Rlcl9yZXNlcnZlKAo+ID4gPiArCQlzdHJ1 Y3QgZHB1X3JtICpybSwKPiA+ID4gKwkJc3RydWN0IGRybV9lbmNvZGVyICplbmMsCj4gPiA+ICsJ CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1 Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzIGh3X3JlczsKPiA+ID4gKwlzdHJ1Y3QgZHB1X2Ny dGNfc3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiA+ ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJLyogQ2hlY2sgaWYgdGhpcyBpcyBqdXN0IGEg cGFnZS1mbGlwICovCj4gPiA+ICsJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChj cnRjX3N0YXRlKSkKPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwlEUk1fREVCVUdf S01TKCJyZXNlcnZpbmcgaHcgZm9yIGVuYyAlZFxuIiwgZW5jLT5iYXNlLmlkKTsKPiA+ID4gKwo+ ID4gPiArCW11dGV4X2xvY2soJnJtLT5ybV9sb2NrKTsKPiA+ID4gKwo+ID4gPiArCWRwdV9lbmNv ZGVyX2dldF9od19yZXNvdXJjZXMoZW5jLCAmaHdfcmVzKTsKPiA+ID4gKwo+ID4gPiAgCXJldCA9 IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmcyhybSwgZHB1X2NzdGF0ZSwgJmh3X3Jlcyk7Cj4gPiA+ICAJ aWYgKHJldCkgewo+ID4gPiAgCQlEUFVfRVJST1IoInVuYWJsZSB0byBmaW5kIGFwcHJvcHJpYXRl IElOVEZcbiIpOwo+ID4gPiBAQCAtNTI5LDcgKzU3NCw3IEBAIGludCBkcHVfcm1fcmVzZXJ2ZSgK PiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4gPiAKPiA+ID4gIGNsZWFudXBfb25fZmFpbDoKPiA+ID4g LQlfZHB1X3JtX3JlbGVhc2VfcmVzZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwo+ID4gPiArCV9k cHVfcm1fZW5jb2Rlcl9yZWxlYXNlX3Jlc2VydmF0aW9uKHJtLCBkcHVfY3N0YXRlKTsKPiA+ID4g Cj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZybS0+cm1fbG9jayk7Cj4gPiA+IAo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKPiA+IGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKPiA+ID4gaW5kZXggMTYyNmNlZi4uMGIx ZGViMCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3JtLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgK PiA+ID4gQEAgLTUzLDI3ICs1Myw0NSBAQCBpbnQgZHB1X3JtX2luaXQoc3RydWN0IGRwdV9ybSAq cm0sCj4gPiA+ICBpbnQgZHB1X3JtX2Rlc3Ryb3koc3RydWN0IGRwdV9ybSAqcm0pOwo+ID4gPiAK PiA+ID4gIC8qKgo+ID4gPiAtICogZHB1X3JtX3Jlc2VydmUgLSBHaXZlbiBhIENSVEMtPkVuY29k ZXItPkNvbm5lY3RvciBkaXNwbGF5IGNoYWluLAo+ID4gYW5hbHl6ZQo+ID4gPiAtICoJdGhlIHVz ZSBjb25uZWN0aW9ucyBhbmQgdXNlciByZXF1aXJlbWVudHMsIHNwZWNpZmllZCB0aHJvdWdoCj4g PiByZWxhdGVkCj4gPiA+ICsgKiBkcHVfcm1fZW5jb2Rlcl9yZXNlcnZlIC0gR2l2ZW4gYW4gRW5j b2RlciwgYW5hbHl6ZSB0aGUgdXNlCj4gPiBjb25uZWN0aW9ucwo+ID4gPiArICogICAgICBhbmQg dXNlciByZXF1aXJlbWVudHMsIHNwZWNpZmllZCB0aHJvdWdoIHJlbGF0ZWQKPiA+ID4gICAqCXRv cG9sb2d5IGNvbnRyb2wgcHJvcGVydGllcywgYW5kIHJlc2VydmUgaGFyZHdhcmUgYmxvY2tzIHRv IHRoYXQKPiA+ID4gICAqCWRpc3BsYXkgY2hhaW4uCj4gPiA+IC0gKglIVyBibG9ja3MgY2FuIHRo ZW4gYmUgYWNjZXNzZWQgdGhyb3VnaCBkcHVfcm1fZ2V0XyogZnVuY3Rpb25zLgo+ID4gPiAtICoJ SFcgUmVzZXJ2YXRpb25zIHNob3VsZCBiZSByZWxlYXNlZCB2aWEgZHB1X3JtX3JlbGVhc2VfaHcu Cj4gPiA+ICAgKiBAcm06IERQVSBSZXNvdXJjZSBNYW5hZ2VyIGhhbmRsZQo+ID4gPiAgICogQGRy bV9lbmM6IERSTSBFbmNvZGVyIGhhbmRsZQo+ID4gPiAgICogQGNydGNfc3RhdGU6IFByb3Bvc2Vk IEF0b21pYyBEUk0gQ1JUQyBTdGF0ZSBoYW5kbGUKPiA+ID4gICAqIEBSZXR1cm46IDAgb24gU3Vj Y2VzcyBvdGhlcndpc2UgLUVSUk9SCj4gPiA+ICAgKi8KPiA+ID4gLWludCBkcHVfcm1fcmVzZXJ2 ZShzdHJ1Y3QgZHB1X3JtICpybSwKPiA+ID4gK2ludCBkcHVfcm1fZW5jb2Rlcl9yZXNlcnZlKHN0 cnVjdCBkcHVfcm0gKnJtLAo+ID4gPiAgCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCj4g PiA+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPiA+IAo+ID4gPiAg LyoqCj4gPiA+IC0gKiBkcHVfcm1fcmVsZWFzZSAtIEdpdmVuIHRoZSBlbmNvZGVyIGZvciB0aGUg ZGlzcGxheSBjaGFpbiwgcmVsZWFzZQo+ID4gYW55Cj4gPiA+IC0gKglIVyBibG9ja3MgcHJldmlv dXNseSByZXNlcnZlZCBmb3IgdGhhdCB1c2UgY2FzZS4KPiA+ID4gKyAqIGRwdV9ybV9jcnRjX3Jl c2VydmUgLSBHaXZlbiBhIENSVEMsIGFuYWx5emUgdGhlIHVzZSBjb25uZWN0aW9ucwo+ID4gPiAr ICogICAgICBhbmQgdXNlciByZXF1aXJlbWVudHMsIHNwZWNpZmllZCB0aHJvdWdoIHJlbGF0ZWQK PiA+ID4gKyAqCXRvcG9sb2d5IGNvbnRyb2wgcHJvcGVydGllcywgYW5kIHJlc2VydmUgaGFyZHdh cmUgYmxvY2tzIHRvIHRoYXQKPiA+ID4gKyAqCWRpc3BsYXkgY2hhaW4uCj4gPiA+ICAgKiBAcm06 IERQVSBSZXNvdXJjZSBNYW5hZ2VyIGhhbmRsZQo+ID4gPiAtICogQGNydGNfc3RhdGU6IGF0b21p YyBEUk0gc3RhdGUgaGFuZGxlCj4gPiA+ICsgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWlj IERSTSBDUlRDIFN0YXRlIGhhbmRsZQo+ID4gPiAgICogQFJldHVybjogMCBvbiBTdWNjZXNzIG90 aGVyd2lzZSAtRVJST1IKPiA+ID4gICAqLwo+ID4gPiAtdm9pZCBkcHVfcm1fcmVsZWFzZShzdHJ1 Y3QgZHB1X3JtICpybSwgc3RydWN0IGRybV9jcnRjX3N0YXRlCj4gPiAqY3J0Y19zdGF0ZSk7Cj4g PiA+ICtpbnQgZHB1X3JtX2NydGNfcmVzZXJ2ZShzdHJ1Y3QgZHB1X3JtICpybSwKPiA+ID4gKwkJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiA+ID4gKwo+ID4gPiArLyoqCj4g PiA+ICsgKiBkcHVfcm1fZW5jb2Rlcl9yZWxlYXNlIC0gR2l2ZW4gdGhlIGVuY29kZXIsIHJlbGVh c2UgYW55Cj4gPiA+ICsgKglIVyBibG9ja3MgcHJldmlvdXNseSByZXNlcnZlZCBmb3IgdGhhdCB1 c2UgY2FzZS4KPiA+ID4gKyAqIEBybTogRFBVIFJlc291cmNlIE1hbmFnZXIgaGFuZGxlCj4gPiA+ ICsgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRDIFN0YXRlIGhhbmRsZQo+ ID4gPiArICovCj4gPiA+ICt2b2lkIGRwdV9ybV9lbmNvZGVyX3JlbGVhc2Uoc3RydWN0IGRwdV9y bSAqcm0sCj4gPiA+ICsJCQkgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsK PiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ICsgKiBkcHVfcm1fY3J0Y19yZWxlYXNlIC0gR2l2ZW4g dGhlIGNydGMsIHJlbGVhc2UgYW55Cj4gPiA+ICsgKglIVyBibG9ja3MgcHJldmlvdXNseSByZXNl cnZlZCBmb3IgdGhhdCB1c2UgY2FzZS4KPiA+ID4gKyAqIEBybTogRFBVIFJlc291cmNlIE1hbmFn ZXIgaGFuZGxlCj4gPiA+ICsgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRD IFN0YXRlIGhhbmRsZQo+ID4gPiArICovCj4gPiA+ICt2b2lkIGRwdV9ybV9jcnRjX3JlbGVhc2Uo c3RydWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZQo+ID4gKmNydGNfc3RhdGUp Owo+ID4gPiAgI2VuZGlmIC8qIF9fRFBVX1JNX0hfXyAqLwo+ID4gPiAtLQo+ID4gPiBUaGUgUXVh bGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVy b3JhCj4gPiBGb3J1bSwKPiA+ID4gYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJv amVjdAo+ID4gPiAKPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiA+ID4gRnJlZWRyZW5vIG1haWxpbmcgbGlzdAo+ID4gPiBGcmVlZHJlbm9AbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCj4gCj4gLS0gCj4gSmV5a3VtYXIgUwoKLS0gClNlYW4g UGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=