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: Tue, 13 Nov 2018 16:48:12 -0800 Message-ID: References: <20181113205257.170707-1-sean@poorly.run> <20181113205257.170707-6-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181113205257.170707-6-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org> 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 T24gMjAxOC0xMS0xMyAxMjo1MiwgU2VhbiBQYXVsIHdyb3RlOgo+IEZyb206IFNlYW4gUGF1bCA8 c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IAo+IEluc3RlYWQgb2YgYXNzaWduaW5nL2NsZWFyaW5n IHRoZSBjcnRjIG9uIHZibGFuayBlbmFibGUvZGlzYWJsZSwgd2UgY2FuCj4ganVzdCBhc3NpZ24g YW5kIGNsZWFyIHRoZSBjcnRjIG9uIG1vZGVzZXQuIFRoYXQgYWxsb3dzIHVzIHRvIGp1c3QgCj4g dG9nZ2xlCj4gdGhlIGVuY29kZXIncyB2YmxhbmsgaW50ZXJydXB0cyBvbiB2YmxhbmtfZW5hYmxl Lgo+IAo+IFNvIHdoeSBpcyB0aGlzIGltcG9ydGFudD8gUHJldmlvdXNseSB0aGUgZHJpdmVyIHdh cyB1c2luZyB0aGUgbGVnYWN5Cj4gcG9pbnRlcnMgdG8gYXNzaWduL2NsZWFyIHRoZSBjcnRjLiBM ZWdhY3kgcG9pbnRlcnMgYXJlIGNsZWFyZWQgX2FmdGVyXwpXaGljaCBwb2ludGVycyBhcmUgeW91 IHJlZmVycmluZyBoZXJlIGFzIGxlZ2FjeSBwb2ludGVycz8gQ1JUQz8KPiBkaXNhYmxpbmcgdGhl IGhhcmR3YXJlLCBzbyB0aGUgbGVnYWN5IHBvaW50ZXIgd2FzIHZhbGlkIGR1cmluZwo+IHZibGFu a19kaXNhYmxlLCBidXQgdGhhdCdzIG5vdCBzb21ldGhpbmcgd2Ugc2hvdWxkIHJlbHkgb24uCj4g Cj4gSW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBjb3JlIG9yZGVyaW5nIHRoZSBsZWdhY3kgcG9p bnRlciBhc3NpZ25tZW50cwo+IGp1c3Qgc28sIHdlJ2xsIGFzc2lnbiB0aGUgY3J0YyBpbiBkcHVf Y3J0YyBlbmFibGUvZGlzYWJsZS4gVGhpcyBpcyB0aGUKPiBvbmx5IHBsYWNlIHRoYXQgbWFwcGlu ZyBjYW4gY2hhbmdlLCBzbyB3ZSdyZSBjb3ZlcmVkIHRoZXJlLgo+IAo+IFdlJ3JlIGFsc28gdGFr aW5nIGFkdmFudGFnZSBvZiBkcm1fY3J0Y192Ymxhbmtfb24vb2ZmLiBCeSB1c2luZyB0aGlzLCAK PiB3ZQo+IGVuc3VyZSB0aGF0IHZibGFua19lbmFibGUvZGlzYWJsZSBjYW4gbmV2ZXIgYmUgY2Fs bGVkIHdoaWxlIHRoZSBjcnRjIGlzCj4gb2ZmICh3aGljaCBtZWFucyB0aGUgYXNzaWduZWQgY3J0 YyB3aWxsIGFsd2F5cyBiZSB2YWxpZCkuIEFzIHN1Y2gsIHdlCgpXaGF0IGFib3V0IHRoZSBkcm1f dmJsYW5rX2VuYWJsZS9kaXNhYmxlIHRyaWdnZXJlZCBieSBkcm1fdmJsYW5rX2dldCAKd2hlbiBj cnRjCmlzIGRpc2FibGVkPyBXaGF0IGlzIHRoZSBleHBlY3RlZCBiZWhhdmlvciB0aGVyZT8gdGhl IHZibGFua19yZXF1ZXN0ZWQKdmFyaWFibGUgcmVtb3ZlZCBieSB0aGUgbmV4dCBwYXRjaCB3YXMg aW50cm9kdWNlZCB0byBjYWNoZSB0aGUgcmVxdWVzdC4KCj4gZG9uJ3QgbmVlZCB0byB1c2UgbW9k ZXNldCBsb2NrcyBvciB0aGUgY3J0Y19sb2NrIGluIHRoZQo+IHZibGFua19lbmFibGUvZGlzYWJs ZSByb3V0aW5lIHRvIGJlIHN1cmUgc3RhdGUgaXMgY29uc2lzdGVudC4KPiAKPiAuLi5JIHRoaW5r Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgIHwgNzcg KysrKysrKysrLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyLmMgfCAyNyArKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5oIHwgMTAgKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9u cygrKSwgNTUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmMKPiBpbmRleCA0YjdmOThhNmFiNjAuLjU5ZTgyMzI4MWZkZiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IEBAIC03NTcsNDMgKzc1Nyw2 IEBAIHZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjIAo+ICpjcnRj KQo+ICAJRFBVX0FUUkFDRV9FTkQoImNydGNfY29tbWl0Iik7Cj4gIH0KPiAKPiAtLyoqCj4gLSAq IF9kcHVfY3J0Y192YmxhbmtfZW5hYmxlX25vX2xvY2sgLSB1cGRhdGUgcG93ZXIgcmVzb3VyY2Ug YW5kIHZibGFuawo+IHJlcXVlc3QKPiAtICogQGRwdV9jcnRjOiBQb2ludGVyIHRvIGRwdSBjcnRj IHN0cnVjdHVyZQo+IC0gKiBAZW5hYmxlOiBXaGV0aGVyIHRvIGVuYWJsZS9kaXNhYmxlIHZibGFu a3MKPiAtICovCj4gLXN0YXRpYyB2b2lkIF9kcHVfY3J0Y192YmxhbmtfZW5hYmxlX25vX2xvY2so Cj4gLQkJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YywgYm9vbCBlbmFibGUpCj4gLXsKPiAtCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZkcHVfY3J0Yy0+YmFzZTsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYzsKPiAtCj4g LQlpZiAoZW5hYmxlKSB7Cj4gLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmMsICZkZXYtPm1vZGVf Y29uZmlnLmVuY29kZXJfbGlzdCwKPiBoZWFkKSB7Cj4gLQkJCWlmIChlbmMtPmNydGMgIT0gY3J0 YykKPiAtCQkJCWNvbnRpbnVlOwo+IC0KPiAtCj4gdHJhY2VfZHB1X2NydGNfdmJsYW5rX2VuYWJs ZShEUk1JRCgmZHB1X2NydGMtPmJhc2UpLAo+IC0JCQkJCQkgICAgIERSTUlEKGVuYyksIGVuYWJs ZSwKPiAtCQkJCQkJICAgICBkcHVfY3J0Yyk7Cj4gLQo+IC0JCQlkcHVfZW5jb2Rlcl9hc3NpZ25f Y3J0YyhlbmMsIGNydGMpOwo+IC0JCX0KPiAtCX0gZWxzZSB7Cj4gLQkJbGlzdF9mb3JfZWFjaF9l bnRyeShlbmMsICZkZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwKPiBoZWFkKSB7Cj4gLQkJ CWlmIChlbmMtPmNydGMgIT0gY3J0YykKPiAtCQkJCWNvbnRpbnVlOwo+IC0KPiAtCj4gdHJhY2Vf ZHB1X2NydGNfdmJsYW5rX2VuYWJsZShEUk1JRCgmZHB1X2NydGMtPmJhc2UpLAo+IC0JCQkJCQkg ICAgIERSTUlEKGVuYyksIGVuYWJsZSwKPiAtCQkJCQkJICAgICBkcHVfY3J0Yyk7Cj4gLQo+IC0J CQlkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0YyhlbmMsIE5VTEwpOwo+IC0JCX0KPiAtCX0KPiAtfQo+ IC0KPiAgLyoqCj4gICAqIGRwdV9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSAtIHN0YXRlIGR1cGxpY2F0 ZSBob29rCj4gICAqIEBjcnRjOiBQb2ludGVyIHRvIGRybSBjcnRjIHN0cnVjdHVyZQo+IEBAIC04 NDcsNiArODEwLDEwIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9j cnRjIAo+ICpjcnRjLAo+ICAJLyogRGlzYWJsZS9zYXZlIHZibGFuayBpcnEgaGFuZGxpbmcgKi8K PiAgCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7Cj4gCj4gKwlkcm1fZm9yX2VhY2hfZW5jb2Rl cl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwKPiArCQkJCSAgb2xkX2NydGNfc3RhdGUtPmVuY29k ZXJfbWFzaykKPiArCQlkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0YyhlbmNvZGVyLCBOVUxMKTsKPiAr Cj4gIAltdXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKPiAKPiAgCS8qIHdhaXQgZm9y IGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAqLwo+IEBAIC04NTYsOSArODIzLDYgQEAgc3Rh dGljIHZvaWQgZHB1X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQlh dG9taWNfcmVhZCgmZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpKTsKPiAKPiAgCXRyYWNlX2RwdV9j cnRjX2Rpc2FibGUoRFJNSUQoY3J0YyksIGZhbHNlLCBkcHVfY3J0Yyk7Cj4gLQlpZiAoZHB1X2Ny dGMtPmVuYWJsZWQgJiYgZHB1X2NydGMtPnZibGFua19yZXF1ZXN0ZWQpIHsKPiAtCQlfZHB1X2Ny dGNfdmJsYW5rX2VuYWJsZV9ub19sb2NrKGRwdV9jcnRjLCBmYWxzZSk7Cj4gLQl9Cj4gIAlkcHVf Y3J0Yy0+ZW5hYmxlZCA9IGZhbHNlOwo+IAo+ICAJaWYgKGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ ZnJhbWVfcGVuZGluZykpIHsKPiBAQCAtOTIyLDEzICs4ODYsMTMgQEAgc3RhdGljIHZvaWQgZHB1 X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAKPiAqY3J0YywKPiAKPiAgCW11dGV4X2xvY2so JmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+ICAJdHJhY2VfZHB1X2NydGNfZW5hYmxlKERSTUlEKGNy dGMpLCB0cnVlLCBkcHVfY3J0Yyk7Cj4gLQlpZiAoIWRwdV9jcnRjLT5lbmFibGVkICYmIGRwdV9j cnRjLT52YmxhbmtfcmVxdWVzdGVkKSB7Cj4gLQkJX2RwdV9jcnRjX3ZibGFua19lbmFibGVfbm9f bG9jayhkcHVfY3J0YywgdHJ1ZSk7Cj4gLQl9Cj4gIAlkcHVfY3J0Yy0+ZW5hYmxlZCA9IHRydWU7 Cj4gCj4gIAltdXRleF91bmxvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+IAo+ICsJZHJtX2Zv cl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsCj4gY3J0Yy0+c3RhdGUtPmVu Y29kZXJfbWFzaykKPiArCQlkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0YyhlbmNvZGVyLCBjcnRjKTsK PiArCj4gIAkvKiBFbmFibGUvcmVzdG9yZSB2YmxhbmsgaXJxIGhhbmRsaW5nICovCj4gIAlkcm1f Y3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gIH0KPiBAQCAtMTE3MywxMCArMTEzNywzMyBAQCBzdGF0 aWMgaW50IGRwdV9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgCj4gZHJtX2NydGMKPiAqY3J0YywK PiAgaW50IGRwdV9jcnRjX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgZW4pCj4g IHsKPiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKPiAr CXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jOwo+IAo+IC0JbXV0ZXhfbG9jaygmZHB1X2NydGMtPmNy dGNfbG9jayk7Cj4gIAl0cmFjZV9kcHVfY3J0Y192YmxhbmsoRFJNSUQoJmRwdV9jcnRjLT5iYXNl KSwgZW4sIGRwdV9jcnRjKTsKPiAtCV9kcHVfY3J0Y192YmxhbmtfZW5hYmxlX25vX2xvY2soZHB1 X2NydGMsIGVuKTsKPiArCj4gKwkvKgo+ICsJICogTm9ybWFsbHkgd2Ugd291bGQgaXRlcmF0ZSB0 aHJvdWdoIGVuY29kZXJfbWFzayBpbiBjcnRjIHN0YXRlIHRvCj4gZmluZAo+ICsJICogYXR0YWNo ZWQgZW5jb2RlcnMuIEluIHRoaXMgY2FzZSwgd2UgbWlnaHQgYmUgZGlzYWJsaW5nIHZibGFuawo+ IF9hZnRlcl8KPiArCSAqIGVuY29kZXJfbWFzayBoYXMgYmVlbiBjbGVhcmVkLgo+ICsJICoKPiAr CSAqIEluc3RlYWQsIHdlICJhc3NpZ24iIGEgY3J0YyB0byB0aGUgZW5jb2RlciBpbiBlbmFibGUg YW5kIGNsZWFyCj4gaXQgaW4KPiArCSAqIGRpc2FibGUgKHdoaWNoIGlzIGFsc28gYWZ0ZXIgZW5j b2Rlcl9tYXNrIGlzIGNsZWFyZWQpLiBTbwo+IGluc3RlYWQgb2YKPiArCSAqIHVzaW5nIGVuY29k ZXIgbWFzaywgd2UnbGwgYXNrIHRoZSBlbmNvZGVyIHRvIHRvZ2dsZSBpdHNlbGYgaWZmCj4gaXQn cwo+ICsJICogY3VycmVudGx5IGFzc2lnbmVkIHRvIG91ciBjcnRjLgo+ICsJICoKPiArCSAqIE5v dGUgYWxzbyB0aGF0IHRoaXMgZnVuY3Rpb24gY2Fubm90IGJlIGNhbGxlZCB3aGlsZSBjcnRjIGlz Cj4gZGlzYWJsZWQKPiArCSAqIHNpbmNlIHdlIHVzZSBkcm1fY3J0Y192Ymxhbmtfb24vb2ZmLiBT byB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5Cj4gKwkgKiBhYm91dCB0aGUgYXNzaWduZWQgY3J0Y3Mg YmVpbmcgaW5jb25zaXN0ZW50IHdpdGggdGhlIGN1cnJlbnQKPiBzdGF0ZQo+ICsJICogKHdoaWNo IG1lYW5zIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQgbW9kZXNldCBsb2NrcykuCj4gKwkgKi8KPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jLCAmY3J0Yy0+ZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVy X2xpc3QsCj4gaGVhZCkgewo+ICsJCXRyYWNlX2RwdV9jcnRjX3ZibGFua19lbmFibGUoRFJNSUQo Y3J0YyksIERSTUlEKGVuYyksIGVuLAo+ICsJCQkJCSAgICAgZHB1X2NydGMpOwo+ICsKPiArCQlk cHVfZW5jb2Rlcl90b2dnbGVfdmJsYW5rX2Zvcl9jcnRjKGVuYywgY3J0YywgZW4pOwo+ICsJfQo+ ICsKPiArCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+ICAJZHB1X2NydGMtPnZi bGFua19yZXF1ZXN0ZWQgPSBlbjsKPiAgCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9j ayk7Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMK PiBpbmRleCBmZDY1MTRmNjgxYWUuLjU5MTRhZTcwNTcyYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+IEBAIC0xMjY3LDIyICsxMjY3LDI5IEBA IHZvaWQgZHB1X2VuY29kZXJfYXNzaWduX2NydGMoc3RydWN0IGRybV9lbmNvZGVyCj4gKmRybV9l bmMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3Zp cnQgKmRwdV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwo+ICAJdW5zaWduZWQg bG9uZyBsb2NrX2ZsYWdzOwo+IC0JYm9vbCBlbmFibGU7Cj4gLQlpbnQgaTsKPiAtCj4gLQllbmFi bGUgPSBjcnRjID8gdHJ1ZSA6IGZhbHNlOwo+IC0KPiAtCWlmICghZHJtX2VuYykgewo+IC0JCURQ VV9FUlJPUigiaW52YWxpZCBlbmNvZGVyXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQl0cmFj ZV9kcHVfZW5jX3ZibGFua19jYihEUk1JRChkcm1fZW5jKSwgZW5hYmxlKTsKPiAKPiAgCXNwaW5f bG9ja19pcnFzYXZlKCZkcHVfZW5jLT5lbmNfc3BpbmxvY2ssIGxvY2tfZmxhZ3MpOwo+ICAJLyog Y3J0YyBzaG91bGQgYWx3YXlzIGJlIGNsZWFyZWQgYmVmb3JlIHJlLWFzc2lnbmluZyAqLwo+ICAJ V0FSTl9PTihjcnRjICYmIGRwdV9lbmMtPmNydGMpOwo+ICAJZHB1X2VuYy0+Y3J0YyA9IGNydGM7 Cj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcHVfZW5jLT5lbmNfc3BpbmxvY2ssIGxvY2tf ZmxhZ3MpOwo+ICt9Cj4gKwo+ICt2b2lkIGRwdV9lbmNvZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2Ny dGMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ICsJCQkJCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgYm9vbAo+IGVuYWJsZSkKPiArewo+ICsJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRw dV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwo+ICsJdW5zaWduZWQgbG9uZyBs b2NrX2ZsYWdzOwo+ICsJaW50IGk7Cj4gKwo+ICsJdHJhY2VfZHB1X2VuY192YmxhbmtfY2IoRFJN SUQoZHJtX2VuYyksIGVuYWJsZSk7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmRwdV9lbmMt PmVuY19zcGlubG9jaywgbG9ja19mbGFncyk7Cj4gKwlpZiAoZHB1X2VuYy0+Y3J0YyA9PSBjcnRj KSB7Cj4gKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHB1X2VuYy0+ZW5jX3NwaW5sb2NrLAo+ IGxvY2tfZmxhZ3MpOwo+ICsJCXJldHVybjsKPiArCX0KV2h5IGFyZSB5b3UgcmV0dXJuaW5nIHdo ZW4gdGhlIGNydGMncyBhcmUgc2FtZT8KV29uJ3QgdGhleSBiZSBzYW1lIGFsbCB0aGUgdGltZSBi ZXR3ZWVuIG1vZGVzZXRzPwoKZm9yIGJvdGggZW5hYmxlL2Rpc2FibGUgY3J0YyB3aWxsIGJlIHRo ZSBzYW1lIGFuZCB5b3Ugc3RpbGwgbmVlZCB0byBjYWxsIAp0aGUKZm9yIGxvb3AgYmVsb3cgdG8g ZW5hYmxlL2Rpc2FibGUgdGhlIHBoeXMgZW5jb2RlcnMuCgo+ICsJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZHB1X2VuYy0+ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsKPiAKPiAgCWZvciAoaSA9 IDA7IGkgPCBkcHVfZW5jLT5udW1fcGh5c19lbmNzOyBpKyspIHsKPiAgCQlzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5cyA9IGRwdV9lbmMtPnBoeXNfZW5jc1tpXTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+IGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+IGluZGV4IGJlMWQ4MDg2NzgzNC4u Njg5NmVhMmFiODU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlci5oCj4gQEAgLTYyLDYgKzYyLDE2IEBAIHZvaWQgZHB1X2VuY29kZXJfZ2V0X2h3X3Jl c291cmNlcyhzdHJ1Y3QgZHJtX2VuY29kZXIKPiAqZW5jb2RlciwKPiAgdm9pZCBkcHVfZW5jb2Rl cl9hc3NpZ25fY3J0YyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgc3Ry dWN0IGRybV9jcnRjICpjcnRjKTsKPiAKPiArLyoqCj4gKyAqIGRwdV9lbmNvZGVyX3RvZ2dsZV92 YmxhbmtfZm9yX2NydGMgLSBUb2dnbGVzIHZibGFuayBpbnRlcnJ1cHRzIG9uIAo+IG9yCj4gb2Zm IGlmCj4gKyAqCXRoZSBlbmNvZGVyIGlzIGFzc2lnbmVkIHRvIHRoZSBnaXZlbiBjcnRjCj4gKyAq IEBlbmNvZGVyOgllbmNvZGVyIHBvaW50ZXIKPiArICogQGNydGM6CWNydGMgcG9pbnRlcgo+ICsg KiBAZW5hYmxlOgl0cnVlIGlmIHZibGFuayBzaG91bGQgYmUgZW5hYmxlZAo+ICsgKi8KPiArdm9p ZCBkcHVfZW5jb2Rlcl90b2dnbGVfdmJsYW5rX2Zvcl9jcnRjKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciwKPiArCQkJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wKPiBlbmFibGUpOwo+ ICsKPiAgLyoqCj4gICAqIGRwdV9lbmNvZGVyX3JlZ2lzdGVyX2ZyYW1lX2V2ZW50X2NhbGxiYWNr IC0gcHJvdmlkZSBjYWxsYmFjayB0bwo+IGVuY29kZXIgdGhhdAo+ICAgKgl3aWxsIGJlIGNhbGxl ZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBjb21wbGV0ZSwgb3Igb3RoZXIgZXZlbnRzLgoKLS0gCkpl eWt1bWFyIFMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K RnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==