From mboxrd@z Thu Jan 1 00:00:00 1970 From: jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [DPU PATCH 06/11] drm/msm: Remove msm_commit/kthread, use atomic helper commit Date: Thu, 01 Mar 2018 12:37:13 -0800 Message-ID: <156ab33c41d436c79cc661e84bebc353@codeaurora.org> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-7-seanpaul@chromium.org> <82098cc2efdbf6b91f1e3009457eaccb@codeaurora.org> <20180301152724.GM223881@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180301152724.GM223881@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: dri-devel@lists.freedesktop.org T24gMjAxOC0wMy0wMSAwNzoyNywgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFdlZCwgRmViIDI4LCAy MDE4IGF0IDA4OjA3OjAwUE0gLTA4MDAsIGpzYW5rYUBjb2RlYXVyb3JhLm9yZyB3cm90ZToKPj4g T24gMjAxOC0wMi0yOCAxMToxOSwgU2VhbiBQYXVsIHdyb3RlOgo+PiA+IE1vdmluZyBmdXJ0aGVy IHRvd2FyZHMgc3dpdGNoaW5nIGZ1bGx5IHRvIHRoZSB0aGUgYXRvbWljIGhlbHBlcnMsIHRoaXMK Pj4gPiBwYXRjaCByZW1vdmVzIHRoZSBoYW5kLXJvbGxlZCBrdGhyZWFkIG5vbmJsb2NrIGNvbW1p dCBjb2RlIGFuZCB1c2VzCj4gdGhlCj4+ID4gYXRvbWljIGhlbHBlcnMgY29tbWl0X3dvcmsgbW9k ZWwuCj4+ID4KPj4gPiBUaGVyZSdzIHN0aWxsIGEgbG90IG9mIGNvcHlwYXN0YSBoZXJlLCBidXQg aXQncyBzdGlsbCBuZWVkZWQgdG8KPj4gPiBmYWNpbGl0YXRlIHRoZSBzd2FwX3N0YXRlIGFuZCBw cmVwYXJlX2ZlbmNlIHByaXZhdGUgZnVuY3Rpb25zLiBUaGVzZQo+PiA+IHdpbGwgYmUgc29ydGVk IG91dCBpbiBhIGZvbGxvdy1vbiBwYXRjaC4KPj4gPgo+PiA+IENoYW5nZS1JZDogSTlmY2JhMjc4 MjRiYTYzZDNmYWI5NmNiMmJjMTk0YmZhNmYzNDc1YjcKPj4gPiBTaWduZWQtb2ZmLWJ5OiBTZWFu IFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPj4gPiAtLS0KPj4gPiAgZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fYXRvbWljLmMgfCAxOTkKPiArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgIHwgICAxIC0KPj4gPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggICAgfCAgIDQgLQo+PiA+ICAzIGZpbGVzIGNo YW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDE2OSBkZWxldGlvbnMoLSkKPj4gPgo+PiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiA+IGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fYXRvbWljLmMKPj4gPiBpbmRleCAzYTE4YmQzZGMyMTUuLjdlNTRlYjY1 ZDA5NiAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+ PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4+ID4gQEAgLTIxLDUx ICsyMSw2IEBACj4+ID4gICNpbmNsdWRlICJtc21fZ2VtLmgiCj4+ID4gICNpbmNsdWRlICJtc21f ZmVuY2UuaCIKPj4gPgo+PiA+IC1zdHJ1Y3QgbXNtX2NvbW1pdCB7Cj4+ID4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2Owo+PiA+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+PiA+ IC0JdWludDMyX3QgY3J0Y19tYXNrOwo+PiA+IC0JYm9vbCBub25ibG9jazsKPj4gPiAtCXN0cnVj dCBrdGhyZWFkX3dvcmsgY29tbWl0X3dvcms7Cj4+ID4gLX07Cj4+ID4gLQo+PiA+IC0vKiBibG9j ayB1bnRpbCBzcGVjaWZpZWQgY3J0Y3MgYXJlIG5vIGxvbmdlciBwZW5kaW5nIHVwZGF0ZSwgYW5k Cj4+ID4gLSAqIGF0b21pY2FsbHkgbWFyayB0aGVtIGFzIHBlbmRpbmcgdXBkYXRlCj4+ID4gLSAq Lwo+PiA+IC1zdGF0aWMgaW50IHN0YXJ0X2F0b21pYyhzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpw cml2LCB1aW50MzJfdAo+PiA+IGNydGNfbWFzaykKPj4gPiAtewo+PiA+IC0JaW50IHJldDsKPj4g PiAtCj4+ID4gLQlzcGluX2xvY2soJnByaXYtPnBlbmRpbmdfY3J0Y3NfZXZlbnQubG9jayk7Cj4+ ID4gLQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfbG9ja2VkKHByaXYtPnBlbmRpbmdf Y3J0Y3NfZXZlbnQsCj4+ID4gLQkJCSEocHJpdi0+cGVuZGluZ19jcnRjcyAmIGNydGNfbWFzaykp Owo+PiA+IC0JaWYgKHJldCA9PSAwKSB7Cj4+ID4gLQkJREJHKCJzdGFydDogJTA4eCIsIGNydGNf bWFzayk7Cj4+ID4gLQkJcHJpdi0+cGVuZGluZ19jcnRjcyB8PSBjcnRjX21hc2s7Cj4+ID4gLQl9 Cj4+ID4gLQlzcGluX3VubG9jaygmcHJpdi0+cGVuZGluZ19jcnRjc19ldmVudC5sb2NrKTsKPj4g PiAtCj4+ID4gLQlyZXR1cm4gcmV0Owo+PiA+IC19Cj4+ID4gLQo+PiA+IC0vKiBjbGVhciBzcGVj aWZpZWQgY3J0Y3MgKG5vIGxvbmdlciBwZW5kaW5nIHVwZGF0ZSkKPj4gPiAtICovCj4+ID4gLXN0 YXRpYyB2b2lkIGVuZF9hdG9taWMoc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiwgdWludDMy X3QKPj4gPiBjcnRjX21hc2spCj4+ID4gLXsKPj4gPiAtCXNwaW5fbG9jaygmcHJpdi0+cGVuZGlu Z19jcnRjc19ldmVudC5sb2NrKTsKPj4gPiAtCURCRygiZW5kOiAlMDh4IiwgY3J0Y19tYXNrKTsK Pj4gPiAtCXByaXYtPnBlbmRpbmdfY3J0Y3MgJj0gfmNydGNfbWFzazsKPj4gPiAtCXdha2VfdXBf YWxsX2xvY2tlZCgmcHJpdi0+cGVuZGluZ19jcnRjc19ldmVudCk7Cj4+ID4gLQlzcGluX3VubG9j aygmcHJpdi0+cGVuZGluZ19jcnRjc19ldmVudC5sb2NrKTsKPj4gPiAtfQo+PiA+IC0KPj4gPiAt c3RhdGljIHZvaWQgY29tbWl0X2Rlc3Ryb3koc3RydWN0IG1zbV9jb21taXQgKmMpCj4+ID4gLXsK Pj4gPiAtCWVuZF9hdG9taWMoYy0+ZGV2LT5kZXZfcHJpdmF0ZSwgYy0+Y3J0Y19tYXNrKTsKPj4g PiAtCWlmIChjLT5ub25ibG9jaykKPj4gPiAtCQlrZnJlZShjKTsKPj4gPiAtfQo+PiA+IC0KPj4g PiAgc3RhdGljIHZvaWQgbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZSgKPj4gPiAgCQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiA+ICAJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpv bGRfc3RhdGUpCj4+ID4gQEAgLTExOCw2ICs3MywxMCBAQCBzdGF0aWMgdm9pZCBtc21fYXRvbWlj X2NvbW1pdF90YWlsKHN0cnVjdAo+PiA+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiA+Cj4+ ID4gIAltc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKGRldiwgc3RhdGUpOwo+PiA+Cj4+ ID4gKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShzdGF0ZSk7Cj4+ID4gKwo+PiA+ ICsJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJsYW5rcyhkZXYsIHN0YXRlKTsKPj4gPiAr Cj4+ID4gIAlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPj4g Pgo+PiA+ICAJa21zLT5mdW5jcy0+Y29tcGxldGVfY29tbWl0KGttcywgc3RhdGUpOwo+PiA+IEBA IC0xMjYsMTA5ICs4NSwyNSBAQCBzdGF0aWMgdm9pZCBtc21fYXRvbWljX2NvbW1pdF90YWlsKHN0 cnVjdAo+PiA+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiA+ICAvKiBUaGUgKHBvdGVudGlh bGx5KSBhc3luY2hyb25vdXMgcGFydCBvZiB0aGUgY29tbWl0LiAgQXQgdGhpcyBwb2ludAo+PiA+ ICAgKiBub3RoaW5nIGNhbiBmYWlsIHNob3J0IG9mIGFybWFnZWRkb24uCj4+ID4gICAqLwo+PiA+ IC1zdGF0aWMgdm9pZCBjb21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9jb21taXQgKmMpCj4+ID4g K3N0YXRpYyB2b2lkIGNvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK Pj4gPiAgewo+PiA+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gYy0+c3RhdGU7 Cj4+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPj4gPiArCWRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhzdGF0ZS0+ZGV2LCBzdGF0ZSwgZmFsc2UpOwo+ PiA+Cj4+ID4gLQlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9mZW5jZXMoZGV2LCBzdGF0ZSwg ZmFsc2UpOwo+PiA+ICsJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0 YXRlKTsKPj4gPgo+PiA+ICAJbXNtX2F0b21pY19jb21taXRfdGFpbChzdGF0ZSk7Cj4+ID4KPj4g PiAtCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPj4gPiAtfQo+PiA+IC0KPj4gPiAtc3Rh dGljIHZvaWQgX21zbV9kcm1fY29tbWl0X3dvcmtfY2Ioc3RydWN0IGt0aHJlYWRfd29yayAqd29y aykKPj4gPiAtewo+PiA+IC0Jc3RydWN0IG1zbV9jb21taXQgKmNvbW1pdCA9ICBOVUxMOwo+PiA+ IC0KPj4gPiAtCWlmICghd29yaykgewo+PiA+IC0JCURSTV9FUlJPUigiJXM6IEludmFsaWQgY29t bWl0IHdvcmsgZGF0YSFcbiIsIF9fZnVuY19fKTsKPj4gPiAtCQlyZXR1cm47Cj4+ID4gLQl9Cj4+ ID4gLQo+PiA+IC0JY29tbWl0ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtc21fY29tbWl0 LCBjb21taXRfd29yayk7Cj4+ID4gLQo+PiA+IC0JY29tcGxldGVfY29tbWl0KGNvbW1pdCk7Cj4+ ID4gLQo+PiA+IC0JY29tbWl0X2Rlc3Ryb3koY29tbWl0KTsKPj4gPiAtfQo+PiA+IC0KPj4gPiAt c3RhdGljIHN0cnVjdCBtc21fY29tbWl0ICpjb21taXRfaW5pdChzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4+ID4gLQkJYm9vbCBub25ibG9jaykKPj4gPiAtewo+PiA+IC0Jc3RydWN0 IG1zbV9jb21taXQgKmMgPSBremFsbG9jKHNpemVvZigqYyksIEdGUF9LRVJORUwpOwo+PiA+ICsJ ZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2NsZWFudXBfZG9uZShzdGF0ZSk7Cj4+ID4KPj4gPiAt CWlmICghYykKPj4gPiAtCQlyZXR1cm4gTlVMTDsKPj4gPiAtCj4+ID4gLQljLT5kZXYgPSBzdGF0 ZS0+ZGV2Owo+PiA+IC0JYy0+c3RhdGUgPSBzdGF0ZTsKPj4gPiAtCWMtPm5vbmJsb2NrID0gbm9u YmxvY2s7Cj4+ID4gLQo+PiA+IC0Ja3RocmVhZF9pbml0X3dvcmsoJmMtPmNvbW1pdF93b3JrLCBf bXNtX2RybV9jb21taXRfd29ya19jYik7Cj4+ID4gLQo+PiA+IC0JcmV0dXJuIGM7Cj4+ID4gKwlk cm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4+ID4gIH0KPj4gPgo+PiA+IC0vKiBTdGFydCBk aXNwbGF5IHRocmVhZCBmdW5jdGlvbiAqLwo+PiA+IC1zdGF0aWMgdm9pZCBtc21fYXRvbWljX2Nv bW1pdF9kaXNwYXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiA+IC0JCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSwgc3RydWN0IG1zbV9jb21taXQgKmNvbW1pdCkKPj4gPiArc3Rh dGljIHZvaWQgY29tbWl0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+PiA+ICB7Cj4+ ID4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4g PiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IE5VTEw7Cj4+ID4gLQlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKm5ld19jcnRjX3N0YXRlID0gTlVMTDsKPj4gPiAtCWludCByZXQgPSAtRUlOVkFMLCBp ID0gMCwgaiA9IDA7Cj4+ID4gLQlib29sIG5vbmJsb2NrOwo+PiA+IC0KPj4gPiAtCS8qIGNhY2hl IHNpbmNlIHdvcmsgd2lsbCBrZnJlZSBjb21taXQgaW4gbm9uLWJsb2NraW5nIGNhc2UgKi8KPj4g PiAtCW5vbmJsb2NrID0gY29tbWl0LT5ub25ibG9jazsKPj4gPiAtCj4+ID4gLQlmb3JfZWFjaF9u ZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpIHsKPj4gPiAt CQlmb3IgKGogPSAwOyBqIDwgcHJpdi0+bnVtX2NydGNzOyBqKyspIHsKPj4gPiAtCQkJaWYgKHBy aXYtPmRpc3BfdGhyZWFkW2pdLmNydGNfaWQgPT0KPj4gPiAtCQkJCQkJY3J0Yy0+YmFzZS5pZCkg ewo+PiA+IC0JCQkJaWYgKHByaXYtPmRpc3BfdGhyZWFkW2pdLnRocmVhZCkgewo+PiA+IC0JCQkJ CWt0aHJlYWRfcXVldWVfd29yaygKPj4gPiAtCj4+ID4gJnByaXYtPmRpc3BfdGhyZWFkW2pdLndv cmtlciwKPj4gPiAtCj4+ID4gJmNvbW1pdC0+Y29tbWl0X3dvcmspOwo+PiBBcmUgdGhlcmUgYW55 IGtub3duIHByb3Bvc2FscyBmbG9hdGluZyBhcm91bmQgdG8gc3VwcG9ydCBBU1lOQyBjb21taXRz Cj4gZm9yCj4+IGNvbmN1cnJlbnQgZGlzcGxheXMgcmVuZGVyaW5nIGF0IGRpZmZlcmVudCBGUFM/ IFRoZSBhYm92ZSBrdGhyZWFkIAo+PiBtb2RlbAo+IGlzCj4+IGludHJvZHVjZWQgd2hlbiB3ZSBm YWNlZCBzb21lIHBlcmZvcm1hbmNlIHJvYWQgYmxvY2tlcnMgd2hlbiBhIGRpc3BsYXkKPiBoYXMK Pj4gdG8gd2FpdCBmb3IgYW4gb25nb2luZyBkaXNwbGF5IGNvbW1pdCB0byBjb21wbGV0ZS4KPiAK PiBJIHRoaW5rIHBlb3BsZSBoYXZlIGRpc2N1c3NlZCBpdCwgSSdtIG5vdCBzdXJlIGlmIHRoZXJl IGFyZSBhbnkgcGF0Y2hlcwo+IGZsb2F0aW5nCj4gYXJvdW5kLiBPbiB0aGUgc3VyZmFjZSwgaXQg c2VlbXMgZWFzeSB0byBqdXN0IHB1c2ggdGhlIGNvbW1pdF93b3JrIGludG8KPiB0aGUgY3J0Ywo+ IGNvbW1pdCBhbmQgaGF2ZSBvbmUgd29yayBpdGVtIHBlciBjcnRjLiBIb3dldmVyIEkgdGhpbmsg dGhlIHByb2JsZW0gaXMKPiB0aGF0IHRoZXJlCj4gY291bGQgYmUgcmVzb3VyY2VzIHN3aXRjaGlu ZyBiZXR3ZWVuIGNydGNzIGZvciBhIGdpdmVuIGNvbW1pdCwgb3IgZnJvbSAKPiBvbmUKPiBjb21t aXQKPiB0byB0aGUgbmV4dCwgYW5kIHN5bmNocm9uaXppbmcgdGhhdCBiZWNvbWVzIGEgSGFyZCBQ cm9ibGVtLgo+IAo+IFBlcmhhcHMgSSdtIG1pc3VuZGVyc3RhbmRpbmcsIGJ1dCB0aGUgc3RhcnQv ZW5kIGF0b21pYyBmdW5jdGlvbnMgCj4gc2VyaWFsaXplCj4gdGhlCj4gaW5jb21pbmcgY29tbWl0 cywgcmlnaHQ/IFNvIHRoZSBvbmx5IGJlbmVmaXQgdGhlIGt0aHJlYWQgcHJvdmlkZXMgaXMgdG8K PiBtaXRpZ2F0ZQo+IGFueSBibG9ja2luZyBjYWxscyBtYWRlIG9uIG9uZSBjcnRjIGZyb20gYmxv Y2tpbmcgYSBzZWNvbmQgY3J0YyBpbiB0aGUKPiBzYW1lCj4gY29tbWl0Pwo+IAo+IFNlYW4KSSBh bSBub3Qgc3VyZSB3aGF0IGxldmVsIG9mIHJlc291cmNlIChJIGFzc3VtZSBodyBibG9ja3MpIHN3 aXRjaGluZyB3ZSAKY2FuIGV4cGVjdCBiZXR3ZWVuCnR3byBhY3RpdmUgQ1JUQydzIG9uIHN1Y2Nl c3NpdmUgY29tbWl0cy4gV2l0aCB2aXJ0dWFsaXphdGlvbiBpbiBwbGF5LCAKdGhlIHJlc291cmNl cyBhbGxvY2F0ZWQgdG8KQ1JUQyAvIGVuY29kZXIgLyBDb25uZWN0b3Igd2lsbCByZW1haW4gYXR0 YWNoZWQgdG8gdGhlIGNvbXBvbmVudHMgYXMgCmxvbmcgYXMgdGhlIGRpc3BsYXkgaXMgYWN0aXZl LgpQbGFuZXMgKEhXIHBpcGVzKSBhcmUgb25lIHN1Y2ggZW50aXR5IHdoaWNoIGNhbiBtb3ZlIGJl dHdlZW4gdGhlIENSVEMncyAKZnJlcXVlbnRseS4gRXZlbgp3aXRoIHRoZW0gcGxhbmVzLCB0aGUg aHcgYXNzaWdubWVudCBzaG91bGQgcmVtYWluIHZhbGlkIHVudGlsIHRoZSBwbGFuZSAKaXMgZGV0 YWNoZWQgZnJvbQphIENSVEMgYmVmb3JlIGF0dGFjaGluZyB0byB0aGUgbmV4dCBvbmUuCgoiU3Rh cnQgYXRvbWljIiBzeW5jaHJvbml6ZXMgdGhlIGNvbW1pdCBjeWNsZSBmb3IgYWxsIHRoZSBDUlRD J3MgYnkgCndhaXRpbmcgZm9yIGNvbW1pdCBjb21wbGV0ZQpvZiBhbGwgdGhlIHByZXZpb3VzIGZy YW1lcy4gQnV0IHBlciBjcnRjIGt0aHJlYWRzIGFsbG93cyB0aGUgY3VycmVudCAKZnJhbWUgY29t bWl0cyB0byBoYXBwZW4KaW5kZXBlbmRlbnRseS4gRm9yIGFuZHJvaWQsIHdlIG5lZWRlZCB0aGlz IG1vZGVsIGFzIGVhY2ggY29tbWl0IHRocmVhZCAKbmVlZCB0byB3YWl0IGZvciBpbnB1dApwbGFu ZSBmZW5jZXMgYmVmb3JlIHByb2dyYW1taW5nIHRoZSBoYXJkd2FyZS4KCkpleWt1bWFyIFMuCj4g Cj4+ID4gLQkJCQkJLyogb25seSByZXR1cm4gemVybyBpZiB3b3JrIGlzCj4+ID4gLQkJCQkJICog cXVldWVkIHN1Y2Nlc3NmdWxseS4KPj4gPiAtCQkJCQkgKi8KPj4gPiAtCQkJCQlyZXQgPSAwOwo+ PiA+IC0JCQkJfSBlbHNlIHsKPj4gPiAtCQkJCQlEUk1fRVJST1IoIiBFcnJvciBmb3IgY3J0Y19p ZDoKPj4gPiAlZFxuIiwKPj4gPiAtCj4+ID4gcHJpdi0+ZGlzcF90aHJlYWRbal0uY3J0Y19pZCk7 Cj4+ID4gLQkJCQl9Cj4+ID4gLQkJCQlicmVhazsKPj4gPiAtCQkJfQo+PiA+IC0JCX0KPj4gPiAt CQkvKgo+PiA+IC0JCSAqIFRPRE86IGhhbmRsZSBjYXNlcyB3aGVyZSB0aGVyZSB3aWxsIGJlIG1v cmUgdGhhbgo+PiA+IC0JCSAqIG9uZSBjcnRjIHBlciBjb21taXQgY3ljbGUuIFJlbW92ZSB0aGlz IGNoZWNrIHRoZW4uCj4+ID4gLQkJICogQ3VycmVudCBhc3N1bXB0aW9uIGlzIHRoZXJlIHdpbGwg YmUgb25seSBvbmUgY3J0Ywo+PiA+IC0JCSAqIHBlciBjb21taXQgY3ljbGUuCj4+ID4gLQkJICov Cj4+ID4gLQkJaWYgKGogPCBwcml2LT5udW1fY3J0Y3MpCj4+ID4gLQkJCWJyZWFrOwo+PiA+IC0J fQo+PiA+IC0KPj4gPiAtCWlmIChyZXQpIHsKPj4gPiAtCQkvKioKPj4gPiAtCQkgKiB0aGlzIGlz IG5vdCBleHBlY3RlZCB0byBoYXBwZW4sIGJ1dCBhdCB0aGlzIHBvaW50IHRoZQo+PiA+IHN0YXRl Cj4+ID4gLQkJICogaGFzIGJlZW4gc3dhcHBlZCwgYnV0IHdlIGNvdWxkbid0IGRpc3BhdGNoIHRv IGEgY3J0Ywo+PiA+IHRocmVhZC4KPj4gPiAtCQkgKiBmYWxsYmFjayBub3cgdG8gYSBzeW5jaHJv bm91cyBjb21wbGV0ZV9jb21taXQgdG8gdHJ5Cj4+ID4gYW5kCj4+ID4gLQkJICogZW5zdXJlIHRo YXQgU1cgYW5kIEhXIHN0YXRlIGRvbid0IGdldCBvdXQgb2Ygc3luYy4KPj4gPiAtCQkgKi8KPj4g PiAtCQlEUk1fRVJST1IoImZhaWxlZCB0byBkaXNwYXRjaCBjb21taXQgdG8gYW55IENSVENcbiIp Owo+PiA+IC0JCWNvbXBsZXRlX2NvbW1pdChjb21taXQpOwo+PiA+IC0JfSBlbHNlIGlmICghbm9u YmxvY2spIHsKPj4gPiAtCQlrdGhyZWFkX2ZsdXNoX3dvcmsoJmNvbW1pdC0+Y29tbWl0X3dvcmsp Owo+PiA+IC0JfQo+PiA+IC0KPj4gPiAtCS8qIGZyZWUgbm9uYmxvY2tpbmcgY29tbWl0cyBpbiB0 aGlzIGNvbnRleHQsIGFmdGVyIHByb2Nlc3NpbmcgKi8KPj4gPiAtCWlmICghbm9uYmxvY2spCj4+ ID4gLQkJa2ZyZWUoY29tbWl0KTsKPj4gPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSA9IGNvbnRhaW5lcl9vZih3b3JrLAo+PiA+ICsJCQkJCQkgICAgICBzdHJ1Y3QKPj4gPiBkcm1f YXRvbWljX3N0YXRlLAo+PiA+ICsJCQkJCQkgICAgICBjb21taXRfd29yayk7Cj4+ID4gKwljb21t aXRfdGFpbChzdGF0ZSk7Cj4+ID4gIH0KPj4gPgo+PiA+ICAvKioKPj4gPiBAQCAtMjQ3LDE3ICsx MjIsMTIgQEAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ ID4gIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLCBib29sIG5vbmJsb2NrKQo+PiA+ ICB7Cj4+ID4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPj4gPiAtCXN0cnVjdCBtc21fY29tbWl0ICpjOwo+PiA+ICAJc3RydWN0IGRybV9jcnRjICpj cnRjOwo+PiA+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+PiA+ICAJc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRf cGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Cj4+ID4gIAlpbnQgaSwgcmV0Owo+PiA+Cj4+ ID4gLQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhkZXYsIHN0YXRlKTsK Pj4gPiAtCWlmIChyZXQpCj4+ID4gLQkJcmV0dXJuIHJldDsKPj4gPiAtCj4+ID4gIAkvKgo+PiA+ ICAJICogTm90ZSB0aGF0IHBsYW5lLT5hdG9taWNfYXN5bmNfY2hlY2soKSBzaG91bGQgZmFpbCBp ZiB3ZSBuZWVkCj4+ID4gIAkgKiB0byByZS1hc3NpZ24gaHdwaXBlIG9yIGFueXRoaW5nIHRoYXQg dG91Y2hlcyBnbG9iYWwgYXRvbWljCj4+ID4gQEAgLTI2NSwzMiArMTM1LDMwIEBAIGludCBtc21f YXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiA+ICAJICogY2FzZXMuCj4+ ID4gIAkgKi8KPj4gPiAgCWlmIChzdGF0ZS0+YXN5bmNfdXBkYXRlKSB7Cj4+ID4gKwkJcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4+ID4gKwkJaWYg KHJldCkKPj4gPiArCQkJcmV0dXJuIHJldDsKPj4gPiArCj4+ID4gIAkJZHJtX2F0b21pY19oZWxw ZXJfYXN5bmNfY29tbWl0KGRldiwgc3RhdGUpOwo+PiA+ICAJCWRybV9hdG9taWNfaGVscGVyX2Ns ZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+PiA+ICAJCXJldHVybiAwOwo+PiA+ICAJfQo+PiA+ Cj4+ID4gLQljID0gY29tbWl0X2luaXQoc3RhdGUsIG5vbmJsb2NrKTsKPj4gPiAtCWlmICghYykg ewo+PiA+IC0JCXJldCA9IC1FTk9NRU07Cj4+ID4gLQkJZ290byBlcnJvcjsKPj4gPiAtCX0KPj4g PiArCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdChzdGF0ZSwgbm9uYmxvY2sp Owo+PiA+ICsJaWYgKHJldCkKPj4gPiArCQlyZXR1cm4gcmV0Owo+PiA+Cj4+ID4gLQkvKgo+PiA+ IC0JICogRmlndXJlIG91dCB3aGF0IGNydGNzIHdlIGhhdmU6Cj4+ID4gLQkgKi8KPj4gPiAtCWZv cl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQo+PiA+ IC0JCWMtPmNydGNfbWFzayB8PSBkcm1fY3J0Y19tYXNrKGNydGMpOwo+PiA+ICsJSU5JVF9XT1JL KCZzdGF0ZS0+Y29tbWl0X3dvcmssIGNvbW1pdF93b3JrKTsKPj4gPgo+PiA+IC0JLyoKPj4gPiAt CSAqIFdhaXQgZm9yIHBlbmRpbmcgdXBkYXRlcyBvbiBhbnkgb2YgdGhlIHNhbWUgY3J0YydzIGFu ZCB0aGVuCj4+ID4gLQkgKiBtYXJrIG91ciBzZXQgb2YgY3J0YydzIGFzIGJ1c3k6Cj4+ID4gLQkg Ki8KPj4gPiAtCXJldCA9IHN0YXJ0X2F0b21pYyhkZXYtPmRldl9wcml2YXRlLCBjLT5jcnRjX21h c2spOwo+PiA+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBz dGF0ZSk7Cj4+ID4gIAlpZiAocmV0KQo+PiA+IC0JCWdvdG8gZXJyX2ZyZWU7Cj4+ID4gKwkJcmV0 dXJuIHJldDsKPj4gPgo+PiA+IC0JQlVHX09OKGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUo c3RhdGUsIGZhbHNlKSA8IDApOwo+PiA+ICsJaWYgKCFub25ibG9jaykgewo+PiA+ICsJCXJldCA9 IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhkZXYsIHN0YXRlLCB0cnVlKTsKPj4g PiArCQlpZiAocmV0KQo+PiA+ICsJCQlnb3RvIGVycm9yOwo+PiA+ICsJfQo+PiA+Cj4+ID4gIAkv Kgo+PiA+ICAJICogVGhpcyBpcyB0aGUgcG9pbnQgb2Ygbm8gcmV0dXJuIC0gZXZlcnl0aGluZyBi ZWxvdyBuZXZlciBmYWlscwo+PiA+IGV4Y2VwdAo+PiA+IEBAIC0yOTksNiArMTY3LDggQEAgaW50 IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ID4gIAkgKgo+PiA+ ICAJICogc3dhcCBkcml2ZXIgcHJpdmF0ZSBzdGF0ZSB3aGlsZSBzdGlsbCBob2xkaW5nIHN0YXRl X2xvY2sKPj4gPiAgCSAqLwo+PiA+ICsJQlVHX09OKGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3Rh dGUoc3RhdGUsIGZhbHNlKSA8IDApOwo+PiA+ICsKPj4gPiAgCWlmICh0b19rbXNfc3RhdGUoc3Rh dGUpLT5zdGF0ZSkKPj4gPiAgCQlwcml2LT5rbXMtPmZ1bmNzLT5zd2FwX3N0YXRlKHByaXYtPmtt cywgc3RhdGUpOwo+PiA+Cj4+ID4gQEAgLTMyOSwxMiArMTk5LDEzIEBAIGludCBtc21fYXRvbWlj X2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiA+ICAJICovCj4+ID4KPj4gPiAgCWRy bV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKPj4gPiAtCW1zbV9hdG9taWNfY29tbWl0X2Rpc3Bh dGNoKGRldiwgc3RhdGUsIGMpOwo+PiA+ICsJaWYgKG5vbmJsb2NrKQo+PiA+ICsJCXF1ZXVlX3dv cmsoc3lzdGVtX3VuYm91bmRfd3EsICZzdGF0ZS0+Y29tbWl0X3dvcmspOwo+PiA+ICsJZWxzZQo+ PiA+ICsJCWNvbW1pdF90YWlsKHN0YXRlKTsKPj4gPgo+PiA+ICAJcmV0dXJuIDA7Cj4+ID4KPj4g PiAtZXJyX2ZyZWU6Cj4+ID4gLQlrZnJlZShjKTsKPj4gPiAgZXJyb3I6Cj4+ID4gIAlkcm1fYXRv bWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPj4gPiAgCXJldHVybiByZXQ7 Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4+ID4gYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+PiA+IGluZGV4IGVkYTRhMjM0MGY5My4uYjM1 NDQyNGNjY2I1IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5j Cj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPj4gPiBAQCAtNTQ5LDcg KzU0OSw2IEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0Cj4+ID4gZHJtX2RyaXZlciAqZHJ2KQo+PiA+ICAJCWdvdG8gbWRzc19pbml0X2ZhaWw7Cj4+ ID4KPj4gPiAgCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoIm1zbV9kcm0iLCAw KTsKPj4gPiAtCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPnBlbmRpbmdfY3J0Y3NfZXZlbnQp Owo+PiA+Cj4+ID4gIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+Y2xpZW50X2V2ZW50X2xpc3QpOwo+ PiA+ICAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmluYWN0aXZlX2xpc3QpOwo+PiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+PiA+IGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZHJ2LmgKPj4gPiBpbmRleCBjZjk2YTg1ZjRiNTUuLjI5MjQ5NmI2ODJlOCAxMDA2 NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+PiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4+ID4gQEAgLTUzNiwxMCArNTM2LDYgQEAgc3Ry dWN0IG1zbV9kcm1fcHJpdmF0ZSB7Cj4+ID4KPj4gPiAgCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0 ICp3cTsKPj4gPgo+PiA+IC0JLyogY3J0Y3MgcGVuZGluZyBhc3luYyBhdG9taWMgdXBkYXRlczog Ki8KPj4gPiAtCXVpbnQzMl90IHBlbmRpbmdfY3J0Y3M7Cj4+ID4gLQl3YWl0X3F1ZXVlX2hlYWRf dCBwZW5kaW5nX2NydGNzX2V2ZW50Owo+PiA+IC0KPj4gPiAgCXVuc2lnbmVkIGludCBudW1fcGxh bmVzOwo+PiA+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmVzW01BWF9QTEFORVNdOwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGlu ZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K