From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [DPU PATCH 01/11] drm/msm: Skip seamless disables in crtc/encoder Date: Tue, 13 Mar 2018 11:10:11 -0700 Message-ID: <5ae81379de177b72060494051b061038@codeaurora.org> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-2-seanpaul@chromium.org> <20180312201459.GZ223881@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180312201459.GZ223881@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: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wMy0xMiAxMzoxNCwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIEZyaSwgTWFyIDAyLCAy MDE4IGF0IDA0OjA0OjI0UE0gLTA4MDAsIGpzYW5rYUBjb2RlYXVyb3JhLm9yZyB3cm90ZToKPj4g T24gMjAxOC0wMi0yOCAxMToxOCwgU2VhbiBQYXVsIHdyb3RlOgo+PiA+IEluc3RlYWQgb2YgZHVw bGljYXRpbmcgd2hvbGUgc3dhdGhzIG9mIGF0b21pYyBoZWxwZXIgZnVuY3Rpb25zICh3aGljaAo+ PiA+IGFyZSBhbHJlYWR5IG91dC1vZi1kYXRlKSwganVzdCBza2lwIHRoZSBlbmNvZGVyL2NydGMg ZGlzYWJsZXMgaW4gdGhlCj4+ID4gLmRpc2FibGUgaG9va3MuCj4+ID4KPj4gPiBDaGFuZ2UtSWQ6 IEk3YmQ5MTgzYWU2MDYyNDIwNGZiMWRlOTU1MDY1NmI3NzZlZmM3MjAyCj4+ID4gU2lnbmVkLW9m Zi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpSZXZpZXdlZC1ieTogSmV5 a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KCj4+IAo+PiBDYW4geW91IGNv bnNpZGVyIGdldHRpbmcgcmlkIG9mIHRoZXNlIGNoZWNrcz8KPiAKPiBEbyB5b3UgbWVhbiB0aGUg Q2hhbmdlLUlkPyBZZWFoLCBJIGZvcmdvdCB0byBzdHJpcCB0aGVtIG91dCBiZWZvcmUKPiBzZW5k aW5nLCBJJ2xsCj4gbWFrZSBzdXJlIEkgY2xlYW4gaXQgdXAgYmVmb3JlIEkgYXBwbHkuCj4gCkFj dHVhbGx5LCBJIG1lYW50IHJlbW92aW5nIHRoZSBzZWFtbGVzcyBjaGVjayBmbGFncyB0aGF0IHlv dSBhcmUgbW92aW5nIAp0bwplbmNvZGUvY3J0Yy4gQnV0IHlvdSBjYW4gaWdub3JlIHRoYXQsIEkg YW0gcGxhbm5pbmcgdG8gc3VibWl0IGEgc2VwZXJhdGUKY2hhbmdlIHRvIHJlbW92ZSB0aGUgc3Vw cG9ydCBmcm9tIHRoZSB3aG9sZSBwaXBlbGluZS4KPj4gCj4+ID4gLS0tCj4+ID4gIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgfCAgIDggKwo+PiA+ICBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIHwgICA4ICsKPj4gPiAgZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgICAgICAgICAgICB8IDE4NQo+ICstLS0tLS0tLS0t LS0tLS0tLS0tCj4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTg0IGRl bGV0aW9ucygtKQo+PiA+Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9jcnRjLmMKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmMKPj4gPiBpbmRleCAzY2RmMWUzZDlkOTYuLmEzYWI2ZWQyYmYxZCAxMDA2NDQKPj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+PiA+IEBAIC0zMzkz LDYgKzMzOTMsNyBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0 Ywo+PiA+ICpjcnRjKQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwo+ PiA+ICAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpjc3RhdGU7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZTsKPj4gPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPj4g PiAgCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4+ID4gIAl1bnNpZ25lZCBsb25nIGZs YWdzOwo+PiA+IEBAIC0zNDA3LDggKzM0MDgsMTUgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZGlz YWJsZShzdHJ1Y3QgZHJtX2NydGMKPj4gPiAqY3J0YykKPj4gPiAgCX0KPj4gPiAgCWRwdV9jcnRj ID0gdG9fZHB1X2NydGMoY3J0Yyk7Cj4+ID4gIAljc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShj cnRjLT5zdGF0ZSk7Cj4+ID4gKwltb2RlID0gJmNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ PiA+ICAJcHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Cj4+ID4KPj4gPiArCWlmIChtc21f aXNfbW9kZV9zZWFtbGVzcyhtb2RlKSB8fCBtc21faXNfbW9kZV9zZWFtbGVzc192cnIobW9kZSkK Pj4gPiB8fAo+PiA+ICsJICAgIG1zbV9pc19tb2RlX3NlYW1sZXNzX2Rtcyhtb2RlKSkgewo+PiA+ ICsJCURQVV9ERUJVRygiU2VhbWxlc3MgbW9kZSBpcyBiZWluZyBhcHBsaWVkLCBza2lwCj4+ID4g ZGlzYWJsZVxuIik7Cj4+ID4gKwkJcmV0dXJuOwo+PiA+ICsJfQo+PiA+ICsKPj4gQW5vdGhlciB0 b3BpYyBvZiBkaXNjdXNzaW9uIHdoaWNoIHNob3VsZCBiZSBicm91Z2h0IHVwIHdpdGggZHJpLWRl dmVsLgo+PiAKPj4gTWF5IG5vdCBiZSBjb21tb24gaW4gUEMgd29ybGQsIGJ1dCB0aGVyZSBhcmUg YSBoYW5kZnVsIG9mIG1vYmlsZSBPRU0ncwo+PiB1c2luZyBwYW5lbHMgd2hpY2ggc3VwcG9ydHMg bW9yZSB0aGFuIG9uZSByZXNvbHV0aW9uLiBQcmltYXJ5IHVzZSAKPj4gY2FzZXMKPj4gaW52b2x2 ZSAic2VhbWxlc3MiIHN3aXRjaGluZyB0byBvcHRpbWl6ZWQgZGlzcGxheSByZXNvbHV0aW9uIHdo ZW4KPj4gc3RyZWFtaW5nIGNvbnRlbnQgY2hhbmdlcyByZXNvbHV0aW9ucyBvciByZW5kZXJpbmcg bG9zc2xlc3MgZGF0YS4KPiAKPiBZZWFoLCBJIHRoaW5rIHdlIGNhbiBkbyB0aGlzIHVuZGVyIHRo ZSBjb3ZlcnMgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIAo+IGl0Cj4gc3VjaAo+IGFzIHRoaXMg cGF0Y2guIFdlIGNvdWxkIHByb2JhYmx5IGRvIGEgYmV0dGVyIGpvYiBvZiBtYWtpbmcgdGhpcyB1 c2VmdWwgCj4gZm9yCj4gb3RoZXIKPiBkcml2ZXJzLCBidXQgSSB3YXMgcmVhbGx5IGp1c3QgdHJ5 aW5nIHRvIGdldCB0aGUgc2VhbWxlc3Mgc3R1ZmYgb3V0IG9mIAo+IHRoZQo+IHdheQo+IHNvIHdl IGRvbid0IG5lZWQgdG8gcm9sbCBvdXIgb3duIGF0b21pYyBjb21taXQuCj4gCj4gU2Vhbgo+IAo+ PiAKPj4gSmV5a3VtYXIgUy4KPj4gCj4+ID4gIAlEUFVfREVCVUcoImNydGMlZFxuIiwgY3J0Yy0+ YmFzZS5pZCk7Cj4+ID4KPj4gPiAgCWlmIChkcHVfa21zX2lzX3N1c3BlbmRfc3RhdGUoY3J0Yy0+ ZGV2KSkKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2VuY29kZXIuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXIuYwo+PiA+IGluZGV4IDNkMTY4ZmEwOWYzZi4uMjhjZWI1ODllZTQwIDEwMDY0NAo+PiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ID4gQEAgLTIx ODMsNiArMjE4Myw3IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3ZpcnRfZGlzYWJsZShzdHJ1 Y3QKPj4gPiBkcm1fZW5jb2RlciAqZHJtX2VuYykKPj4gPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl92 aXJ0ICpkcHVfZW5jID0gTlVMTDsKPj4gPiAgCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7 Cj4+ID4gIAlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttczsKPj4gPiArCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwo+PiA+ICAJaW50IGkgPSAwOwo+PiA+Cj4+ID4gIAlpZiAoIWRybV9lbmMp IHsKPj4gPiBAQCAtMjE5Niw2ICsyMTk3LDEzIEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3Zp cnRfZGlzYWJsZShzdHJ1Y3QKPj4gPiBkcm1fZW5jb2RlciAqZHJtX2VuYykKPj4gPiAgCQlyZXR1 cm47Cj4+ID4gIAl9Cj4+ID4KPj4gPiArCW1vZGUgPSAmZHJtX2VuYy0+Y3J0Yy0+c3RhdGUtPmFk anVzdGVkX21vZGU7Cj4+ID4gKwlpZiAobXNtX2lzX21vZGVfc2VhbWxlc3MobW9kZSkgfHwgbXNt X2lzX21vZGVfc2VhbWxlc3NfdnJyKG1vZGUpCj4+ID4gfHwKPj4gPiArCSAgICBtc21faXNfbW9k ZV9zZWFtbGVzc19kbXMobW9kZSkpIHsKPj4gPiArCQlEUFVfREVCVUcoIlNlYW1sZXNzIG1vZGUg aXMgYmVpbmcgYXBwbGllZCwgc2tpcAo+PiA+IGRpc2FibGVcbiIpOwo+PiA+ICsJCXJldHVybjsK Pj4gPiArCX0KPj4gPiArCj4+ID4gIAlkcHVfZW5jID0gdG9fZHB1X2VuY29kZXJfdmlydChkcm1f ZW5jKTsKPj4gPiAgCURQVV9ERUJVR19FTkMoZHB1X2VuYywgIlxuIik7Cj4+ID4KPj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4+ID4gaW5kZXggNDY1MzZlZGI3MmVlLi41Y2ZiODAz NDUwNTIgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMK Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiA+IEBAIC04NCwx ODkgKzg0LDYgQEAgc3RhdGljIHZvaWQgbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZSgK Pj4gPiAgCX0KPj4gPiAgfQo+PiA+Cj4+ID4gLXN0YXRpYyB2b2lkCj4+ID4gLW1zbV9kaXNhYmxl X291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUK Pj4gPiAqb2xkX3N0YXRlKQo+PiA+IC17Cj4+ID4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yOwo+PiA+IC0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRl LCAqbmV3X2Nvbm5fc3RhdGU7Cj4+ID4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+ID4gLQlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7Cj4+ ID4gLQlpbnQgaTsKPj4gPiAtCj4+ID4gLQlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0 YXRlKG9sZF9zdGF0ZSwgY29ubmVjdG9yLAo+PiA+IG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9z dGF0ZSwgaSkgewo+PiA+IC0JCWNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3Mg KmZ1bmNzOwo+PiA+IC0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPj4gPiAtCQlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwo+PiA+IC0JCXVuc2lnbmVkIGludCBj cnRjX2lkeDsKPj4gPiAtCj4+ID4gLQkJLyoKPj4gPiAtCQkgKiBTaHV0IGRvd24gZXZlcnl0aGlu ZyB0aGF0J3MgaW4gdGhlIGNoYW5nZXNldCBhbmQKPj4gPiBjdXJyZW50bHkKPj4gPiAtCQkgKiBz dGlsbCBvbi4gU28gbmVlZCB0byBjaGVjayB0aGUgb2xkLCBzYXZlZCBzdGF0ZS4KPj4gPiAtCQkg Ki8KPj4gPiAtCQlpZiAoIW9sZF9jb25uX3N0YXRlLT5jcnRjKQo+PiA+IC0JCQljb250aW51ZTsK Pj4gPiAtCj4+ID4gLQkJY3J0Y19pZHggPSBkcm1fY3J0Y19pbmRleChvbGRfY29ubl9zdGF0ZS0+ Y3J0Yyk7Cj4+ID4gLQkJb2xkX2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfY3J0Y19z dGF0ZShvbGRfc3RhdGUsCj4+ID4gLQo+PiA+IG9sZF9jb25uX3N0YXRlLT5jcnRjKTsKPj4gPiAt Cj4+ID4gLQkJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+YWN0aXZlIHx8Cj4+ID4gLQo+PiA+ICFkcm1f YXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChvbGRfY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUpKQo+ PiA+IC0JCQljb250aW51ZTsKPj4gPiAtCj4+ID4gLQkJZW5jb2RlciA9IG9sZF9jb25uX3N0YXRl LT5iZXN0X2VuY29kZXI7Cj4+ID4gLQo+PiA+IC0JCS8qIFdlIHNob3VsZG4ndCBnZXQgdGhpcyBm YXIgaWYgd2UgZGlkbid0IHByZXZpb3VzbHkgaGF2ZQo+PiA+IC0JCSAqIGFuIGVuY29kZXIuLiBi dXQgV0FSTl9PTigpIHJhdGhlciB0aGFuIGV4cGxvZGUuCj4+ID4gLQkJICovCj4+ID4gLQkJaWYg KFdBUk5fT04oIWVuY29kZXIpKQo+PiA+IC0JCQljb250aW51ZTsKPj4gPiAtCj4+ID4gLQkJaWYg KG1zbV9pc19tb2RlX3NlYW1sZXNzKAo+PiA+IC0JCQkmY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRj LT5zdGF0ZS0+bW9kZSkgfHwKPj4gPiAtCQkJbXNtX2lzX21vZGVfc2VhbWxlc3NfdnJyKAo+PiA+ IC0JCQkmY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpCj4+ ID4gLQkJCWNvbnRpbnVlOwo+PiA+IC0KPj4gPiAtCQlpZiAobXNtX2lzX21vZGVfc2VhbWxlc3Nf ZG1zKAo+PiA+IC0JCQkmY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjLT5zdGF0ZS0+YWRqdXN0ZWRf bW9kZSkpCj4+ID4gLQkJCWNvbnRpbnVlOwo+PiA+IC0KPj4gPiAtCQlmdW5jcyA9IGVuY29kZXIt PmhlbHBlcl9wcml2YXRlOwo+PiA+IC0KPj4gPiAtCQlEUk1fREVCVUdfQVRPTUlDKCJkaXNhYmxp bmcgW0VOQ09ERVI6JWQ6JXNdXG4iLAo+PiA+IC0JCQkJIGVuY29kZXItPmJhc2UuaWQsIGVuY29k ZXItPm5hbWUpOwo+PiA+IC0KPj4gPiAtCQkvKgo+PiA+IC0JCSAqIEVhY2ggZW5jb2RlciBoYXMg YXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZSB3ZSBhbHdheXMKPj4gPiBzdGVhbAo+PiA+IC0J CSAqIGl0IGF3YXkpLCBzbyB3ZSB3b24ndCBjYWxsIGRpc2FibGUgaG9va3MgdHdpY2UuCj4+ID4g LQkJICovCj4+ID4gLQkJZHJtX2JyaWRnZV9kaXNhYmxlKGVuY29kZXItPmJyaWRnZSk7Cj4+ID4g LQo+PiA+IC0JCS8qIFJpZ2h0IGZ1bmN0aW9uIGRlcGVuZHMgdXBvbiB0YXJnZXQgc3RhdGUuICov Cj4+ID4gLQkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjICYmIGZ1bmNzLT5wcmVwYXJlKQo+PiA+ IC0JCQlmdW5jcy0+cHJlcGFyZShlbmNvZGVyKTsKPj4gPiAtCQllbHNlIGlmIChmdW5jcy0+ZGlz YWJsZSkKPj4gPiAtCQkJZnVuY3MtPmRpc2FibGUoZW5jb2Rlcik7Cj4+ID4gLQkJZWxzZQo+PiA+ IC0JCQlmdW5jcy0+ZHBtcyhlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4+ID4gLQo+PiA+ IC0JCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGVuY29kZXItPmJyaWRnZSk7Cj4+ID4gLQl9Cj4+ ID4gLQo+PiA+IC0JZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRj LCBvbGRfY3J0Y19zdGF0ZSwKPj4gPiBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+PiA+IC0JCWNvbnN0 IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgKmZ1bmNzOwo+PiA+IC0KPj4gPiAtCQkvKiBT aHV0IGRvd24gZXZlcnl0aGluZyB0aGF0IG5lZWRzIGEgZnVsbCBtb2Rlc2V0LiAqLwo+PiA+IC0J CWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQo+PiA+ IC0JCQljb250aW51ZTsKPj4gPiAtCj4+ID4gLQkJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+YWN0aXZl KQo+PiA+IC0JCQljb250aW51ZTsKPj4gPiAtCj4+ID4gLQkJaWYgKG1zbV9pc19tb2RlX3NlYW1s ZXNzKCZjcnRjLT5zdGF0ZS0+bW9kZSkgfHwKPj4gPiAtCj4+ID4gbXNtX2lzX21vZGVfc2VhbWxl c3NfdnJyKCZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpCj4+ID4gLQkJCWNvbnRpbnVlOwo+ PiA+IC0KPj4gPiAtCQlpZiAobXNtX2lzX21vZGVfc2VhbWxlc3NfZG1zKCZjcnRjLT5zdGF0ZS0+ YWRqdXN0ZWRfbW9kZSkpCj4+ID4gLQkJCWNvbnRpbnVlOwo+PiA+IC0KPj4gPiAtCQlmdW5jcyA9 IGNydGMtPmhlbHBlcl9wcml2YXRlOwo+PiA+IC0KPj4gPiAtCQlEUk1fREVCVUdfQVRPTUlDKCJk aXNhYmxpbmcgW0NSVEM6JWRdXG4iLAo+PiA+IC0JCQkJIGNydGMtPmJhc2UuaWQpOwo+PiA+IC0K Pj4gPiAtCQkvKiBSaWdodCBmdW5jdGlvbiBkZXBlbmRzIHVwb24gdGFyZ2V0IHN0YXRlLiAqLwo+ PiA+IC0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+ZW5hYmxlICYmIGZ1bmNzLT5wcmVwYXJlKQo+PiA+ IC0JCQlmdW5jcy0+cHJlcGFyZShjcnRjKTsKPj4gPiAtCQllbHNlIGlmIChmdW5jcy0+ZGlzYWJs ZSkKPj4gPiAtCQkJZnVuY3MtPmRpc2FibGUoY3J0Yyk7Cj4+ID4gLQkJZWxzZQo+PiA+IC0JCQlm dW5jcy0+ZHBtcyhjcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4+ID4gLQl9Cj4+ID4gLX0KPj4g PiAtCj4+ID4gLXN0YXRpYyB2b2lkCj4+ID4gLW1zbV9jcnRjX3NldF9tb2RlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlCj4+ID4gKm9sZF9zdGF0ZSkKPj4g PiAtewo+PiA+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+PiA+IC0Jc3RydWN0IGRybV9jcnRj X3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPj4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3I7Cj4+ID4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGU7 Cj4+ID4gLQlpbnQgaTsKPj4gPiAtCj4+ID4gLQlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShv bGRfc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4+ID4gLQkJY29uc3Qgc3RydWN0 IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4+ID4gLQo+PiA+IC0JCWlmICghbmV3X2Ny dGNfc3RhdGUtPm1vZGVfY2hhbmdlZCkKPj4gPiAtCQkJY29udGludWU7Cj4+ID4gLQo+PiA+IC0J CWZ1bmNzID0gY3J0Yy0+aGVscGVyX3ByaXZhdGU7Cj4+ID4gLQo+PiA+IC0JCWlmIChuZXdfY3J0 Y19zdGF0ZS0+ZW5hYmxlICYmIGZ1bmNzLT5tb2RlX3NldF9ub2ZiKSB7Cj4+ID4gLQkJCURSTV9E RUJVR19BVE9NSUMoIm1vZGVzZXQgb24gW0NSVEM6JWRdXG4iLAo+PiA+IC0JCQkJCSBjcnRjLT5i YXNlLmlkKTsKPj4gPiAtCj4+ID4gLQkJCWZ1bmNzLT5tb2RlX3NldF9ub2ZiKGNydGMpOwo+PiA+ IC0JCX0KPj4gPiAtCX0KPj4gPiAtCj4+ID4gLQlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0 YXRlKG9sZF9zdGF0ZSwgY29ubmVjdG9yLAo+PiA+IG5ld19jb25uX3N0YXRlLCBpKSB7Cj4+ID4g LQkJY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4+ID4gLQkJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPj4gPiAtCQlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXI7Cj4+ID4gLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUs ICphZGp1c3RlZF9tb2RlOwo+PiA+IC0KPj4gPiAtCQlpZiAoIW5ld19jb25uX3N0YXRlLT5iZXN0 X2VuY29kZXIpCj4+ID4gLQkJCWNvbnRpbnVlOwo+PiA+IC0KPj4gPiAtCQllbmNvZGVyID0gbmV3 X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKPj4gPiAtCQlmdW5jcyA9IGVuY29kZXItPmhlbHBl cl9wcml2YXRlOwo+PiA+IC0JCW5ld19jcnRjX3N0YXRlID0gbmV3X2Nvbm5fc3RhdGUtPmNydGMt PnN0YXRlOwo+PiA+IC0JCW1vZGUgPSAmbmV3X2NydGNfc3RhdGUtPm1vZGU7Cj4+ID4gLQkJYWRq dXN0ZWRfbW9kZSA9ICZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPj4gPiAtCj4+ID4g LQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkKQo+PiA+IC0JCQljb250aW51ZTsK Pj4gPiAtCj4+ID4gLQkJRFJNX0RFQlVHX0FUT01JQygibW9kZXNldCBvbiBbRU5DT0RFUjolZDol c11cbiIsCj4+ID4gLQkJCQkgZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7Cj4+ID4g LQo+PiA+IC0JCS8qCj4+ID4gLQkJICogRWFjaCBlbmNvZGVyIGhhcyBhdCBtb3N0IG9uZSBjb25u ZWN0b3IgKHNpbmNlIHdlIGFsd2F5cwo+PiA+IHN0ZWFsCj4+ID4gLQkJICogaXQgYXdheSksIHNv IHdlIHdvbid0IGNhbGwgbW9kZV9zZXQgaG9va3MgdHdpY2UuCj4+ID4gLQkJICovCj4+ID4gLQkJ aWYgKGZ1bmNzLT5tb2RlX3NldCkKPj4gPiAtCQkJZnVuY3MtPm1vZGVfc2V0KGVuY29kZXIsIG1v ZGUsIGFkanVzdGVkX21vZGUpOwo+PiA+IC0KPj4gPiAtCQlkcm1fYnJpZGdlX21vZGVfc2V0KGVu Y29kZXItPmJyaWRnZSwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cj4+ID4gLQl9Cj4+ID4gLX0KPj4g PiAtCj4+ID4gLS8qKgo+PiA+IC0gKiBtc21fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9k aXNhYmxlcyAtIG1vZGVzZXQgY29tbWl0IHRvCj4+ID4gZGlzYWJsZQo+PiA+IG91dHB1dHMKPj4g PiAtICogQGRldjogRFJNIGRldmljZQo+PiA+IC0gKiBAb2xkX3N0YXRlOiBhdG9taWMgc3RhdGUg b2JqZWN0IHdpdGggb2xkIHN0YXRlIHN0cnVjdHVyZXMKPj4gPiAtICoKPj4gPiAtICogVGhpcyBm dW5jdGlvbiBzaHV0cyBkb3duIGFsbCB0aGUgb3V0cHV0cyB0aGF0IG5lZWQgdG8gYmUgc2h1dCBk b3duCj4+ID4gYW5kCj4+ID4gLSAqIHByZXBhcmVzIHRoZW0gKGlmIHJlcXVpcmVkKSB3aXRoIHRo ZSBuZXcgbW9kZS4KPj4gPiAtICoKPj4gPiAtICogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdh Y3kgY3J0YyBoZWxwZXJzIHRoaXMgc2hvdWxkIGJlIGNhbGxlZAo+PiA+IGJlZm9yZQo+PiA+IC0g KiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzKCksIHdoaWNoIGlzIHdoYXQgdGhlIGRl ZmF1bHQKPiBjb21taXQKPj4gPiBmdW5jdGlvbgo+PiA+IC0gKiBkb2VzLiBCdXQgZHJpdmVycyB3 aXRoIGRpZmZlcmVudCBuZWVkcyBjYW4gZ3JvdXAgdGhlIG1vZGVzZXQKPiBjb21taXRzCj4+ID4g dG9nZXRoZXIKPj4gPiAtICogYW5kIGRvIHRoZSBwbGFuZSBjb21taXRzIGF0IHRoZSBlbmQuIFRo aXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzCj4+ID4gZG9pbmcKPj4gPiBydW50aW1lCj4+ID4gLSAq IFBNIHNpbmNlIHBsYW5lcyB1cGRhdGVzIHRoZW4gb25seSBoYXBwZW4gd2hlbiB0aGUgQ1JUQyBp cyBhY3R1YWxseQo+PiA+IGVuYWJsZWQuCj4+ID4gLSAqLwo+PiA+IC12b2lkIG1zbV9hdG9taWNf aGVscGVyX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVzKHN0cnVjdCBkcm1fZGV2aWNlCj4gKmRldiwK Pj4gPiAtCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+PiA+IC17Cj4+ID4g LQltc21fZGlzYWJsZV9vdXRwdXRzKGRldiwgb2xkX3N0YXRlKTsKPj4gPiAtCj4+ID4gLQlkcm1f YXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoZGV2LCBvbGRfc3RhdGUp Owo+PiA+IC0KPj4gPiAtCW1zbV9jcnRjX3NldF9tb2RlKGRldiwgb2xkX3N0YXRlKTsKPj4gPiAt fQo+PiA+IC0KPj4gPiAgLyoqCj4+ID4gICAqIG1zbV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rl c2V0X2VuYWJsZXMgLSBtb2Rlc2V0IGNvbW1pdCB0bwo+IGVuYWJsZQo+PiA+IG91dHB1dHMKPj4g PiAgICogQGRldjogRFJNIGRldmljZQo+PiA+IEBAIC00MDYsNyArMjIzLDcgQEAgc3RhdGljIHZv aWQgY29tcGxldGVfY29tbWl0KHN0cnVjdCBtc21fY29tbWl0ICpjKQo+PiA+Cj4+ID4gIAlrbXMt PmZ1bmNzLT5wcmVwYXJlX2NvbW1pdChrbXMsIHN0YXRlKTsKPj4gPgo+PiA+IC0JbXNtX2F0b21p Y19oZWxwZXJfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoZGV2LCBzdGF0ZSk7Cj4+ID4gKwlkcm1f YXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIHN0YXRlKTsKPj4gPgo+ PiA+ICAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlLCAwKTsKCi0t IApKZXlrdW1hciBTCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVu bwo=