From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [DPU PATCH 02/11] drm/msm: Don't duplicate modeset_enables atomic helper Date: Wed, 14 Mar 2018 18:39:05 -0700 Message-ID: <645777c3f76662ce5b0b14bcf7b81acb@codeaurora.org> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-3-seanpaul@chromium.org> <20180312202146.GA223881@art_vandelay> <677c8c29a788a147aa45bc1e9768527e@codeaurora.org> <20180314151436.GF223881@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180314151436.GF223881@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 T24gMjAxOC0wMy0xNCAwODoxNCwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDEzLCAy MDE4IGF0IDA0OjU3OjM1UE0gLTA3MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBPbiAy MDE4LTAzLTEyIDEzOjIxLCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gT24gVGh1LCBNYXIgMDgsIDIw MTggYXQgMDQ6NTY6MDFQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4gd3JvdGU6Cj4+ID4gPiBP biAyMDE4LTAyLTI4IDExOjE4LCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gPiA+IEluc3RlYWQsIHNo dWZmbGUgdGhpbmdzIGFyb3VuZCBzbyB3ZSBraWNrb2ZmIGNydGMgYWZ0ZXIgZW5hYmxpbmcKPj4g PiBlbmNvZGVyCj4+ID4gPiA+IGR1cmluZyBtb2Rlc2V0cy4gQWxzbyBtb3ZlcyB0aGUgdmJsYW5r IHdhaXQgdG8gYWZ0ZXIgdGhlIGZyYW1lLgo+PiA+ID4gPgo+PiA+ID4gPiBDaGFuZ2UtSWQ6IEkx NmM3YjdmOTM5MGQwNGY2MDUwYWEyMGUxN2E1MzM1ZmJmNDllYmEzCj4+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+PiA+ID4gPiAtLS0KPj4g PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgfCAgIDkg KysKPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMg fCAgIDUgKy0KPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMu YyAgICAgfCAgMzEgKysrKy0KPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9rbXMuaCAgICAgfCAgIDIgKwo+PiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21f YXRvbWljLmMgICAgICAgICAgICB8IDEzMgo+PiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4g PiA+ICA1IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDEzMSBkZWxldGlvbnMoLSkK Pj4gPiA+ID4KPj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmMKPj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5jCj4+ID4gPiA+IGluZGV4IGEzYWI2ZWQyYmYxZC4uOTRmYWIyZGNjYTViIDEwMDY0 NAo+PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j Cj4+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMK Pj4gPiA+ID4gQEAgLTM1MjUsNiArMzUyNSwxMiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19lbmFi bGUoc3RydWN0IGRybV9jcnRjCj4+ID4gPiA+ICpjcnRjLAo+PiA+ID4gPiAgCURQVV9FVlQzMl9W RVJCT1NFKERSTUlEKGNydGMpKTsKPj4gPiA+ID4gIAlkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNy dGMpOwo+PiA+ID4gPgo+PiA+ID4gPiArCWlmIChtc21faXNfbW9kZV9zZWFtbGVzcygmY3J0Yy0+ c3RhdGUtPmFkanVzdGVkX21vZGUpIHx8Cj4+ID4gPiA+ICsJICAgIG1zbV9pc19tb2RlX3NlYW1s ZXNzX3ZycigmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGUpKQo+IHsKPj4gPiA+ID4gKwkJRFBV X0RFQlVHKCJTa2lwcGluZyBjcnRjIGVuYWJsZSwgc2VhbWxlc3MKPiBtb2RlXG4iKTsKPj4gPiA+ ID4gKwkJcmV0dXJuOwo+PiA+ID4gPiArCX0KPj4gPiA+ID4gKwo+PiA+ID4gPiAgCXBtX3J1bnRp bWVfZ2V0X3N5bmMoY3J0Yy0+ZGV2LT5kZXYpOwo+PiA+ID4gPgo+PiA+ID4gPiAgCWRybV9mb3Jf ZWFjaF9lbmNvZGVyKGVuY29kZXIsIGNydGMtPmRldikgewo+PiA+ID4gPiBAQCAtMzU3Miw2ICsz NTc4LDkgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0Ywo+PiA+ ICpjcnRjLAo+PiA+ID4gPiAgCQlEUFVfUE9XRVJfRVZFTlRfUE9TVF9FTkFCTEUgfAo+IERQVV9Q T1dFUl9FVkVOVF9QT1NUX0RJU0FCTEUKPj4gPiA+ID4gfAo+PiA+ID4gPiAgCQlEUFVfUE9XRVJf RVZFTlRfUFJFX0RJU0FCTEUsCj4+ID4gPiA+ICAJCWRwdV9jcnRjX2hhbmRsZV9wb3dlcl9ldmVu dCwgY3J0YywKPiBkcHVfY3J0Yy0+bmFtZSk7Cj4+ID4gPiA+ICsKPj4gPiA+ID4gKwlpZgo+ICht c21fbmVlZHNfdmJsYW5rX3ByZV9tb2Rlc2V0KCZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkp Cj4+ID4gPiA+ICsJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTsKPj4gPiA+ID4gIH0K Pj4gPiA+ID4KPj4gPiA+ID4gIHN0cnVjdCBwbGFuZV9zdGF0ZSB7Cj4+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ID4gPiA+ IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+PiA+ID4gPiBp bmRleCAyOGNlYjU4OWVlNDAuLjRkMWUzNjUyZGJmNCAxMDA2NDQKPj4gPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+PiA+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ID4gPiA+IEBAIC0z NjkzLDggKzM2OTMsMTEgQEAgc3RhdGljIHZvaWQKPj4gPiBkcHVfZW5jb2Rlcl9mcmFtZV9kb25l X3RpbWVvdXQoc3RydWN0Cj4+ID4gPiA+IHRpbWVyX2xpc3QgKnQpCj4+ID4gPiA+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcwo+IGRwdV9lbmNvZGVyX2hlbHBl cl9mdW5jcwo+PiA+ID0KPj4gPiA+ID4gewo+PiA+ID4gPiAgCS5tb2RlX3NldCA9IGRwdV9lbmNv ZGVyX3ZpcnRfbW9kZV9zZXQsCj4+ID4gPiA+ICAJLmRpc2FibGUgPSBkcHVfZW5jb2Rlcl92aXJ0 X2Rpc2FibGUsCj4+ID4gPiA+IC0JLmVuYWJsZSA9IGRwdV9lbmNvZGVyX3ZpcnRfZW5hYmxlLAo+ PiA+ID4gPiArCS5lbmFibGUgPSBkcHVfa21zX2VuY29kZXJfZW5hYmxlLAo+PiA+ID4gPiAgCS5h dG9taWNfY2hlY2sgPSBkcHVfZW5jb2Rlcl92aXJ0X2F0b21pY19jaGVjaywKPj4gPiA+ID4gKwo+ PiA+ID4gPiArCS8qIFRoaXMgaXMgY2FsbGVkIGJ5IGRwdV9rbXNfZW5jb2Rlcl9lbmFibGUgKi8K Pj4gPiA+ID4gKwkuY29tbWl0ID0gZHB1X2VuY29kZXJfdmlydF9lbmFibGUsCj4+ID4gPiA+ICB9 Owo+PiA+ID4gPgo+PiA+ID4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5j cyBkcHVfZW5jb2Rlcl9mdW5jcyA9IHsKPj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+PiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+PiA+ID4gPiBpbmRleCA4MWZkM2E0MjllOWYuLjNkODMw MzdlODMwNSAxMDA2NDQKPj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2ttcy5jCj4+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9rbXMuYwo+PiA+ID4gPiBAQCAtNDI1LDE0ICs0MjUsMzcgQEAgc3RhdGljIHZvaWQgZHB1 X2ttc19wcmVwYXJlX2NvbW1pdChzdHJ1Y3QKPj4gPiBtc21fa21zCj4+ID4gPiA+ICprbXMsCj4+ ID4gPiA+ICAJCQlkcHVfZW5jb2Rlcl9wcmVwYXJlX2NvbW1pdChlbmNvZGVyKTsKPj4gPiA+ID4g IH0KPj4gPiA+ID4KPj4gPiA+ID4gLXN0YXRpYyB2b2lkIGRwdV9rbXNfY29tbWl0KHN0cnVjdCBt c21fa21zICprbXMsCj4+ID4gPiA+IC0JCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3Rh dGUpCj4+ID4gPiA+ICsvKgo+PiA+ID4gPiArICogT3ZlcnJpZGUgdGhlIGVuY29kZXIgZW5hYmxl IHNpbmNlIHdlIG5lZWQgdG8gc2V0dXAgdGhlIGlubGluZQo+PiA+ID4gPiByb3RhdG9yCj4+ID4g PiA+IGFuZCBkbwo+PiA+ID4gPiArICogc29tZSBjcnRjIG1hZ2ljIGJlZm9yZSBlbmFibGluZyBh bnkgYnJpZGdlIHRoYXQgbWlnaHQgYmUKPiBwcmVzZW50Lgo+PiA+ID4gPiArICovCj4+ID4gPiA+ ICt2b2lkIGRwdV9rbXNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQo+PiA+ID4gPiArewo+PiA+ID4gPiArCWNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJf ZnVuY3MgKmZ1bmNzID0KPj4gPiA+ID4gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGU7Cj4+ID4gPiA+ ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKPj4gPiA+ID4gKwo+PiA+ ID4gPiArCS8qIEZvcndhcmQgdGhpcyBlbmFibGUgY2FsbCB0byB0aGUgY29tbWl0IGhvb2sgKi8K Pj4gPiA+ID4gKwlpZiAoZnVuY3MgJiYgZnVuY3MtPmNvbW1pdCkKPj4gPiA+ID4gKwkJZnVuY3Mt PmNvbW1pdChlbmNvZGVyKTsKPj4gPiA+Cj4+ID4gPiBUaGUgcHVycG9zZSBvZiB0aGlzIGZ1bmN0 aW9uIGlzIG5vdCBjbGVhci4gV2hlcmUgYXJlIHdlIHNldHRpbmcgdXAKPiB0aGUKPj4gPiA+IGlu bGluZSByb3RhdG9yPwo+PiA+ID4gV2h5IGRvIHdlIG5lZWQgYSBraWNrb2ZmIGhlcmU/Cj4+ID4K Pj4gPiBUaGUgcmVhc29uIHRoZSBjb2RlIGlzIHNodWZmbGVkIGlzIHRvIGF2b2lkIGR1cGxpY2F0 aW5nIHRoZSBlbnRpcmUKPj4gPiBhdG9taWMKPj4gPiBoZWxwZXIKPj4gPiBmdW5jdGlvbi4gQnkg bW92aW5nIGNhbGxzIGludG8gdGhlIC0+ZW5hYmxlIGhvb2tzLCB3ZSBjYW4gYXZvaWQgaGF2aW5n Cj4+ID4gdG8KPj4gPiBoYW5kCj4+ID4gcm9sbCB0aGUgaGVscGVycy4KPj4gPgo+PiA+IFRoZSBr aWNrb2ZmIGlzIHByZXNlcnZlZCBmcm9tIHRoZSBoZWxwZXIgY29weSB3aGVuIHlvdSBjYWxsCj4+ ID4ga21zLT5mdW5jcy0+Y29tbWl0Cj4+ID4gaW4gYmV0d2VlbiB0aGUgZW5jb2RlciBlbmFibGUg YW5kIGJyaWRnZSBlbmFibGUuIElmIHRoaXMgY2FuIGJlCj4gcmVtb3ZlZCwKPj4gPiB0aGF0J2QK Pj4gPiBiZSBldmVuIGJldHRlci4gSSB3YXMgc2ltcGx5IHRyeWluZyB0byBwcmVzZXJ2ZSB0aGUg Y2FsbCBvcmRlciBvZgo+PiA+IGV2ZXJ5dGhpbmcuCj4+ID4KPj4gPiBTZWFuCj4+IEkgYW0gd2l0 aCB5b3Ugb24gY2xlYW5pbmcgdXAgdGhlIGF0b21pYyBoZWxwZXIgY29weS4gQnV0IHVzaW5nCj4g ZW5jLT5jb21taXQKPj4gaGVscGVyCj4+IHRvIGNhbGwgaW50byBlbmNvZGVyX2VuYWJsZSBkb2Vz bid0IGxvb2sgdmFsaWQgdG8gbWUuCj4gCj4gImRvZXNuJ3QgbG9vayB2YWxpZCB0byBtZSIgZG9l c24ndCBnaXZlIG1lIG11Y2ggdG8gZ28gb24uIENvdWxkIHlvdSAKPiBwbGVhc2UKPiBleHBsYWlu IHdoeSBpdCBkb2Vzbid0IGxvb2sgdmFsaWQgdG8geW91Pwo+IApUaGUgZGVzY3JpcHRpb24gaW4g ZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCBzYXlzIHVzaW5nIGVuYy0+Y29tbWl0IApob29r IGZvciBlbmFibGluZyB0aGUKZW5jb2RlciBpcyBhIGRlcHJlY2F0ZWQgbWV0aG9kLiBBbHNvLCBz aW5jZSB3ZSBoYXZlIGFuIG9wdGlvbiB0byBnZXQgcmlkIApvZiB0aGlzCmV4dHJhIGttcy0+ZnVu Y3MtPmNvbW1pdCAoZm9yIHdoaWNoIHdlIG5lZWRlZCB0aGlzIGxvb3AgYXJvdW5kIGluIGZpcnN0 IApwbGFjZSksIHdlCmNhbiBzdGljayB3aXRoIHRoZSBlbmMtPmVuYWJsZSBob29rIGl0c2VsZi4K Pj4gCj4+IEFsc28sIEkgdmVyaWZpZWQgcmVtb3ZpbmcgdGhlIGttcy0+ZnVuY3MtPmNvbW1pdCBj YWxsIGJldHdlZW4gZW5jb2Rlcgo+IGVuYWJsZQo+PiBhbmQKPj4gYnJpZGdlIGVuYWJsZS4gSXQg d29ya3MgZmluZSB3aXRoIHlvdXIgbmV3bHkgcGxhY2VkIGttcy0+ZnVuY3MtPmNvbW1pdAo+IGFm dGVyCj4+IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMuIFNvIGNhbiB5 b3UgcmV2aXNpdCB0aGlzCj4gZnVuY3Rpb24/Cj4gCj4gSG1tLCBkbyB5b3Uga25vdyB3aHkgaXQg d2FzIHRoZXJlIGluIHRoZSBmaXJzdCBwbGFjZT8gSXQgc2VlbXMgbGlrZSAKPiB0aGlzCj4gd2Fz IHRoZQo+IHByaW1hcnkgcmVhc29uIGZvciBjb3B5L3Bhc3RpbmcgdGhlIHdob2xlIGZ1bmN0aW9u LCBzbyBpdCBwcm9iYWJseSAKPiB3YXNuJ3QKPiBkb25lCj4gZm9yIG5vdGhpbmcsIGl0J2QgYmUg bmljZSB0byBoYXZlIHNvbWUgaGlzdG9yeSBvbiB0aGF0Lgo+IApoL3cgcHJvZ3JhbW1pbmcgc2Vx dWVuY2UgZGlmZmVycyBiZXR3ZWVuIERQVSBhbmQgTURQNS4gTURQNSB0cmlnZ2VycyB0aGUKZnJh bWUga2lja29mZiBpbiBjcnRjLT5mbHVzaCBob29rLiBCdXQgYWN0dWFsIGZyYW1lIHRyYW5zZmVy IHN0YXJ0cyBvbmx5CmluIGVuY29kZXItPmVuYWJsZSB3aGVyZSB3ZSB0dXJuIG9uIHRoZSBpbnRl cmZhY2UgdGltaW5nIGVuZ2luZSBhbmQgCnRyaWdnZXIKdGhlIENUTCBmbHVzaCBhZ2FpbighKS4g SW4gRFBVLCB3ZSBlbmFibGUgYWxsIHRoZSBodyBibG9ja3MgYXNzb2NpYXRlZCAKd2l0aAp0aGUg ZW5jb2RlciBiZWZvcmUgdHJpZ2dlcmluZyB0aGUgZnJhbWUga2lja29mZi4gU28gYSBuZXcgaG9v aywgCmttcy0+Y29tbWl0IHdhcwppbnRyb2R1Y2VkIHRvIGtpY2tvZmYgdGhlIGZyYW1lIGFmdGVy IGFsbCB0aGUgY29tcG9uZW50cyBhcmUgZW5hYmxlZC4gClNpbmNlIHlvdQphcmUgbW92aW5nIHRo ZSBrbXMtPmZ1bmNzLT5jb21taXQgYWZ0ZXIgbW9kZXNldF9lbmFibGVzLCB3ZSBhcmUgYWxyZWFk eSAKdGFraW5nCmNhcmUgb2YgdGhlIG9yZGVyLgoKQXMgYW4gYWx0ZXJuYXRpdmUsIEkgc2VlIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsX3JwbSBjaGFuZ2luZyB0aGUgCm9yZGVyCm9mIGNy dGMtPmZsdXNoIC8gZW5jLT5lbmFibGUgaGVscGVyIGNhbGxzIGZvciBkcml2ZXJzIHVzaW5nIHJ1 bnRpbWVfcG0uIApJZiB3ZQpjYW4gdGFrZSBjYXJlIG9mIHRyaWdnZXJpbmcgZnJhbWVzIGZyb20g Y3J0Yy0+Zmx1c2ggKGFzIE1EUDUgZG9lcyksIHdlIApjYW4gZXZlbiBnZXQKcmlkIG9mIGttcy0+ ZnVuY3MtPmNvbW1pdCBhbmQgYWRhcHQgbW9yZSBoZWxwZXJzLiBCdXQgdGhhdCdzIGZvciB0aGUg CmZ1dHVyZQpwYXRjaGVzIQoKPiBQcmVzdW1hYmx5IHlvdSBuZWVkZWQgdG8gcmVtb3ZlIHRoZSBu ZWVkc19tb2Rlc2V0IGNoZWNrIGFzIHdlbGw/Cj4gClllcy4KPiBTZWFuCj4gCj4+IAo+PiBKZXlr dW1hciBTCj4+ID4KPj4gPiA+ID4gKwo+PiA+ID4gPiArCWlmIChjcnRjICYmIGNydGMtPnN0YXRl LT5hY3RpdmUpIHsKPj4gPiA+ID4gKwkJRFBVX0VWVDMyKERSTUlEKGNydGMpKTsKPj4gPiA+ID4g KwkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7Cj4+ID4gPiA+ICsJfQo+PiA+ID4gPiAr fQo+PiA+ID4gPiArCj4+ID4gPiA+ICtzdGF0aWMgdm9pZCBkcHVfa21zX2NvbW1pdChzdHJ1Y3Qg bXNtX2ttcyAqa21zLCBzdHJ1Y3QKPj4gPiBkcm1fYXRvbWljX3N0YXRlCj4+ID4gPiA+ICpzdGF0 ZSkKPj4gPiA+ID4gIHsKPj4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+ID4gPiA+ IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZTsKPj4gPiA+ID4gKwlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+ID4gPiA+ICsJc3RydWN0IGRwdV9jcnRj X3N0YXRlICpjc3RhdGU7Cj4+ID4gPiA+ICAJaW50IGk7Cj4+ID4gPiA+Cj4+ID4gPiA+IC0JZm9y X2VhY2hfb2xkX2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLAo+IG9sZF9jcnRjX3N0YXRl LCBpKSB7Cj4+ID4gPiA+ICsJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNydGNfc3RhdGUsIGkpIHsKPj4gPiA+ID4gKwkJLyogSWYgbW9kZXNldCBpcyByZXF1aXJlZCwg a2lja29mZiBpcyBydW4gaW4KPj4gPiA+ID4gZW5jb2Rlcl9lbmFibGUgKi8KPj4gPiA+ID4gKwkJ aWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+PiA+ID4gPiAr CQkJY29udGludWU7Cj4+ID4gPiA+ICsKPj4gPiA+ID4gIAkJaWYgKGNydGMtPnN0YXRlLT5hY3Rp dmUpIHsKPj4gPiA+ID4gIAkJCURQVV9FVlQzMihEUk1JRChjcnRjKSk7Cj4+ID4gPiA+ICAJCQlk cHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjKTsKPj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaAo+PiA+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaAo+PiA+ID4gPiBpbmRleCA4Y2FkZDI5YTQ4YjEu LjQyYzgwOWVkOTQ2NyAxMDA2NDQKPj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2ttcy5oCj4+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXMuaAo+PiA+ID4gPiBAQCAtNTI5LDQgKzUyOSw2IEBAIGludCBkcHVfa21z X2Zib19yZWZlcmVuY2Uoc3RydWN0IGRwdV9rbXNfZmJvCj4+ID4gKmZibyk7Cj4+ID4gPiA+ICAg Ki8KPj4gPiA+ID4gIHZvaWQgZHB1X2ttc19mYm9fdW5yZWZlcmVuY2Uoc3RydWN0IGRwdV9rbXNf ZmJvICpmYm8pOwo+PiA+ID4gPgo+PiA+ID4gPiArdm9pZCBkcHVfa21zX2VuY29kZXJfZW5hYmxl KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4+ID4gPiA+ICsKPj4gPiA+ID4gICNlbmRp ZiAvKiBfX2RwdV9rbXNfSF9fICovCj4+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9hdG9taWMuYwo+PiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0 b21pYy5jCj4+ID4gPiA+IGluZGV4IDVjZmI4MDM0NTA1Mi4uZjU3OTRkY2UyNWRkIDEwMDY0NAo+ PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiA+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiA+ID4gPiBAQCAtODQsMTMx ICs4NCw2IEBAIHN0YXRpYyB2b2lkIG1zbV9hdG9taWNfd2FpdF9mb3JfY29tbWl0X2RvbmUoCj4+ ID4gPiA+ICAJfQo+PiA+ID4gPiAgfQo+PiA+ID4gPgo+PiA+ID4gPiAtLyoqCj4+ID4gPiA+IC0g KiBtc21fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzIC0gbW9kZXNldCBjb21t aXQgdG8KPj4gPiBlbmFibGUKPj4gPiA+ID4gb3V0cHV0cwo+PiA+ID4gPiAtICogQGRldjogRFJN IGRldmljZQo+PiA+ID4gPiAtICogQG9sZF9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCB3aXRo IG9sZCBzdGF0ZSBzdHJ1Y3R1cmVzCj4+ID4gPiA+IC0gKgo+PiA+ID4gPiAtICogVGhpcyBmdW5j dGlvbiBlbmFibGVzIGFsbCB0aGUgb3V0cHV0cyB3aXRoIHRoZSBuZXcKPiBjb25maWd1cmF0aW9u Cj4+ID4gPiA+IHdoaWNoCj4+ID4gPiA+IGhhZCB0bwo+PiA+ID4gPiAtICogYmUgdHVybmVkIG9m ZiBmb3IgdGhlIHVwZGF0ZS4KPj4gPiA+ID4gLSAqCj4+ID4gPiA+IC0gKiBGb3IgY29tcGF0aWJp bGl0eSB3aXRoIGxlZ2FjeSBjcnRjIGhlbHBlcnMgdGhpcyBzaG91bGQgYmUKPiBjYWxsZWQKPj4g PiA+ID4gYWZ0ZXIKPj4gPiA+ID4gLSAqIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMo KSwgd2hpY2ggaXMgd2hhdCB0aGUgZGVmYXVsdAo+PiA+IGNvbW1pdAo+PiA+ID4gPiBmdW5jdGlv bgo+PiA+ID4gPiAtICogZG9lcy4gQnV0IGRyaXZlcnMgd2l0aCBkaWZmZXJlbnQgbmVlZHMgY2Fu IGdyb3VwIHRoZSBtb2Rlc2V0Cj4+ID4gY29tbWl0cwo+PiA+ID4gPiB0b2dldGhlcgo+PiA+ID4g PiAtICogYW5kIGRvIHRoZSBwbGFuZSBjb21taXRzIGF0IHRoZSBlbmQuIFRoaXMgaXMgdXNlZnVs IGZvcgo+IGRyaXZlcnMKPj4gPiA+ID4gZG9pbmcKPj4gPiA+ID4gcnVudGltZQo+PiA+ID4gPiAt ICogUE0gc2luY2UgcGxhbmVzIHVwZGF0ZXMgdGhlbiBvbmx5IGhhcHBlbiB3aGVuIHRoZSBDUlRD IGlzCj4gYWN0dWFsbHkKPj4gPiA+ID4gZW5hYmxlZC4KPj4gPiA+ID4gLSAqLwo+PiA+ID4gPiAt c3RhdGljIHZvaWQgbXNtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1 Y3QKPj4gPiBkcm1fZGV2aWNlCj4+ID4gPiA+ICpkZXYsCj4+ID4gPiA+IC0JCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4+ID4gPiA+IC17Cj4+ID4gPiA+IC0Jc3RydWN0IGRy bV9jcnRjICpjcnRjOwo+PiA+ID4gPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNf c3RhdGU7Cj4+ID4gPiA+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsK Pj4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+PiA+ID4gPiAtCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPj4gPiA+ID4gLQlzdHJ1 Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gPiA+ID4gLQlz dHJ1Y3QgbXNtX2ttcyAqa21zID0gcHJpdi0+a21zOwo+PiA+ID4gPiAtCWludCBicmlkZ2VfZW5h YmxlX2NvdW50ID0gMDsKPj4gPiA+ID4gLQlpbnQgaTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCWZv cl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0YywKPiBvbGRfY3J0Y19z dGF0ZSwKPj4gPiA+ID4gLQkJCW5ld19jcnRjX3N0YXRlLCBpKSB7Cj4+ID4gPiA+IC0JCWNvbnN0 IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgKmZ1bmNzOwo+PiA+ID4gPiAtCj4+ID4gPiA+ IC0JCS8qIE5lZWQgdG8gZmlsdGVyIG91dCBDUlRDcyB3aGVyZSBvbmx5IHBsYW5lcwo+IGNoYW5n ZS4gKi8KPj4gPiA+ID4gLQkJaWYKPiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KG5l d19jcnRjX3N0YXRlKSkKPj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+PiA+ID4gPiAtCj4+ID4gPiA+ IC0JCWlmICghbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkKPj4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ PiA+ID4gPiAtCj4+ID4gPiA+IC0JCWlmIChtc21faXNfbW9kZV9zZWFtbGVzcygmbmV3X2NydGNf c3RhdGUtPm1vZGUpIHx8Cj4+ID4gPiA+IC0JCQkJbXNtX2lzX21vZGVfc2VhbWxlc3NfdnJyKAo+ PiA+ID4gPiAtCQkJCSZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpCj4+ID4gPiA+IC0J CQljb250aW51ZTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQlmdW5jcyA9IGNydGMtPmhlbHBlcl9w cml2YXRlOwo+PiA+ID4gPiAtCj4+ID4gPiA+IC0JCWlmIChjcnRjLT5zdGF0ZS0+ZW5hYmxlKSB7 Cj4+ID4gPiA+IC0JCQlEUk1fREVCVUdfQVRPTUlDKCJlbmFibGluZyBbQ1JUQzolZF1cbiIsCj4+ ID4gPiA+IC0JCQkJCSBjcnRjLT5iYXNlLmlkKTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQkJaWYg KGZ1bmNzLT5hdG9taWNfZW5hYmxlKQo+PiA+ID4gPiAtCQkJCWZ1bmNzLT5hdG9taWNfZW5hYmxl KGNydGMsCj4+ID4gPiA+IG9sZF9jcnRjX3N0YXRlKTsKPj4gPiA+ID4gLQkJCWVsc2UKPj4gPiA+ ID4gLQkJCQlmdW5jcy0+Y29tbWl0KGNydGMpOwo+PiA+ID4gPiAtCQl9Cj4+ID4gPiA+IC0KPj4g PiA+ID4gLQkJaWYgKG1zbV9uZWVkc192YmxhbmtfcHJlX21vZGVzZXQoCj4+ID4gPiA+IC0KPiAm bmV3X2NydGNfc3RhdGUtPmFkanVzdGVkX21vZGUpKQo+PiA+ID4gPiAtCQkJZHJtX2NydGNfd2Fp dF9vbmVfdmJsYW5rKGNydGMpOwo+PiA+ID4gPiAtCX0KPj4gPiA+ID4gLQo+PiA+ID4gPiAtCS8q IGVuc3VyZSBicmlkZ2UvZW5jb2RlciB1cGRhdGVzIGhhcHBlbiBvbiBzYW1lIHZibGFuayAqLwo+ PiA+ID4gPiAtCW1zbV9hdG9taWNfd2FpdF9mb3JfY29tbWl0X2RvbmUoZGV2LCBvbGRfc3RhdGUp Owo+PiA+ID4gPiAtCj4+ID4gPiA+IC0JZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShv bGRfc3RhdGUsIGNvbm5lY3RvciwKPj4gPiA+ID4gLQkJCW5ld19jb25uX3N0YXRlLCBpKSB7Cj4+ ID4gPiA+IC0JCWNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmZ1bmNzOwo+ PiA+ID4gPiAtCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4+ID4gPiA+IC0KPj4gPiA+ ID4gLQkJaWYgKCFuZXdfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKQo+PiA+ID4gPiAtCQkJY29u dGludWU7Cj4+ID4gPiA+IC0KPj4gPiA+ID4gLQkJaWYgKCFuZXdfY29ubl9zdGF0ZS0+Y3J0Yy0+ c3RhdGUtPmFjdGl2ZSB8fAo+PiA+ID4gPiAtCQkgICAgIWRybV9hdG9taWNfY3J0Y19uZWVkc19t b2Rlc2V0KAo+PiA+ID4gPiAtCQkJICAgIG5ld19jb25uX3N0YXRlLT5jcnRjLT5zdGF0ZSkpCj4+ ID4gPiA+IC0JCQljb250aW51ZTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQllbmNvZGVyID0gbmV3 X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKPj4gPiA+ID4gLQkJZnVuY3MgPSBlbmNvZGVyLT5o ZWxwZXJfcHJpdmF0ZTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQlEUk1fREVCVUdfQVRPTUlDKCJl bmFibGluZyBbRU5DT0RFUjolZDolc11cbiIsCj4+ID4gPiA+IC0JCQkJIGVuY29kZXItPmJhc2Uu aWQsIGVuY29kZXItPm5hbWUpOwo+PiA+ID4gPiAtCj4+ID4gPiA+IC0JCS8qCj4+ID4gPiA+IC0J CSAqIEVhY2ggZW5jb2RlciBoYXMgYXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZQo+IHdlIGFs d2F5cwo+PiA+ID4gPiBzdGVhbAo+PiA+ID4gPiAtCQkgKiBpdCBhd2F5KSwgc28gd2Ugd29uJ3Qg Y2FsbCBlbmFibGUgaG9va3MgdHdpY2UuCj4+ID4gPiA+IC0JCSAqLwo+PiA+ID4gPiAtCQlkcm1f YnJpZGdlX3ByZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKPj4gPiA+ID4gLQkJKyticmlkZ2Vf ZW5hYmxlX2NvdW50Owo+PiA+ID4gPiAtCj4+ID4gPiA+IC0JCWlmIChmdW5jcy0+ZW5hYmxlKQo+ PiA+ID4gPiAtCQkJZnVuY3MtPmVuYWJsZShlbmNvZGVyKTsKPj4gPiA+ID4gLQkJZWxzZQo+PiA+ ID4gPiAtCQkJZnVuY3MtPmNvbW1pdChlbmNvZGVyKTsKPj4gPiA+ID4gLQl9Cj4+ID4gPiA+IC0K Pj4gPiA+ID4gLQlpZiAoa21zLT5mdW5jcy0+Y29tbWl0KSB7Cj4+ID4gPiA+IC0JCURSTV9ERUJV R19BVE9NSUMoInRyaWdnZXJpbmcgY29tbWl0XG4iKTsKPj4gPiA+ID4gLQkJa21zLT5mdW5jcy0+ Y29tbWl0KGttcywgb2xkX3N0YXRlKTsKPj4gPiA+ID4gLQl9Cj4+ID4gPiA+IC0KPj4gPiA+ID4g LQkvKiBJZiBubyBicmlkZ2VzIHdlcmUgcHJlX2VuYWJsZWQsIHNraXAgaXRlcmF0aW5nIG92ZXIK PiB0aGVtIGFnYWluCj4+ID4gPiA+ICovCj4+ID4gPiA+IC0JaWYgKGJyaWRnZV9lbmFibGVfY291 bnQgPT0gMCkKPj4gPiA+ID4gLQkJcmV0dXJuOwo+PiA+ID4gPiAtCj4+ID4gPiA+IC0JZm9yX2Vh Y2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm5lY3RvciwKPj4gPiA+ID4g LQkJCW5ld19jb25uX3N0YXRlLCBpKSB7Cj4+ID4gPiA+IC0JCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcjsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQlpZiAoIW5ld19jb25uX3N0YXRlLT5iZXN0 X2VuY29kZXIpCj4+ID4gPiA+IC0JCQljb250aW51ZTsKPj4gPiA+ID4gLQo+PiA+ID4gPiAtCQlp ZiAoIW5ld19jb25uX3N0YXRlLT5jcnRjLT5zdGF0ZS0+YWN0aXZlIHx8Cj4+ID4gPiA+IC0JCSAg ICAhZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoCj4+ID4gPiA+IC0JCQkJICAgIG5ld19j b25uX3N0YXRlLT5jcnRjLT5zdGF0ZSkpCj4+ID4gPiA+IC0JCQljb250aW51ZTsKPj4gPiA+ID4g LQo+PiA+ID4gPiAtCQllbmNvZGVyID0gbmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKPj4g PiA+ID4gLQo+PiA+ID4gPiAtCQlEUk1fREVCVUdfQVRPTUlDKCJicmlkZ2UgZW5hYmxlIGVuYWJs aW5nCj4+ID4gPiA+IFtFTkNPREVSOiVkOiVzXVxuIiwKPj4gPiA+ID4gLQkJCQkgZW5jb2Rlci0+ YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7Cj4+ID4gPiA+IC0KPj4gPiA+ID4gLQkJZHJtX2JyaWRn ZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKPj4gPiA+ID4gLQl9Cj4+ID4gPiA+IC19Cj4+ID4g PiA+IC0KPj4gPiA+ID4gIC8qIFRoZSAocG90ZW50aWFsbHkpIGFzeW5jaHJvbm91cyBwYXJ0IG9m IHRoZSBjb21taXQuICBBdCB0aGlzCj4gcG9pbnQKPj4gPiA+ID4gICAqIG5vdGhpbmcgY2FuIGZh aWwgc2hvcnQgb2YgYXJtYWdlZGRvbi4KPj4gPiA+ID4gICAqLwo+PiA+ID4gPiBAQCAtMjI3LDcg KzEwMiwxMiBAQCBzdGF0aWMgdm9pZCBjb21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9jb21taXQK PiAqYykKPj4gPiA+ID4KPj4gPiA+ID4gIAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVz KGRldiwgc3RhdGUsIDApOwo+PiA+ID4gPgo+PiA+ID4gPiAtCW1zbV9hdG9taWNfaGVscGVyX2Nv bW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4+ID4gPiA+ICsJZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhkZXYsIHN0YXRlKTsKPj4gPiA+ID4gKwo+PiA+ ID4gPiArCWlmIChrbXMtPmZ1bmNzLT5jb21taXQpIHsKPj4gPiA+ID4gKwkJRFJNX0RFQlVHX0FU T01JQygidHJpZ2dlcmluZyBjb21taXRcbiIpOwo+PiA+ID4gPiArCQlrbXMtPmZ1bmNzLT5jb21t aXQoa21zLCBzdGF0ZSk7Cj4+ID4gPiA+ICsJfQo+PiA+ID4gPgo+PiA+ID4gPiAgCS8qIE5PVEU6 IF93YWl0X2Zvcl92YmxhbmtzKCkgb25seSB3YWl0cyBmb3IgdmJsYW5rIG9uCj4+ID4gPiA+ICAJ ICogZW5hYmxlZCBDUlRDcy4gIFNvIHdlIGVuZCB1cCBmYXVsdGluZyB3aGVuIGRpc2FibGluZwo+ PiA+ID4KPj4gPiA+IC0tCj4+ID4gPiBKZXlrdW1hciBTCj4+IAo+PiAtLQo+PiBKZXlrdW1hciBT CgotLSAKSmV5a3VtYXIgUwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVl ZHJlbm8K