From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH 6/8] drm/msm: dpu: Separate crtc assignment from vblank enable Date: Wed, 14 Nov 2018 11:43:51 -0800 Message-ID: <25b009f90b6513f788fcc6748ae26e63@codeaurora.org> References: <20181113205257.170707-1-sean@poorly.run> <20181113205257.170707-6-sean@poorly.run> <20181114151615.GO154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181114151615.GO154160@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: Sean Paul , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0xMS0xNCAwNzoxNiwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFR1ZSwgTm92IDEzLCAy MDE4IGF0IDA0OjQ4OjEyUE0gLTA4MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBPbiAy MDE4LTExLTEzIDEyOjUyLCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gRnJvbTogU2VhbiBQYXVsIDxz ZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+ID4KPj4gPiBJbnN0ZWFkIG9mIGFzc2lnbmluZy9jbGVh cmluZyB0aGUgY3J0YyBvbiB2YmxhbmsgZW5hYmxlL2Rpc2FibGUsIHdlCj4gY2FuCj4+ID4ganVz dCBhc3NpZ24gYW5kIGNsZWFyIHRoZSBjcnRjIG9uIG1vZGVzZXQuIFRoYXQgYWxsb3dzIHVzIHRv IGp1c3QKPiB0b2dnbGUKPj4gPiB0aGUgZW5jb2RlcidzIHZibGFuayBpbnRlcnJ1cHRzIG9uIHZi bGFua19lbmFibGUuCj4+ID4KPj4gPiBTbyB3aHkgaXMgdGhpcyBpbXBvcnRhbnQ/IFByZXZpb3Vz bHkgdGhlIGRyaXZlciB3YXMgdXNpbmcgdGhlIGxlZ2FjeQo+PiA+IHBvaW50ZXJzIHRvIGFzc2ln bi9jbGVhciB0aGUgY3J0Yy4gTGVnYWN5IHBvaW50ZXJzIGFyZSBjbGVhcmVkIF9hZnRlcl8KPj4g V2hpY2ggcG9pbnRlcnMgYXJlIHlvdSByZWZlcnJpbmcgaGVyZSBhcyBsZWdhY3kgcG9pbnRlcnM/ IENSVEM/Cj4gCj4gZW5jb2Rlci0+Y3J0YyBpbiB0aGlzIGNhc2UuIFRoZSBsb29wIGluIHZibGFu a19lbmFibGVfbm9fbG9jayByZWxpZXMgb24KPiBlbmMtPmNydGMgPT0gY3J0Ywo+IAo+PiA+IGRp c2FibGluZyB0aGUgaGFyZHdhcmUsIHNvIHRoZSBsZWdhY3kgcG9pbnRlciB3YXMgdmFsaWQgZHVy aW5nCj4+ID4gdmJsYW5rX2Rpc2FibGUsIGJ1dCB0aGF0J3Mgbm90IHNvbWV0aGluZyB3ZSBzaG91 bGQgcmVseSBvbi4KPj4gPgo+PiA+IEluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgY29yZSBvcmRl cmluZyB0aGUgbGVnYWN5IHBvaW50ZXIgYXNzaWdubWVudHMKPj4gPiBqdXN0IHNvLCB3ZSdsbCBh c3NpZ24gdGhlIGNydGMgaW4gZHB1X2NydGMgZW5hYmxlL2Rpc2FibGUuIFRoaXMgaXMgdGhlCj4+ ID4gb25seSBwbGFjZSB0aGF0IG1hcHBpbmcgY2FuIGNoYW5nZSwgc28gd2UncmUgY292ZXJlZCB0 aGVyZS4KPj4gPgo+PiA+IFdlJ3JlIGFsc28gdGFraW5nIGFkdmFudGFnZSBvZiBkcm1fY3J0Y192 Ymxhbmtfb24vb2ZmLiBCeSB1c2luZyB0aGlzLAo+IHdlCj4+ID4gZW5zdXJlIHRoYXQgdmJsYW5r X2VuYWJsZS9kaXNhYmxlIGNhbiBuZXZlciBiZSBjYWxsZWQgd2hpbGUgdGhlIGNydGMKPiBpcwo+ PiA+IG9mZiAod2hpY2ggbWVhbnMgdGhlIGFzc2lnbmVkIGNydGMgd2lsbCBhbHdheXMgYmUgdmFs aWQpLiBBcyBzdWNoLCB3ZQo+PiAKPj4gV2hhdCBhYm91dCB0aGUgZHJtX3ZibGFua19lbmFibGUv ZGlzYWJsZSB0cmlnZ2VyZWQgYnkgZHJtX3ZibGFua19nZXQKPiB3aGVuCj4+IGNydGMKPj4gaXMg ZGlzYWJsZWQ/IFdoYXQgaXMgdGhlIGV4cGVjdGVkIGJlaGF2aW9yIHRoZXJlPyB0aGUgdmJsYW5r X3JlcXVlc3RlZAo+PiB2YXJpYWJsZSByZW1vdmVkIGJ5IHRoZSBuZXh0IHBhdGNoIHdhcyBpbnRy b2R1Y2VkIHRvIGNhY2hlIHRoZSAKPj4gcmVxdWVzdC4KPiAKPiBUaGF0IGNhc2UgaXMgY292ZXJl ZCBieSB0aGUgbW9kZXNldCBsb2NrcyBoZWxkIHdoZW4gY2FsbGluZyBkaXNhYmxlKCkuCj4gCkkg YW0gc3VyZSBpdCB3aWxsIHRha2UgY2FyZSBvZiBkcm1fY3J0Y192Ymxhbmtfb24vb2ZmIHRyaWdn ZXJlZCB3aXRoaW4gCmNydGNfZGlzYWJsZS4KTXkgcXVlc3Rpb24gd2FzIHdoYXQgd2FzIHRoZSBl eHBlY3RlZCBiZWhhdmlvdXIgd2hlbiAKRFJNX0lPQ1RMX1dBSVRfVkJMQU5LIGlzCmNhbGxlZCB3 aGVuIGNydGMgaXMgZGlzYWJsZWQ/IHRoZSBpb2N0bCB3aWxsIHRyeSB0byBjYWxsIGRybV92Ymxh bmtfZ2V0IAphbmQgSQpkb24ndCBzZWUgdGhlIHBhdGNoIGNoZWNraW5nIGZvciBjcnRjIGJlaW5n IGVuYWJsZWQgaW4gdGhlIHBhdGguCgpUaGFua3MgYW5kIFJlZ2FyZHMsCkpleWt1bWFyIFMuCgoK Pj4gCj4+ID4gZG9uJ3QgbmVlZCB0byB1c2UgbW9kZXNldCBsb2NrcyBvciB0aGUgY3J0Y19sb2Nr IGluIHRoZQo+PiA+IHZibGFua19lbmFibGUvZGlzYWJsZSByb3V0aW5lIHRvIGJlIHN1cmUgc3Rh dGUgaXMgY29uc2lzdGVudC4KPj4gPgo+PiA+IC4uLkkgdGhpbmsuCj4+ID4KPj4gPiBTaWduZWQt b2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPj4gPiAtLS0KPj4gPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyAgICB8IDc3Cj4gKysrKysr KysrLS0tLS0tLS0tLS0tCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyLmMgfCAyNyArKysrKy0tLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5oIHwgMTAgKysrCj4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0 aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+PiA+IGluZGV4IDRiN2Y5OGE2YWI2MC4uNTllODIzMjgx ZmRmIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j Cj4+ID4gQEAgLTc1Nyw0MyArNzU3LDYgQEAgdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihz dHJ1Y3QgZHJtX2NydGMKPiAqY3J0YykKPj4gPiAgCURQVV9BVFJBQ0VfRU5EKCJjcnRjX2NvbW1p dCIpOwo+PiA+ICB9Cj4+ID4KPj4gPiAtLyoqCj4+ID4gLSAqIF9kcHVfY3J0Y192YmxhbmtfZW5h YmxlX25vX2xvY2sgLSB1cGRhdGUgcG93ZXIgcmVzb3VyY2UgYW5kIHZibGFuawo+PiA+IHJlcXVl c3QKPj4gPiAtICogQGRwdV9jcnRjOiBQb2ludGVyIHRvIGRwdSBjcnRjIHN0cnVjdHVyZQo+PiA+ IC0gKiBAZW5hYmxlOiBXaGV0aGVyIHRvIGVuYWJsZS9kaXNhYmxlIHZibGFua3MKPj4gPiAtICov Cj4+ID4gLXN0YXRpYyB2b2lkIF9kcHVfY3J0Y192YmxhbmtfZW5hYmxlX25vX2xvY2soCj4+ID4g LQkJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YywgYm9vbCBlbmFibGUpCj4+ID4gLXsKPj4gPiAt CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZkcHVfY3J0Yy0+YmFzZTsKPj4gPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4+ID4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu YzsKPj4gPiAtCj4+ID4gLQlpZiAoZW5hYmxlKSB7Cj4+ID4gLQkJbGlzdF9mb3JfZWFjaF9lbnRy eShlbmMsICZkZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwKPj4gPiBoZWFkKSB7Cj4+ID4g LQkJCWlmIChlbmMtPmNydGMgIT0gY3J0YykKPj4gPiAtCQkJCWNvbnRpbnVlOwo+PiA+IC0KPj4g PiAtCj4+ID4gdHJhY2VfZHB1X2NydGNfdmJsYW5rX2VuYWJsZShEUk1JRCgmZHB1X2NydGMtPmJh c2UpLAo+PiA+IC0JCQkJCQkgICAgIERSTUlEKGVuYyksIGVuYWJsZSwKPj4gPiAtCQkJCQkJICAg ICBkcHVfY3J0Yyk7Cj4+ID4gLQo+PiA+IC0JCQlkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0YyhlbmMs IGNydGMpOwo+PiA+IC0JCX0KPj4gPiAtCX0gZWxzZSB7Cj4+ID4gLQkJbGlzdF9mb3JfZWFjaF9l bnRyeShlbmMsICZkZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwKPj4gPiBoZWFkKSB7Cj4+ ID4gLQkJCWlmIChlbmMtPmNydGMgIT0gY3J0YykKPj4gPiAtCQkJCWNvbnRpbnVlOwo+PiA+IC0K Pj4gPiAtCj4+ID4gdHJhY2VfZHB1X2NydGNfdmJsYW5rX2VuYWJsZShEUk1JRCgmZHB1X2NydGMt PmJhc2UpLAo+PiA+IC0JCQkJCQkgICAgIERSTUlEKGVuYyksIGVuYWJsZSwKPj4gPiAtCQkJCQkJ ICAgICBkcHVfY3J0Yyk7Cj4+ID4gLQo+PiA+IC0JCQlkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0Yyhl bmMsIE5VTEwpOwo+PiA+IC0JCX0KPj4gPiAtCX0KPj4gPiAtfQo+PiA+IC0KPj4gPiAgLyoqCj4+ ID4gICAqIGRwdV9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSAtIHN0YXRlIGR1cGxpY2F0ZSBob29rCj4+ ID4gICAqIEBjcnRjOiBQb2ludGVyIHRvIGRybSBjcnRjIHN0cnVjdHVyZQo+PiA+IEBAIC04NDcs NiArODEwLDEwIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj Cj4gKmNydGMsCj4+ID4gIAkvKiBEaXNhYmxlL3NhdmUgdmJsYW5rIGlycSBoYW5kbGluZyAqLwo+ PiA+ICAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPj4gPgo+PiA+ICsJZHJtX2Zvcl9lYWNo X2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsCj4+ID4gKwkJCQkgIG9sZF9jcnRjX3N0 YXRlLT5lbmNvZGVyX21hc2spCj4+ID4gKwkJZHB1X2VuY29kZXJfYXNzaWduX2NydGMoZW5jb2Rl ciwgTlVMTCk7Cj4+ID4gKwo+PiA+ICAJbXV0ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7 Cj4+ID4KPj4gPiAgCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAqLwo+ PiA+IEBAIC04NTYsOSArODIzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMKPiAqY3J0YywKPj4gPiAgCQkJCWF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJh bWVfcGVuZGluZykpOwo+PiA+Cj4+ID4gIAl0cmFjZV9kcHVfY3J0Y19kaXNhYmxlKERSTUlEKGNy dGMpLCBmYWxzZSwgZHB1X2NydGMpOwo+PiA+IC0JaWYgKGRwdV9jcnRjLT5lbmFibGVkICYmIGRw dV9jcnRjLT52YmxhbmtfcmVxdWVzdGVkKSB7Cj4+ID4gLQkJX2RwdV9jcnRjX3ZibGFua19lbmFi bGVfbm9fbG9jayhkcHVfY3J0YywgZmFsc2UpOwo+PiA+IC0JfQo+PiA+ICAJZHB1X2NydGMtPmVu YWJsZWQgPSBmYWxzZTsKPj4gPgo+PiA+ICAJaWYgKGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJh bWVfcGVuZGluZykpIHsKPj4gPiBAQCAtOTIyLDEzICs4ODYsMTMgQEAgc3RhdGljIHZvaWQgZHB1 X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0Ywo+ICpjcnRjLAo+PiA+Cj4+ID4gIAltdXRleF9s b2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKPj4gPiAgCXRyYWNlX2RwdV9jcnRjX2VuYWJsZShE Uk1JRChjcnRjKSwgdHJ1ZSwgZHB1X2NydGMpOwo+PiA+IC0JaWYgKCFkcHVfY3J0Yy0+ZW5hYmxl ZCAmJiBkcHVfY3J0Yy0+dmJsYW5rX3JlcXVlc3RlZCkgewo+PiA+IC0JCV9kcHVfY3J0Y192Ymxh bmtfZW5hYmxlX25vX2xvY2soZHB1X2NydGMsIHRydWUpOwo+PiA+IC0JfQo+PiA+ICAJZHB1X2Ny dGMtPmVuYWJsZWQgPSB0cnVlOwo+PiA+Cj4+ID4gIAltdXRleF91bmxvY2soJmRwdV9jcnRjLT5j cnRjX2xvY2spOwo+PiA+Cj4+ID4gKwlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIs IGNydGMtPmRldiwKPj4gPiBjcnRjLT5zdGF0ZS0+ZW5jb2Rlcl9tYXNrKQo+PiA+ICsJCWRwdV9l bmNvZGVyX2Fzc2lnbl9jcnRjKGVuY29kZXIsIGNydGMpOwo+PiA+ICsKPj4gPiAgCS8qIEVuYWJs ZS9yZXN0b3JlIHZibGFuayBpcnEgaGFuZGxpbmcgKi8KPj4gPiAgCWRybV9jcnRjX3ZibGFua19v bihjcnRjKTsKPj4gPiAgfQo+PiA+IEBAIC0xMTczLDEwICsxMTM3LDMzIEBAIHN0YXRpYyBpbnQg ZHB1X2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdAo+IGRybV9jcnRjCj4+ID4gKmNydGMsCj4+ID4g IGludCBkcHVfY3J0Y192Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGVuKQo+PiA+ ICB7Cj4+ID4gIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7 Cj4+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYzsKPj4gPgo+PiA+IC0JbXV0ZXhfbG9jaygm ZHB1X2NydGMtPmNydGNfbG9jayk7Cj4+ID4gIAl0cmFjZV9kcHVfY3J0Y192YmxhbmsoRFJNSUQo JmRwdV9jcnRjLT5iYXNlKSwgZW4sIGRwdV9jcnRjKTsKPj4gPiAtCV9kcHVfY3J0Y192Ymxhbmtf ZW5hYmxlX25vX2xvY2soZHB1X2NydGMsIGVuKTsKPj4gPiArCj4+ID4gKwkvKgo+PiA+ICsJICog Tm9ybWFsbHkgd2Ugd291bGQgaXRlcmF0ZSB0aHJvdWdoIGVuY29kZXJfbWFzayBpbiBjcnRjIHN0 YXRlIHRvCj4+ID4gZmluZAo+PiA+ICsJICogYXR0YWNoZWQgZW5jb2RlcnMuIEluIHRoaXMgY2Fz ZSwgd2UgbWlnaHQgYmUgZGlzYWJsaW5nIHZibGFuawo+PiA+IF9hZnRlcl8KPj4gPiArCSAqIGVu Y29kZXJfbWFzayBoYXMgYmVlbiBjbGVhcmVkLgo+PiA+ICsJICoKPj4gPiArCSAqIEluc3RlYWQs IHdlICJhc3NpZ24iIGEgY3J0YyB0byB0aGUgZW5jb2RlciBpbiBlbmFibGUgYW5kIGNsZWFyCj4+ ID4gaXQgaW4KPj4gPiArCSAqIGRpc2FibGUgKHdoaWNoIGlzIGFsc28gYWZ0ZXIgZW5jb2Rlcl9t YXNrIGlzIGNsZWFyZWQpLiBTbwo+PiA+IGluc3RlYWQgb2YKPj4gPiArCSAqIHVzaW5nIGVuY29k ZXIgbWFzaywgd2UnbGwgYXNrIHRoZSBlbmNvZGVyIHRvIHRvZ2dsZSBpdHNlbGYgaWZmCj4+ID4g aXQncwo+PiA+ICsJICogY3VycmVudGx5IGFzc2lnbmVkIHRvIG91ciBjcnRjLgo+PiA+ICsJICoK Pj4gPiArCSAqIE5vdGUgYWxzbyB0aGF0IHRoaXMgZnVuY3Rpb24gY2Fubm90IGJlIGNhbGxlZCB3 aGlsZSBjcnRjIGlzCj4+ID4gZGlzYWJsZWQKPj4gPiArCSAqIHNpbmNlIHdlIHVzZSBkcm1fY3J0 Y192Ymxhbmtfb24vb2ZmLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5Cj4+ID4gKwkgKiBhYm91 dCB0aGUgYXNzaWduZWQgY3J0Y3MgYmVpbmcgaW5jb25zaXN0ZW50IHdpdGggdGhlIGN1cnJlbnQK Pj4gPiBzdGF0ZQo+PiA+ICsJICogKHdoaWNoIG1lYW5zIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQg bW9kZXNldCBsb2NrcykuCj4+ID4gKwkgKi8KPj4gPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5j LCAmY3J0Yy0+ZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsCj4+ID4gaGVhZCkgewo+PiA+ ICsJCXRyYWNlX2RwdV9jcnRjX3ZibGFua19lbmFibGUoRFJNSUQoY3J0YyksIERSTUlEKGVuYyks IGVuLAo+PiA+ICsJCQkJCSAgICAgZHB1X2NydGMpOwo+PiA+ICsKPj4gPiArCQlkcHVfZW5jb2Rl cl90b2dnbGVfdmJsYW5rX2Zvcl9jcnRjKGVuYywgY3J0YywgZW4pOwo+PiA+ICsJfQo+PiA+ICsK Pj4gPiArCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+PiA+ICAJZHB1X2NydGMt PnZibGFua19yZXF1ZXN0ZWQgPSBlbjsKPj4gPiAgCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNy dGNfbG9jayk7Cj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXIuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuYwo+PiA+IGluZGV4IGZkNjUxNGY2ODFhZS4uNTkxNGFlNzA1NzJjIDEwMDY0 NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMK Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ ID4gQEAgLTEyNjcsMjIgKzEyNjcsMjkgQEAgdm9pZCBkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0Yyhz dHJ1Y3QKPiBkcm1fZW5jb2Rlcgo+PiA+ICpkcm1fZW5jLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jID0gdG9fZHB1 X2VuY29kZXJfdmlydChkcm1fZW5jKTsKPj4gPiAgCXVuc2lnbmVkIGxvbmcgbG9ja19mbGFnczsK Pj4gPiAtCWJvb2wgZW5hYmxlOwo+PiA+IC0JaW50IGk7Cj4+ID4gLQo+PiA+IC0JZW5hYmxlID0g Y3J0YyA/IHRydWUgOiBmYWxzZTsKPj4gPiAtCj4+ID4gLQlpZiAoIWRybV9lbmMpIHsKPj4gPiAt CQlEUFVfRVJST1IoImludmFsaWQgZW5jb2RlclxuIik7Cj4+ID4gLQkJcmV0dXJuOwo+PiA+IC0J fQo+PiA+IC0JdHJhY2VfZHB1X2VuY192YmxhbmtfY2IoRFJNSUQoZHJtX2VuYyksIGVuYWJsZSk7 Cj4+ID4KPj4gPiAgCXNwaW5fbG9ja19pcnFzYXZlKCZkcHVfZW5jLT5lbmNfc3BpbmxvY2ssIGxv Y2tfZmxhZ3MpOwo+PiA+ICAJLyogY3J0YyBzaG91bGQgYWx3YXlzIGJlIGNsZWFyZWQgYmVmb3Jl IHJlLWFzc2lnbmluZyAqLwo+PiA+ICAJV0FSTl9PTihjcnRjICYmIGRwdV9lbmMtPmNydGMpOwo+ PiA+ICAJZHB1X2VuYy0+Y3J0YyA9IGNydGM7Cj4+ID4gIAlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZkcHVfZW5jLT5lbmNfc3BpbmxvY2ssIGxvY2tfZmxhZ3MpOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ ICt2b2lkIGRwdV9lbmNvZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2NydGMoc3RydWN0IGRybV9lbmNv ZGVyICpkcm1fZW5jLAo+PiA+ICsJCQkJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbAo+PiA+ IGVuYWJsZSkKPj4gPiArewo+PiA+ICsJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmMg PSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwo+PiA+ICsJdW5zaWduZWQgbG9uZyBsb2Nr X2ZsYWdzOwo+PiA+ICsJaW50IGk7Cj4+ID4gKwo+PiA+ICsJdHJhY2VfZHB1X2VuY192Ymxhbmtf Y2IoRFJNSUQoZHJtX2VuYyksIGVuYWJsZSk7Cj4+ID4gKwo+PiA+ICsJc3Bpbl9sb2NrX2lycXNh dmUoJmRwdV9lbmMtPmVuY19zcGlubG9jaywgbG9ja19mbGFncyk7Cj4+ID4gKwlpZiAoZHB1X2Vu Yy0+Y3J0YyA9PSBjcnRjKSB7Cj4+ID4gKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHB1X2Vu Yy0+ZW5jX3NwaW5sb2NrLAo+PiA+IGxvY2tfZmxhZ3MpOwo+PiA+ICsJCXJldHVybjsKPj4gPiAr CX0KPj4gV2h5IGFyZSB5b3UgcmV0dXJuaW5nIHdoZW4gdGhlIGNydGMncyBhcmUgc2FtZT8KPj4g V29uJ3QgdGhleSBiZSBzYW1lIGFsbCB0aGUgdGltZSBiZXR3ZWVuIG1vZGVzZXRzPwo+PiAKPj4g Zm9yIGJvdGggZW5hYmxlL2Rpc2FibGUgY3J0YyB3aWxsIGJlIHRoZSBzYW1lIGFuZCB5b3Ugc3Rp bGwgbmVlZCB0byAKPj4gY2FsbAo+IHRoZQo+PiBmb3IgbG9vcCBiZWxvdyB0byBlbmFibGUvZGlz YWJsZSB0aGUgcGh5cyBlbmNvZGVycy4KPj4gCgpDYW4geW91IGdvIHRocm91Z2ggbXkgY29tbWVu dHMgYWJvdmU/Cgo+PiA+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHB1X2VuYy0+ZW5jX3Nw aW5sb2NrLCBsb2NrX2ZsYWdzKTsKPj4gPgo+PiA+ICAJZm9yIChpID0gMDsgaSA8IGRwdV9lbmMt Pm51bV9waHlzX2VuY3M7IGkrKykgewo+PiA+ICAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpw aHlzID0gZHB1X2VuYy0+cGh5c19lbmNzW2ldOwo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4+ID4gYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4+ID4gaW5kZXggYmUxZDgwODY3ODM0Li42ODk2 ZWEyYWI4NTQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuaAo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyLmgKPj4gPiBAQCAtNjIsNiArNjIsMTYgQEAgdm9pZCBkcHVfZW5jb2Rlcl9nZXRf aHdfcmVzb3VyY2VzKHN0cnVjdAo+IGRybV9lbmNvZGVyCj4+ID4gKmVuY29kZXIsCj4+ID4gIHZv aWQgZHB1X2VuY29kZXJfYXNzaWduX2NydGMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ PiA+ICAJCQkgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4+ID4KPj4gPiArLyoqCj4+ID4g KyAqIGRwdV9lbmNvZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2NydGMgLSBUb2dnbGVzIHZibGFuayBp bnRlcnJ1cHRzIG9uCj4gb3IKPj4gPiBvZmYgaWYKPj4gPiArICoJdGhlIGVuY29kZXIgaXMgYXNz aWduZWQgdG8gdGhlIGdpdmVuIGNydGMKPj4gPiArICogQGVuY29kZXI6CWVuY29kZXIgcG9pbnRl cgo+PiA+ICsgKiBAY3J0YzoJY3J0YyBwb2ludGVyCj4+ID4gKyAqIEBlbmFibGU6CXRydWUgaWYg dmJsYW5rIHNob3VsZCBiZSBlbmFibGVkCj4+ID4gKyAqLwo+PiA+ICt2b2lkIGRwdV9lbmNvZGVy X3RvZ2dsZV92YmxhbmtfZm9yX2NydGMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+PiA+ ICsJCQkJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbAo+PiA+IGVuYWJsZSk7Cj4+ID4gKwo+ PiA+ICAvKioKPj4gPiAgICogZHB1X2VuY29kZXJfcmVnaXN0ZXJfZnJhbWVfZXZlbnRfY2FsbGJh Y2sgLSBwcm92aWRlIGNhbGxiYWNrIHRvCj4+ID4gZW5jb2RlciB0aGF0Cj4+ID4gICAqCXdpbGwg YmUgY2FsbGVkIGFmdGVyIHRoZSByZXF1ZXN0IGlzIGNvbXBsZXRlLCBvciBvdGhlciBldmVudHMu Cj4+IAo+PiAtLQo+PiBKZXlrdW1hciBTCgotLSAKSmV5a3VtYXIgUwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZy ZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K