From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tobias Jakobi Subject: Re: [PATCH v2] drm/exynos: use atomic helper commit Date: Fri, 20 Jan 2017 14:05:55 +0100 Message-ID: <58820B33.8050107@math.uni-bielefeld.de> References: <1484821118-10479-1-git-send-email-inki.dae@samsung.com> <5880B5E8.4000309@math.uni-bielefeld.de> <5881874A.5050506@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5881874A.5050506@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Tobias Jakobi , dri-devel@lists.freedesktop.org Cc: linux-samsung-soc@vger.kernel.org List-Id: linux-samsung-soc@vger.kernel.org SW5raSBEYWUgd3JvdGU6Cj4gSGkgVG9iaWFzLAo+IAo+IDIwMTfrhYQgMDHsm5QgMTnsnbwgMjE6 NDnsl5AgVG9iaWFzIEpha29iaSDsnbQo6rCAKSDsk7Qg6riAOgo+PiBXaGF0IGFib3V0IExhdXJl bnQncyBjb21tZW50IHN0YXRpbmcgdGhhdCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQoKSBpcwo+ PiBicm9rZW4gYXQgdGhlIG1vbWVudD8gU2hvdWxkbid0IHRoZXJlIGJlIHNvbWUga2luZCBvZiB3 YXJuaW5nIGluIHRoZQo+PiBjb21taXQgbWVzc2FnZSB0aGF0IHRoaXMgcGF0Y2ggaXMgb25seSBz YWZlIHRvIGFwcGx5IG9uY2UgdGhlIGZpeGVzIGZvcgo+PiBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXQoKSBoYXZlIGxhbmRlZD8gSSdtIGFscmVhZHkgc2VlaW5nIHRoaXMgZ2V0dGluZwo+PiBtZXJn ZWQgYnkgYWNjaWRlbnQsIHdpdGhvdXQgTWFhcnRlbidzIHNlcmllcyBldmVuIGJlaW5nIHJldmll d2VkLgo+IAo+IFdoYXQgcGF0Y2hlcyB5b3UgbWVhbj8KVGhlIHBhdGNoc2V0IHRoYXQgTGF1cmVu dCBtZW50aW9uZWQuCltQQVRDSCB2MyAwLzddIGRybS9hdG9taWM6IEFkZCBhY2Nlc3NvciBtYWNy b3MgZm9yIGFsbCBhdG9taWMgc3RhdGUuCmh0dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2Ry aS1kZXZlbC9tc2cxMjk1MzcuaHRtbAoKCj4gQWNjb3JkaW5nIHRvIExhdXJlbnQncyBjb21tZW50 LCBhc3luYyBjb21taXQgc3VwcG9ydCBvZiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQgaXMgc3Vi ZWN0IHRvIGEgcmFjZSBjb25kaXRpb24uCj4gU28gSSdtIGNoZWNraW5nIHdoZXRoZXIgdGhlcmUg aXMgYW55IGNhc2UgdG8gdXNlIGFzeW5jIGNvbW1pdCBpbiBFeHlub3MgRFJNIGRyaXZlci4KSSdt IG5vdCBzdXJlIHdoYXQgeW91J3JlIGV4YWN0bHkgY2hlY2tpbmcgaGVyZSwgYmVjYXVzZSBpdCBp cyB1c2Vyc3BhY2UKdGhhdCByZXF1ZXN0cyBhIGF0b21pYyBjb21taXQgdG8gYmUgZXhlY3V0ZWQg YXN5bmNocm9ub3VzbHkuCgoKPiBBcyBvZiBub3csIEkgZG9uJ3Qgc2VlIGFueSBjYXNlLiBldmVu IHdpdGhvdXQgTWFhcnRlbidzIHBhdGNoIHNldCwgaXQgd29ya3Mgd2VsbCAtIGFjdHVhbGx5LCBJ IGhhZCBhIHRlc3Qgd2l0aCBhdG9taWMgdGVzdCBhcHAgbW9yZSB0aGFuIDEwIGhvdXJzLi4KQ2Fu IHlvdSBwcm92aWRlIHRoaXMgdGVzdCBhcHBsaWNhdGlvbj8gSW4gcGFydGljdWxhciBJJ20gYXNr aW5nIHRoaXMKYmVjYXVzZSBsaWJkcm0gY3VycmVudGx5IGRvZXNuJ3QgcHJvdmlkZSBhbnkgdGVz dHMgdXNpbmcgdGhlIGF0b21pYyBBUEkuClNvIHRoaXMgYXBwbGljYXRpb24gbWlnaHQgYmUgb2Yg aW50ZXJlc3QgYWxzbyBmb3Igb3RoZXIgcGVvcGxlLgoKCj4gQW5kIGltcG9ydGFudCB0aGluZyBp cyB0aGF0IHRoaXMgcG9zdGluZyBpcyBqdXN0IGZvciByZXZpZXcgbm90IG1lcmdlLgpJbiB0aGlz IGNhc2UgdGhlIHBhdGNoZXMgc2hvdWxkIGJlIHRhZ2dlZCBhcyAnUkZDJywgc29tZXRoaW5nIHdo aWNoIEkKZG9uJ3Qgc2VlIGhlcmUuCgoKPiBTbyBpZiB0aGVyZSBpcyBhbnkgY3JpdGljYWwgcHJv YmxlbSB3aXRoIHRoaXMgcGF0Y2gsIEkgd2lsbCBzdG9wIHRvIG1lcmdlIGl0LiBUaGlzIHdvdWxk IGJlIG15IHJvbGUsIG1haW50YWluZXIuCkxldCBtZSBwaHJhc2UgaXQgdGhpcyB3YXkuIFlvdXIg cGF0Y2ggaXMgbm90IGZpeGluZyBhIGJ1ZywgaXQgaXMgYQpjbGVhbnVwIHBhdGNoIHRoYXQgcmVk dWNlcyBkcml2ZXIgc3BlY2lmaWMgY29kZSB3aXRoIERSTSBjb3JlIGNvZGUuIEJ1dAphcyBMYXVy ZW50IGhhcyBwb2ludGVkIG91dCB0aGlzIGNvcmUgY29kZSBjdXJyZW50bHkgaGFzIHNvbWUga25v d24gKCEpCmlzc3Vlcy4gSW4gdGhlIGludGVyZXN0IG9mIG5vdCBicmVha2luZyBhbnl0aGluZyBJ IHdvdWxkIGFkdmlzZSBhZ2FpbnN0Cm1lcmdpbmcgdGhpcyBiZWZvcmUgTWFhcnRlbidzIHBhdGNo ZXMgaGF2ZSBsYW5kZWQuCgoKV2l0aCBiZXN0IHdpc2hlcywKVG9iaWFzCgoKPiAKPiBUaGFua3Mu Cj4gCj4+Cj4+IFRoZSBjb21taXQgbWVzc2FnZSBsb29rcyBtdWNoIGJldHRlciBub3cuIFN0aWxs IHNvbWUgc3BlbGxpbmcgaXNzdWVzIHJlbWFpbjoKPj4gaW1wbGVtZW50aW9uIC0+IGltcGxlbWVu dGF0aW9uCj4+Cj4+Cj4+IFdpdGggYmVzdCB3aXNoZXMsCj4+IFRvYmlhcwo+Pgo+Pgo+PiBJbmtp IERhZSB3cm90ZToKPj4+IFRoaXMgcGF0Y2ggcmVwbGFjZXMgc3BlY2lmaWMgYXRvbWljIGNvbW1p dCBmdW5jdGlvbgo+Pj4gd2l0aCBhdG9taWMgaGVscGVyIGNvbW1pdCBvbmUuCj4+Pgo+Pj4gRm9y IHRoaXMsIGl0IHJlbW92ZXMgZXhpc3RpbmcgYXRvbWljIGNvbW1pdCBmdW5jdGlvbgo+Pj4gYW5k IHJlbGV2YW50IGNvZGUgc3BlY2lmaWMgdG8gRXh5bm9zIERSTSBhbmQgbWFrZXMKPj4+IGF0b21p YyBoZWxwZXIgY29tbWl0IHRvIGJlIHVzZWQgaW5zdGVhZC4KPj4+Cj4+PiBCZWxvdyBhcmUgY2hh bmdlcyBmb3IgdGhlIHVzZSBvZiBhdG9taWMgaGVscGVyIGNvbW1pdDoKPj4+IC0gYWRkIGF0b21p Y19jb21taXRfdGFpbCBjYWxsYmFjayBzcGVjaWZpYyB0byBFeHlub3MgRFJNCj4+PiAgIC4gZGVm YXVsdCBpbXBsZW1lbnRpb24gb2YgYXRvbWljIGhlbHBlciBkb2Vzbid0IG1lc2ggd2VsbAo+Pj4g ICAgIHdpdGggcnVudGltZSBQTSBzbyB0aGUgZGV2aWNlIGRyaXZlciB3aGljaCBzdXBwb3J0cyBy dW50aW1lCj4+PiAgICAgUE0gc2hvdWxkIGNhbGwgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21v ZGVzZXRfZW5hYmxlcyBmdW5jdGlvbgo+Pj4gICAgIHByaW9yIHRvIGRybV9hdG9taWNfaGVscGVy X2NvbW1pdF9wbGFuZXMgZnVuY3Rpb24gY2FsbC4KPj4+ICAgICBhdG9taWNfY29tbWl0X3RhaWwg Y2FsbGJhY2sgaW1wbGVtZW50cyB0aGlzIGNhbGwgb3JkZXJpbmcuCj4+PiAtIGFsbG93IHBsYW5l IGNvbW1pdCBvbmx5IGluIGNhc2UgdGhhdCBDUlRDIGRldmljZSBpcyBlbmFibGVkLgo+Pj4gICAu IGZvciB0aGlzLCBpdCBjYWxscyBhdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMgZnVuY3Rpb24K Pj4+ICAgICB3aXRoIERSTV9QTEFORV9DT01NSVRfQUNUSVZFX09OTFkgZmxhZyBpbiBhdG9taWNf Y29tbWl0X3RhaWwgY2FsbGJhY2suCj4+Pgo+Pj4gQ2hhbmdlbG9nIHYxOgo+Pj4gLSBmaXggY29t bWVudAo+Pj4gLSBmaXggdHJpdmlhbCB0aGluZ3MKPj4+IC0gcmV2aXZlIGV4aXN0aW5nIGNvbW1l bnQgd2hpY2ggZXhwbGFpbnMgd2h5IHBsYW5lIGNvbW1pdCBzaG91bGQgYmUKPj4+ICAgY2FsbGVk IGFmdGVyIGNydGMgYW5kIGVuY29kZXIgZGV2aWNlIGFyZSBlbmFibGVkLgo+Pj4KPj4+IFNpZ25l ZC1vZmYtYnk6IElua2kgRGFlIDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KPj4+IFJldmlld2VkLWJ5 OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY29tPgo+Pj4gLS0t Cj4+PiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuYyB8ICAxMCArKy0K Pj4+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMgIHwgMTA5IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZmIuYyAgIHwgIDMyICsrKysrKysrLQo+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgNDAg aW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2NydGMuYwo+Pj4gaW5kZXggMjUzMGJmNS4uOGYxM2JjZSAxMDA2NDQK Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMKPj4+IEBAIC0zOSw2 ICszOSwxNCBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHJtX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4+PiAgCj4+PiAgCWlmIChleHlub3NfY3J0Yy0+b3BzLT5kaXNhYmxlKQo+ Pj4gIAkJZXh5bm9zX2NydGMtPm9wcy0+ZGlzYWJsZShleHlub3NfY3J0Yyk7Cj4+PiArCj4+PiAr CWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQgJiYgIWNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPj4+ICsJ CXNwaW5fbG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7Cj4+PiArCQlkcm1fY3J0Y19z ZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOwo+Pj4gKwkJc3Bpbl91 bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwo+Pj4gKwo+Pj4gKwkJY3J0Yy0+c3Rh dGUtPmV2ZW50ID1VTEw7Cj4+PiArCX0KPj4+ICB9Cj4+PiAgCj4+PiAgc3RhdGljIHZvaWQKPj4+ IEBAIC05NCw5ICsxMDIsOSBAQCBzdGF0aWMgdm9pZCBleHlub3NfY3J0Y19hdG9taWNfZmx1c2go c3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4gIAkJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50 KGNydGMsIGV2ZW50KTsKPj4+ICAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ ZXZlbnRfbG9jaywgZmxhZ3MpOwo+Pj4gIAl9Cj4+PiAtCj4+PiAgfQo+Pj4gIAo+Pj4gKwo+Pj4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIGV4eW5vc19jcnRjX2hl bHBlcl9mdW5jcyA9Cj4+PiAgCS5lbmFibGUJCT0geHlub3NfZHJtX2NydGNfZW5hYmxlLAo+Pj4g IAkuZGlzYWJsZQk9eHlub3NfZHJtX2NydGNfZGlzYWJsZSwKPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZHJ2LmMKPj4+IGluZGV4IDNlYzA1MzUuLmM4ZjNlZWIgMTAwNjQ0Cj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMKPj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuYwo+Pj4gQEAgLTM4LDU2ICsz OCw2IEBACj4+PiAgI2RlZmluZSBEUklWRVJfTUFKT1IJMQo+Pj4gICNkZWZpbmUgRFJJVkVSX01J Tk9SCTAKPj4+ICAKPj4+IC1zdHJ1Y3QgZXh5bm9zX2F0b21pY19jb21taXQgewo+Pj4gLQlzdHJ1 Y3Qgd29ya19zdHJ1Y3QJd29yazsKPj4+IC0Jc3RydWN0IGRybV9kZXZpY2UJKmRldjsKPj4+IC0J c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+Pj4gLQl1MzIJCQljcnRjczsKPj4+IC19 Owo+Pj4gLQo+Pj4gLXN0YXRpYyB2b2lkIGV4eW5vc19hdG9taWNfY29tbWl0X2NvbXBsZXRlKHN0 cnVjdCBleHlub3NfYXRvbWljX2NvbW1pdCAqY29tbWl0KQo+Pj4gLXsKPj4+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9b21taXQtPmRldjsKPj4+IC0Jc3RydWN0IGV4eW5vc19kcm1fcHJpdmF0 ZSAqcHJpdiA9ZXYtPmRldl9wcml2YXRlOwo+Pj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUgPW9tbWl0LT5zdGF0ZTsKPj4+IC0KPj4+IC0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0 X21vZGVzZXRfZGlzYWJsZXMoZGV2LCBzdGF0ZSk7Cj4+PiAtCj4+PiAtCWRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4+PiAtCj4+PiAtCS8qCj4+ PiAtCSAqIEV4eW5vcyBjYW4ndCB1cGRhdGUgcGxhbmVzIHdpdGggQ1JUQ3MgYW5kIGVuY29kZXJz IGRpc2FibGVkLAo+Pj4gLQkgKiBpdHMgdXBkYXRlcyByb3V0aW5lcywgc3BlY2lhbGx5IGZvciBG SU1ELCByZXF1aXJlcyB0aGUgY2xvY2tzCj4+PiAtCSAqIHRvIGJlIGVuYWJsZWQuIFNvIGl0IGlz IG5lY2Vzc2FyeSB0byBoYW5kbGUgdGhlIG1vZGVzZXQgb3BlcmF0aW9ucwo+Pj4gLQkgKiAqYmVm b3JlKiB0aGUgY29tbWl0X3BsYW5lcygpIHN0ZXAsIHRoaXMgd2F5IGl0IHdpbGwgYWx3YXlzCj4+ PiAtCSAqIGhhdmUgdGhlIHJlbGV2YW50IGNsb2NrcyBlbmFibGVkIHRvIHBlcmZvcm0gdGhlIHVw ZGF0ZS4KPj4+IC0JICovCj4+PiAtCj4+PiAtCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFu ZXMoZGV2LCBzdGF0ZSwgMCk7Cj4+PiAtCj4+PiAtCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9y X3ZibGFua3MoZGV2LCBzdGF0ZSk7Cj4+PiAtCj4+PiAtCWRybV9hdG9taWNfaGVscGVyX2NsZWFu dXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+Pj4gLQo+Pj4gLQlkcm1fYXRvbWljX3N0YXRlX3B1dChz dGF0ZSk7Cj4+PiAtCj4+PiAtCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7Cj4+PiAtCXByaXYtPnBl bmRpbmcgJj1jb21taXQtPmNydGNzOwo+Pj4gLQlzcGluX3VubG9jaygmcHJpdi0+bG9jayk7Cj4+ PiAtCj4+PiAtCXdha2VfdXBfYWxsKCZwcml2LT53YWl0KTsKPj4+IC0KPj4+IC0Ja2ZyZWUoY29t bWl0KTsKPj4+IC19Cj4+PiAtCj4+PiAtc3RhdGljIHZvaWQgZXh5bm9zX2RybV9hdG9taWNfd29y ayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+PiAtewo+Pj4gLQlzdHJ1Y3QgZXh5bm9zX2F0 b21pY19jb21taXQgKmNvbW1pdCA9b250YWluZXJfb2Yod29yaywKPj4+IC0JCQkJc3RydWN0IGV4 eW5vc19hdG9taWNfY29tbWl0LCB3b3JrKTsKPj4+IC0KPj4+IC0JZXh5bm9zX2F0b21pY19jb21t aXRfY29tcGxldGUoY29tbWl0KTsKPj4+IC19Cj4+PiAtCj4+PiAgc3RhdGljIHN0cnVjdCBkZXZp Y2UgKmV4eW5vc19kcm1fZ2V0X2RtYV9kZXZpY2Uodm9pZCk7Cj4+PiAgCj4+PiAgc3RhdGljIGlu dCBleHlub3NfZHJtX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBm bGFncykKPj4+IEBAIC0yMDIsNjUgKzE1Miw2IEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kcm1fdW5s b2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+PiAgCWRldi0+ZGV2X3ByaXZhdGUgPVVMTDsK Pj4+ICB9Cj4+PiAgCj4+PiAtc3RhdGljIGludCBjb21taXRfaXNfcGVuZGluZyhzdHJ1Y3QgZXh5 bm9zX2RybV9wcml2YXRlICpwcml2LCB1MzIgY3J0Y3MpCj4+PiAtewo+Pj4gLQlib29sIHBlbmRp bmc7Cj4+PiAtCj4+PiAtCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7Cj4+PiAtCXBlbmRpbmcgPXJp di0+cGVuZGluZyAmIGNydGNzOwo+Pj4gLQlzcGluX3VubG9jaygmcHJpdi0+bG9jayk7Cj4+PiAt Cj4+PiAtCXJldHVybiBwZW5kaW5nOwo+Pj4gLX0KPj4+IC0KPj4+IC1pbnQgZXh5bm9zX2F0b21p Y19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlLAo+Pj4gLQkJCSBib29sIG5vbmJsb2NrKQo+Pj4gLXsKPj4+IC0Jc3RydWN0IGV4eW5v c19kcm1fcHJpdmF0ZSAqcHJpdiA9ZXYtPmRldl9wcml2YXRlOwo+Pj4gLQlzdHJ1Y3QgZXh5bm9z X2F0b21pY19jb21taXQgKmNvbW1pdDsKPj4+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+Pj4g LQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+PiAtCWludCBpLCByZXQ7Cj4+ PiAtCj4+PiAtCWNvbW1pdCA9emFsbG9jKHNpemVvZigqY29tbWl0KSwgR0ZQX0tFUk5FTCk7Cj4+ PiAtCWlmICghY29tbWl0KQo+Pj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4+PiAtCj4+PiAtCXJldCA9 cm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhkZXYsIHN0YXRlKTsKPj4+IC0JaWYgKHJl dCkgewo+Pj4gLQkJa2ZyZWUoY29tbWl0KTsKPj4+IC0JCXJldHVybiByZXQ7Cj4+PiAtCX0KPj4+ IC0KPj4+IC0JLyogVGhpcyBpcyB0aGUgcG9pbnQgb2Ygbm8gcmV0dXJuICovCj4+PiAtCj4+PiAt CUlOSVRfV09SSygmY29tbWl0LT53b3JrLCBleHlub3NfZHJtX2F0b21pY193b3JrKTsKPj4+IC0J Y29tbWl0LT5kZXYgPWV2Owo+Pj4gLQljb21taXQtPnN0YXRlID10YXRlOwo+Pj4gLQo+Pj4gLQkv KiBXYWl0IHVudGlsIGFsbCBhZmZlY3RlZCBDUlRDcyBoYXZlIGNvbXBsZXRlZCBwcmV2aW91cyBj b21taXRzIGFuZAo+Pj4gLQkgKiBtYXJrIHRoZW0gYXMgcGVuZGluZy4KPj4+IC0JICovCj4+PiAt CWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCj4+PiAt CQljb21taXQtPmNydGNzIHw9cm1fY3J0Y19tYXNrKGNydGMpOwo+Pj4gLQo+Pj4gLQl3YWl0X2V2 ZW50KHByaXYtPndhaXQsICFjb21taXRfaXNfcGVuZGluZyhwcml2LCBjb21taXQtPmNydGNzKSk7 Cj4+PiAtCj4+PiAtCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7Cj4+PiAtCXByaXYtPnBlbmRpbmcg fD1vbW1pdC0+Y3J0Y3M7Cj4+PiAtCXNwaW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKPj4+IC0KPj4+ IC0JZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwgdHJ1ZSk7Cj4+PiAtCj4+PiAt CWRybV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKPj4+IC0JaWYgKG5vbmJsb2NrKQo+Pj4gLQkJ c2NoZWR1bGVfd29yaygmY29tbWl0LT53b3JrKTsKPj4+IC0JZWxzZQo+Pj4gLQkJZXh5bm9zX2F0 b21pY19jb21taXRfY29tcGxldGUoY29tbWl0KTsKPj4+IC0KPj4+IC0JcmV0dXJuIDA7Cj4+PiAt fQo+Pj4gLQo+Pj4gIGludCBleHlub3NfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4+PiAgCQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+Pj4gIHsKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmIuYyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYi5jCj4+PiBpbmRleCA2OGQ0MTQyLi5jNzdh NWFjIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Zi LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYi5jCj4+PiBA QCAtMTg3LDExICsxODcsNDAgQEAgZG1hX2FkZHJfdCBleHlub3NfZHJtX2ZiX2RtYV9hZGRyKHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgaW5kZXgpCj4+PiAgCXJldHVybiBleHlub3Nf ZmItPmRtYV9hZGRyW2luZGV4XTsKPj4+ICB9Cj4+PiAgCj4+PiArc3RhdGljIHZvaWQgZXh5bm9z X2RybV9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ Pj4gK3sKPj4+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9dGF0ZS0+ZGV2Owo+Pj4gKwo+Pj4g Kwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIHN0YXRlKTsK Pj4+ICsKPj4+ICsJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhkZXYs IHN0YXRlKTsKPj4+ICsKPj4+ICsJLyoKPj4+ICsJICogRXh5bm9zIGNhbid0IHVwZGF0ZSBwbGFu ZXMgd2l0aCBDUlRDcyBhbmQgZW5jb2RlcnMgZGlzYWJsZWQsCj4+PiArCSAqIGl0cyB1cGRhdGVz IHJvdXRpbmVzLCBzcGVjaWFsbHkgZm9yIEZJTUQsIHJlcXVpcmVzIHRoZSBjbG9ja3MKPj4+ICsJ ICogdG8gYmUgZW5hYmxlZC4gU28gaXQgaXMgbmVjZXNzYXJ5IHRvIGhhbmRsZSB0aGUgbW9kZXNl dCBvcGVyYXRpb25zCj4+PiArCSAqICpiZWZvcmUqIHRoZSBjb21taXRfcGxhbmVzKCkgc3RlcCwg dGhpcyB3YXkgaXQgd2lsbCBhbHdheXMKPj4+ICsJICogaGF2ZSB0aGUgcmVsZXZhbnQgY2xvY2tz IGVuYWJsZWQgdG8gcGVyZm9ybSB0aGUgdXBkYXRlLgo+Pj4gKwkgKi8KPj4+ICsJZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlLAo+Pj4gKwkJCQkJRFJNX1BMQU5FX0NP TU1JVF9BQ1RJVkVfT05MWSk7Cj4+PiArCj4+PiArCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9o d19kb25lKHN0YXRlKTsKPj4+ICsKPj4+ICsJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJs YW5rcyhkZXYsIHN0YXRlKTsKPj4+ICsKPj4+ICsJZHJtX2F0b21pY19oZWxwZXJfY2xlYW51cF9w bGFuZXMoZGV2LCBzdGF0ZSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX21v ZGVfY29uZmlnX2hlbHBlcl9mdW5jcyBleHlub3NfZHJtX21vZGVfY29uZmlnX2hlbHBlcnMgPQo+ Pj4gKwkuYXRvbWljX2NvbW1pdF90YWlsID0geHlub3NfZHJtX2F0b21pY19jb21taXRfdGFpbCwK Pj4+ICt9Owo+Pj4gKwo+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1 bmNzIGV4eW5vc19kcm1fbW9kZV9jb25maWdfZnVuY3MgPQo+Pj4gIAkuZmJfY3JlYXRlID0geHlu b3NfdXNlcl9mYl9jcmVhdGUsCj4+PiAgCS5vdXRwdXRfcG9sbF9jaGFuZ2VkID14eW5vc19kcm1f b3V0cHV0X3BvbGxfY2hhbmdlZCwKPj4+ICAJLmF0b21pY19jaGVjayA9eHlub3NfYXRvbWljX2No ZWNrLAo+Pj4gLQkuYXRvbWljX2NvbW1pdCA9eHlub3NfYXRvbWljX2NvbW1pdCwKPj4+ICsJLmF0 b21pY19jb21taXQgPXJtX2F0b21pY19oZWxwZXJfY29tbWl0LAo+Pj4gIH07Cj4+PiAgCj4+PiAg dm9pZCBleHlub3NfZHJtX21vZGVfY29uZmlnX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK Pj4+IEBAIC0yMDgsNCArMjM3LDUgQEAgdm9pZCBleHlub3NfZHJtX21vZGVfY29uZmlnX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+ICAJZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0 ID0wOTY7Cj4+PiAgCj4+PiAgCWRldi0+bW9kZV9jb25maWcuZnVuY3MgPWV4eW5vc19kcm1fbW9k ZV9jb25maWdfZnVuY3M7Cj4+PiArCWRldi0+bW9kZV9jb25maWcuaGVscGVyX3ByaXZhdGUgPWV4 eW5vc19kcm1fbW9kZV9jb25maWdfaGVscGVyczsKPj4+ICB9Cj4+Pgo+Pgo+PiAtLQo+PiBUbyB1 bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGlu dXgtc2Ftc3VuZy1zb2MiIGluCj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9A dmdlci5rZXJuZWwub3JnCj4+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtl cm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo+Pgo+Pgo+IC0tCj4gVG8gdW5zdWJzY3JpYmUg ZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXNhbXN1bmct c29jIiBpbgo+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwu b3JnCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpv cmRvbW8taW5mby5odG1sCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK