From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 6/8] drm/msm: dpu: Separate crtc assignment from vblank enable Date: Wed, 14 Nov 2018 10:16:15 -0500 Message-ID: <20181114151615.GO154160@art_vandelay> References: <20181113205257.170707-1-sean@poorly.run> <20181113205257.170707-6-sean@poorly.run> 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: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: Sean Paul , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVHVlLCBOb3YgMTMsIDIwMTggYXQgMDQ6NDg6MTJQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0xMS0xMyAxMjo1MiwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gRnJv bTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiAKPiA+IEluc3RlYWQgb2Yg YXNzaWduaW5nL2NsZWFyaW5nIHRoZSBjcnRjIG9uIHZibGFuayBlbmFibGUvZGlzYWJsZSwgd2Ug Y2FuCj4gPiBqdXN0IGFzc2lnbiBhbmQgY2xlYXIgdGhlIGNydGMgb24gbW9kZXNldC4gVGhhdCBh bGxvd3MgdXMgdG8ganVzdCB0b2dnbGUKPiA+IHRoZSBlbmNvZGVyJ3MgdmJsYW5rIGludGVycnVw dHMgb24gdmJsYW5rX2VuYWJsZS4KPiA+IAo+ID4gU28gd2h5IGlzIHRoaXMgaW1wb3J0YW50PyBQ cmV2aW91c2x5IHRoZSBkcml2ZXIgd2FzIHVzaW5nIHRoZSBsZWdhY3kKPiA+IHBvaW50ZXJzIHRv IGFzc2lnbi9jbGVhciB0aGUgY3J0Yy4gTGVnYWN5IHBvaW50ZXJzIGFyZSBjbGVhcmVkIF9hZnRl cl8KPiBXaGljaCBwb2ludGVycyBhcmUgeW91IHJlZmVycmluZyBoZXJlIGFzIGxlZ2FjeSBwb2lu dGVycz8gQ1JUQz8KCmVuY29kZXItPmNydGMgaW4gdGhpcyBjYXNlLiBUaGUgbG9vcCBpbiB2Ymxh bmtfZW5hYmxlX25vX2xvY2sgcmVsaWVzIG9uCmVuYy0+Y3J0YyA9PSBjcnRjCgo+ID4gZGlzYWJs aW5nIHRoZSBoYXJkd2FyZSwgc28gdGhlIGxlZ2FjeSBwb2ludGVyIHdhcyB2YWxpZCBkdXJpbmcK PiA+IHZibGFua19kaXNhYmxlLCBidXQgdGhhdCdzIG5vdCBzb21ldGhpbmcgd2Ugc2hvdWxkIHJl bHkgb24uCj4gPiAKPiA+IEluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgY29yZSBvcmRlcmluZyB0 aGUgbGVnYWN5IHBvaW50ZXIgYXNzaWdubWVudHMKPiA+IGp1c3Qgc28sIHdlJ2xsIGFzc2lnbiB0 aGUgY3J0YyBpbiBkcHVfY3J0YyBlbmFibGUvZGlzYWJsZS4gVGhpcyBpcyB0aGUKPiA+IG9ubHkg cGxhY2UgdGhhdCBtYXBwaW5nIGNhbiBjaGFuZ2UsIHNvIHdlJ3JlIGNvdmVyZWQgdGhlcmUuCj4g PiAKPiA+IFdlJ3JlIGFsc28gdGFraW5nIGFkdmFudGFnZSBvZiBkcm1fY3J0Y192Ymxhbmtfb24v b2ZmLiBCeSB1c2luZyB0aGlzLCB3ZQo+ID4gZW5zdXJlIHRoYXQgdmJsYW5rX2VuYWJsZS9kaXNh YmxlIGNhbiBuZXZlciBiZSBjYWxsZWQgd2hpbGUgdGhlIGNydGMgaXMKPiA+IG9mZiAod2hpY2gg bWVhbnMgdGhlIGFzc2lnbmVkIGNydGMgd2lsbCBhbHdheXMgYmUgdmFsaWQpLiBBcyBzdWNoLCB3 ZQo+IAo+IFdoYXQgYWJvdXQgdGhlIGRybV92YmxhbmtfZW5hYmxlL2Rpc2FibGUgdHJpZ2dlcmVk IGJ5IGRybV92YmxhbmtfZ2V0IHdoZW4KPiBjcnRjCj4gaXMgZGlzYWJsZWQ/IFdoYXQgaXMgdGhl IGV4cGVjdGVkIGJlaGF2aW9yIHRoZXJlPyB0aGUgdmJsYW5rX3JlcXVlc3RlZAo+IHZhcmlhYmxl IHJlbW92ZWQgYnkgdGhlIG5leHQgcGF0Y2ggd2FzIGludHJvZHVjZWQgdG8gY2FjaGUgdGhlIHJl cXVlc3QuCgpUaGF0IGNhc2UgaXMgY292ZXJlZCBieSB0aGUgbW9kZXNldCBsb2NrcyBoZWxkIHdo ZW4gY2FsbGluZyBkaXNhYmxlKCkuIAoKPiAKPiA+IGRvbid0IG5lZWQgdG8gdXNlIG1vZGVzZXQg bG9ja3Mgb3IgdGhlIGNydGNfbG9jayBpbiB0aGUKPiA+IHZibGFua19lbmFibGUvZGlzYWJsZSBy b3V0aW5lIHRvIGJlIHN1cmUgc3RhdGUgaXMgY29uc2lzdGVudC4KPiA+IAo+ID4gLi4uSSB0aGlu ay4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5v cmc+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j ICAgIHwgNzcgKysrKysrKysrLS0tLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2VuY29kZXIuYyB8IDI3ICsrKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCB8IDEwICsrKwo+ID4gIDMgZmlsZXMgY2hhbmdl ZCwgNTkgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiA+IGluZGV4IDRiN2Y5OGE2YWI2MC4u NTllODIzMjgxZmRmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NydGMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2NydGMuYwo+ID4gQEAgLTc1Nyw0MyArNzU3LDYgQEAgdm9pZCBkcHVfY3J0Y19jb21taXRfa2lj a29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgCURQVV9BVFJBQ0VfRU5EKCJjcnRjX2Nv bW1pdCIpOwo+ID4gIH0KPiA+IAo+ID4gLS8qKgo+ID4gLSAqIF9kcHVfY3J0Y192YmxhbmtfZW5h YmxlX25vX2xvY2sgLSB1cGRhdGUgcG93ZXIgcmVzb3VyY2UgYW5kIHZibGFuawo+ID4gcmVxdWVz dAo+ID4gLSAqIEBkcHVfY3J0YzogUG9pbnRlciB0byBkcHUgY3J0YyBzdHJ1Y3R1cmUKPiA+IC0g KiBAZW5hYmxlOiBXaGV0aGVyIHRvIGVuYWJsZS9kaXNhYmxlIHZibGFua3MKPiA+IC0gKi8KPiA+ IC1zdGF0aWMgdm9pZCBfZHB1X2NydGNfdmJsYW5rX2VuYWJsZV9ub19sb2NrKAo+ID4gLQkJc3Ry dWN0IGRwdV9jcnRjICpkcHVfY3J0YywgYm9vbCBlbmFibGUpCj4gPiAtewo+ID4gLQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSAmZHB1X2NydGMtPmJhc2U7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jOwo+ID4gLQo+ ID4gLQlpZiAoZW5hYmxlKSB7Cj4gPiAtCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVuYywgJmRldi0+ bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAo+ID4gaGVhZCkgewo+ID4gLQkJCWlmIChlbmMtPmNy dGMgIT0gY3J0YykKPiA+IC0JCQkJY29udGludWU7Cj4gPiAtCj4gPiAtCj4gPiB0cmFjZV9kcHVf Y3J0Y192YmxhbmtfZW5hYmxlKERSTUlEKCZkcHVfY3J0Yy0+YmFzZSksCj4gPiAtCQkJCQkJICAg ICBEUk1JRChlbmMpLCBlbmFibGUsCj4gPiAtCQkJCQkJICAgICBkcHVfY3J0Yyk7Cj4gPiAtCj4g PiAtCQkJZHB1X2VuY29kZXJfYXNzaWduX2NydGMoZW5jLCBjcnRjKTsKPiA+IC0JCX0KPiA+IC0J fSBlbHNlIHsKPiA+IC0JCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jLCAmZGV2LT5tb2RlX2NvbmZp Zy5lbmNvZGVyX2xpc3QsCj4gPiBoZWFkKSB7Cj4gPiAtCQkJaWYgKGVuYy0+Y3J0YyAhPSBjcnRj KQo+ID4gLQkJCQljb250aW51ZTsKPiA+IC0KPiA+IC0KPiA+IHRyYWNlX2RwdV9jcnRjX3ZibGFu a19lbmFibGUoRFJNSUQoJmRwdV9jcnRjLT5iYXNlKSwKPiA+IC0JCQkJCQkgICAgIERSTUlEKGVu YyksIGVuYWJsZSwKPiA+IC0JCQkJCQkgICAgIGRwdV9jcnRjKTsKPiA+IC0KPiA+IC0JCQlkcHVf ZW5jb2Rlcl9hc3NpZ25fY3J0YyhlbmMsIE5VTEwpOwo+ID4gLQkJfQo+ID4gLQl9Cj4gPiAtfQo+ ID4gLQo+ID4gIC8qKgo+ID4gICAqIGRwdV9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSAtIHN0YXRlIGR1 cGxpY2F0ZSBob29rCj4gPiAgICogQGNydGM6IFBvaW50ZXIgdG8gZHJtIGNydGMgc3RydWN0dXJl Cj4gPiBAQCAtODQ3LDYgKzgxMCwxMCBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJLyogRGlzYWJsZS9zYXZlIHZibGFuayBpcnEgaGFu ZGxpbmcgKi8KPiA+ICAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiA+IAo+ID4gKwlkcm1f Zm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwKPiA+ICsJCQkJICBvbGRf Y3J0Y19zdGF0ZS0+ZW5jb2Rlcl9tYXNrKQo+ID4gKwkJZHB1X2VuY29kZXJfYXNzaWduX2NydGMo ZW5jb2RlciwgTlVMTCk7Cj4gPiArCj4gPiAgCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xv Y2spOwo+ID4gCj4gPiAgCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAq Lwo+ID4gQEAgLTg1Niw5ICs4MjMsNiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCQkJYXRvbWljX3JlYWQoJmRwdV9jcnRjLT5mcmFt ZV9wZW5kaW5nKSk7Cj4gPiAKPiA+ICAJdHJhY2VfZHB1X2NydGNfZGlzYWJsZShEUk1JRChjcnRj KSwgZmFsc2UsIGRwdV9jcnRjKTsKPiA+IC0JaWYgKGRwdV9jcnRjLT5lbmFibGVkICYmIGRwdV9j cnRjLT52YmxhbmtfcmVxdWVzdGVkKSB7Cj4gPiAtCQlfZHB1X2NydGNfdmJsYW5rX2VuYWJsZV9u b19sb2NrKGRwdV9jcnRjLCBmYWxzZSk7Cj4gPiAtCX0KPiA+ICAJZHB1X2NydGMtPmVuYWJsZWQg PSBmYWxzZTsKPiA+IAo+ID4gIAlpZiAoYXRvbWljX3JlYWQoJmRwdV9jcnRjLT5mcmFtZV9wZW5k aW5nKSkgewo+ID4gQEAgLTkyMiwxMyArODg2LDEzIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAKPiA+ICAJbXV0ZXhfbG9jaygmZHB1X2Ny dGMtPmNydGNfbG9jayk7Cj4gPiAgCXRyYWNlX2RwdV9jcnRjX2VuYWJsZShEUk1JRChjcnRjKSwg dHJ1ZSwgZHB1X2NydGMpOwo+ID4gLQlpZiAoIWRwdV9jcnRjLT5lbmFibGVkICYmIGRwdV9jcnRj LT52YmxhbmtfcmVxdWVzdGVkKSB7Cj4gPiAtCQlfZHB1X2NydGNfdmJsYW5rX2VuYWJsZV9ub19s b2NrKGRwdV9jcnRjLCB0cnVlKTsKPiA+IC0JfQo+ID4gIAlkcHVfY3J0Yy0+ZW5hYmxlZCA9IHRy dWU7Cj4gPiAKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKPiA+IAo+ ID4gKwlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwKPiA+IGNy dGMtPnN0YXRlLT5lbmNvZGVyX21hc2spCj4gPiArCQlkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0Yyhl bmNvZGVyLCBjcnRjKTsKPiA+ICsKPiA+ICAJLyogRW5hYmxlL3Jlc3RvcmUgdmJsYW5rIGlycSBo YW5kbGluZyAqLwo+ID4gIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gPiAgfQo+ID4gQEAg LTExNzMsMTAgKzExMzcsMzMgQEAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9jcnRjCj4gPiAqY3J0YywKPiA+ICBpbnQgZHB1X2NydGNfdmJsYW5rKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywgYm9vbCBlbikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1 X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKPiA+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmM7 Cj4gPiAKPiA+IC0JbXV0ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gPiAgCXRyYWNl X2RwdV9jcnRjX3ZibGFuayhEUk1JRCgmZHB1X2NydGMtPmJhc2UpLCBlbiwgZHB1X2NydGMpOwo+ ID4gLQlfZHB1X2NydGNfdmJsYW5rX2VuYWJsZV9ub19sb2NrKGRwdV9jcnRjLCBlbik7Cj4gPiAr Cj4gPiArCS8qCj4gPiArCSAqIE5vcm1hbGx5IHdlIHdvdWxkIGl0ZXJhdGUgdGhyb3VnaCBlbmNv ZGVyX21hc2sgaW4gY3J0YyBzdGF0ZSB0bwo+ID4gZmluZAo+ID4gKwkgKiBhdHRhY2hlZCBlbmNv ZGVycy4gSW4gdGhpcyBjYXNlLCB3ZSBtaWdodCBiZSBkaXNhYmxpbmcgdmJsYW5rCj4gPiBfYWZ0 ZXJfCj4gPiArCSAqIGVuY29kZXJfbWFzayBoYXMgYmVlbiBjbGVhcmVkLgo+ID4gKwkgKgo+ID4g KwkgKiBJbnN0ZWFkLCB3ZSAiYXNzaWduIiBhIGNydGMgdG8gdGhlIGVuY29kZXIgaW4gZW5hYmxl IGFuZCBjbGVhcgo+ID4gaXQgaW4KPiA+ICsJICogZGlzYWJsZSAod2hpY2ggaXMgYWxzbyBhZnRl ciBlbmNvZGVyX21hc2sgaXMgY2xlYXJlZCkuIFNvCj4gPiBpbnN0ZWFkIG9mCj4gPiArCSAqIHVz aW5nIGVuY29kZXIgbWFzaywgd2UnbGwgYXNrIHRoZSBlbmNvZGVyIHRvIHRvZ2dsZSBpdHNlbGYg aWZmCj4gPiBpdCdzCj4gPiArCSAqIGN1cnJlbnRseSBhc3NpZ25lZCB0byBvdXIgY3J0Yy4KPiA+ ICsJICoKPiA+ICsJICogTm90ZSBhbHNvIHRoYXQgdGhpcyBmdW5jdGlvbiBjYW5ub3QgYmUgY2Fs bGVkIHdoaWxlIGNydGMgaXMKPiA+IGRpc2FibGVkCj4gPiArCSAqIHNpbmNlIHdlIHVzZSBkcm1f Y3J0Y192Ymxhbmtfb24vb2ZmLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5Cj4gPiArCSAqIGFi b3V0IHRoZSBhc3NpZ25lZCBjcnRjcyBiZWluZyBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgY3VycmVu dAo+ID4gc3RhdGUKPiA+ICsJICogKHdoaWNoIG1lYW5zIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQg bW9kZXNldCBsb2NrcykuCj4gPiArCSAqLwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVuYywg JmNydGMtPmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAo+ID4gaGVhZCkgewo+ID4gKwkJ dHJhY2VfZHB1X2NydGNfdmJsYW5rX2VuYWJsZShEUk1JRChjcnRjKSwgRFJNSUQoZW5jKSwgZW4s Cj4gPiArCQkJCQkgICAgIGRwdV9jcnRjKTsKPiA+ICsKPiA+ICsJCWRwdV9lbmNvZGVyX3RvZ2ds ZV92YmxhbmtfZm9yX2NydGMoZW5jLCBjcnRjLCBlbik7Cj4gPiArCX0KPiA+ICsKPiA+ICsJbXV0 ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gPiAgCWRwdV9jcnRjLT52YmxhbmtfcmVx dWVzdGVkID0gZW47Cj4gPiAgCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4g PiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5j b2Rlci5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMK PiA+IGluZGV4IGZkNjUxNGY2ODFhZS4uNTkxNGFlNzA1NzJjIDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4gQEAgLTEyNjcsMjIgKzEy NjcsMjkgQEAgdm9pZCBkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0YyhzdHJ1Y3QgZHJtX2VuY29kZXIK PiA+ICpkcm1fZW5jLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgewo+ID4gIAlzdHJ1Y3Qg ZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYyA9IHRvX2RwdV9lbmNvZGVyX3ZpcnQoZHJtX2VuYyk7 Cj4gPiAgCXVuc2lnbmVkIGxvbmcgbG9ja19mbGFnczsKPiA+IC0JYm9vbCBlbmFibGU7Cj4gPiAt CWludCBpOwo+ID4gLQo+ID4gLQllbmFibGUgPSBjcnRjID8gdHJ1ZSA6IGZhbHNlOwo+ID4gLQo+ ID4gLQlpZiAoIWRybV9lbmMpIHsKPiA+IC0JCURQVV9FUlJPUigiaW52YWxpZCBlbmNvZGVyXG4i KTsKPiA+IC0JCXJldHVybjsKPiA+IC0JfQo+ID4gLQl0cmFjZV9kcHVfZW5jX3ZibGFua19jYihE Uk1JRChkcm1fZW5jKSwgZW5hYmxlKTsKPiA+IAo+ID4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmZHB1 X2VuYy0+ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsKPiA+ICAJLyogY3J0YyBzaG91bGQgYWx3 YXlzIGJlIGNsZWFyZWQgYmVmb3JlIHJlLWFzc2lnbmluZyAqLwo+ID4gIAlXQVJOX09OKGNydGMg JiYgZHB1X2VuYy0+Y3J0Yyk7Cj4gPiAgCWRwdV9lbmMtPmNydGMgPSBjcnRjOwo+ID4gIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkcHVfZW5jLT5lbmNfc3BpbmxvY2ssIGxvY2tfZmxhZ3MpOwo+ ID4gK30KPiA+ICsKPiA+ICt2b2lkIGRwdV9lbmNvZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2NydGMo c3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ID4gKwkJCQkJc3RydWN0IGRybV9jcnRjICpj cnRjLCBib29sCj4gPiBlbmFibGUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHB1X2VuY29kZXJfdmly dCAqZHB1X2VuYyA9IHRvX2RwdV9lbmNvZGVyX3ZpcnQoZHJtX2VuYyk7Cj4gPiArCXVuc2lnbmVk IGxvbmcgbG9ja19mbGFnczsKPiA+ICsJaW50IGk7Cj4gPiArCj4gPiArCXRyYWNlX2RwdV9lbmNf dmJsYW5rX2NiKERSTUlEKGRybV9lbmMpLCBlbmFibGUpOwo+ID4gKwo+ID4gKwlzcGluX2xvY2tf aXJxc2F2ZSgmZHB1X2VuYy0+ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsKPiA+ICsJaWYgKGRw dV9lbmMtPmNydGMgPT0gY3J0Yykgewo+ID4gKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHB1 X2VuYy0+ZW5jX3NwaW5sb2NrLAo+ID4gbG9ja19mbGFncyk7Cj4gPiArCQlyZXR1cm47Cj4gPiAr CX0KPiBXaHkgYXJlIHlvdSByZXR1cm5pbmcgd2hlbiB0aGUgY3J0YydzIGFyZSBzYW1lPwo+IFdv bid0IHRoZXkgYmUgc2FtZSBhbGwgdGhlIHRpbWUgYmV0d2VlbiBtb2Rlc2V0cz8KPiAKPiBmb3Ig Ym90aCBlbmFibGUvZGlzYWJsZSBjcnRjIHdpbGwgYmUgdGhlIHNhbWUgYW5kIHlvdSBzdGlsbCBu ZWVkIHRvIGNhbGwgdGhlCj4gZm9yIGxvb3AgYmVsb3cgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIHBo eXMgZW5jb2RlcnMuCj4gCj4gPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRwdV9lbmMtPmVu Y19zcGlubG9jaywgbG9ja19mbGFncyk7Cj4gPiAKPiA+ICAJZm9yIChpID0gMDsgaSA8IGRwdV9l bmMtPm51bV9waHlzX2VuY3M7IGkrKykgewo+ID4gIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMg KnBoeXMgPSBkcHVfZW5jLT5waHlzX2VuY3NbaV07Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4gPiBpbmRleCBiZTFkODA4Njc4MzQuLjY4OTZl YTJhYjg1NCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyLmgKPiA+IEBAIC02Miw2ICs2MiwxNiBAQCB2b2lkIGRwdV9lbmNvZGVyX2dldF9od19y ZXNvdXJjZXMoc3RydWN0IGRybV9lbmNvZGVyCj4gPiAqZW5jb2RlciwKPiA+ICB2b2lkIGRwdV9l bmNvZGVyX2Fzc2lnbl9jcnRjKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkg ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gPiAKPiA+ICsvKioKPiA+ICsgKiBkcHVfZW5j b2Rlcl90b2dnbGVfdmJsYW5rX2Zvcl9jcnRjIC0gVG9nZ2xlcyB2YmxhbmsgaW50ZXJydXB0cyBv biBvcgo+ID4gb2ZmIGlmCj4gPiArICoJdGhlIGVuY29kZXIgaXMgYXNzaWduZWQgdG8gdGhlIGdp dmVuIGNydGMKPiA+ICsgKiBAZW5jb2RlcjoJZW5jb2RlciBwb2ludGVyCj4gPiArICogQGNydGM6 CWNydGMgcG9pbnRlcgo+ID4gKyAqIEBlbmFibGU6CXRydWUgaWYgdmJsYW5rIHNob3VsZCBiZSBl bmFibGVkCj4gPiArICovCj4gPiArdm9pZCBkcHVfZW5jb2Rlcl90b2dnbGVfdmJsYW5rX2Zvcl9j cnRjKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkJCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YywgYm9vbAo+ID4gZW5hYmxlKTsKPiA+ICsKPiA+ICAvKioKPiA+ICAgKiBkcHVfZW5j b2Rlcl9yZWdpc3Rlcl9mcmFtZV9ldmVudF9jYWxsYmFjayAtIHByb3ZpZGUgY2FsbGJhY2sgdG8K PiA+IGVuY29kZXIgdGhhdAo+ID4gICAqCXdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSByZXF1ZXN0 IGlzIGNvbXBsZXRlLCBvciBvdGhlciBldmVudHMuCj4gCj4gLS0gCj4gSmV5a3VtYXIgUwoKLS0g ClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWls aW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=