From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: Re: [PATCH RESEND 1/6] drm/atomic: initial support for asynchronous plane update Date: Mon, 12 Jun 2017 11:28:17 +0900 Message-ID: <20170612022817.GA1362@jade> References: <20170525195144.18134-1-gustavo@padovan.org> <20170525195144.18134-2-gustavo@padovan.org> <87fufkcz4s.fsf@eliezer.anholt.net> <20170601022401.GB12182@jade> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170601022401.GB12182@jade> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Eric Anholt Cc: Gustavo Padovan , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org MjAxNy0wNi0wMSBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm9AcGFkb3Zhbi5vcmc+OgoKPiAyMDE3 LTA1LTMxIEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Ogo+IAo+ID4gR3VzdGF2byBQYWRv dmFuIDxndXN0YXZvQHBhZG92YW4ub3JnPiB3cml0ZXM6Cj4gPiAKPiA+ID4gRnJvbTogR3VzdGF2 byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvbT4KPiA+ID4KPiA+ID4gSW4g c29tZSBjYXNlcywgbGlrZSBjdXJzb3IgdXBkYXRlcywgaXQgaXMgaW50ZXJlc3RpbmcgdG8gdXBk YXRlIHRoZQo+ID4gPiBwbGFuZSBpbiBhbiBhc3luY2hyb25vdXMgZmFzaGlvbiB0byBhdm9pZCBi aWcgZGVsYXlzLiBUaGUgY3VycmVudCBxdWV1ZWQKPiA+ID4gdXBkYXRlIGNvdWxkIGJlIHN0aWxs IHdhaXRpbmcgZm9yIGEgZmVuY2UgdG8gc2lnbmFsIGFuZCB0aHVzIGJsb2NrIGFueQo+ID4gPiBz dWJzZXF1ZW50IHVwZGF0ZSB1bnRpbCBpdHMgc2NhbiBvdXQuIEluIGNhc2VzIGxpa2UgdGhpcyBp ZiB3ZSB1cGRhdGUgdGhlCj4gPiA+IGN1cnNvciBzeW5jaHJvbm91c2x5IHRocm91Z2ggdGhlIGF0 b21pYyBBUEkgaXQgd2lsbCBjYXVzZSBzaWduaWZpY2FudAo+ID4gPiBkZWxheXMgdGhhdCB3b3Vs ZCBldmVuIGJlIG5vdGljZWQgYnkgdGhlIGZpbmFsIHVzZXIuCj4gPiA+Cj4gPiA+IFRoaXMgcGF0 Y2ggY3JlYXRlcyBhIGZhc3QgcGF0aCB0byBqdW1wIGFoZWFkIHRoZSBjdXJyZW50IHF1ZXVlZCBz dGF0ZSBhbmQKPiA+ID4gZG8gc2luZ2xlIHBsYW5lcyB1cGRhdGVzIHdpdGhvdXQgZ29pbmcgdGhy b3VnaCBhbGwgYXRvbWljIHN0ZXBzIGluCj4gPiA+IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCgp LiBXZSB0YWtlIHRoaXMgcGF0aCBmb3IgbGVnYWN5IGN1cnNvciB1cGRhdGVzLgo+ID4gPgo+ID4g PiBGb3Igbm93IG9ubHkgc2luZ2xlIHBsYW5lIHVwZGF0ZXMgYXJlIHN1cHBvcnRlZCwgYnV0IHdl IHBsYW4gdG8gc3VwcG9ydAo+ID4gPiBtdWx0aXBsZSBwbGFuZXMgdXBkYXRlcyBhbmQgYXN5bmMg UGFnZUZsaXBzIHRocm91Z2ggdGhpcyBpbnRlcmZhY2UgYXMgd2VsbAo+ID4gPiBpbiB0aGUgbmVh ciBmdXR1cmUuCj4gPiAKPiA+IFNvcnJ5IGZvciB0YWtpbmcgc28gbG9uZyB0byBkbyBzb21lIHJl dmlldyBmb3IgdGhpcy4KPiA+IAo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMgICAgICAgICAgICAgfCA2NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICB8IDM1ICsr KysrKysrKysrKysrKysrCj4gPiA+ICBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAg ICAgICAgIHwgIDIgKwo+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAgICAg ICAgICB8ICAyICsKPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVz LmggfCA0OCArKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAx NTIgaW5zZXJ0aW9ucygrKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gaW5kZXgg YmU2Mjc3NC4uMmEwYzI5NyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiA+IEBA IC02MzEsNiArNjMxLDY4IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jcnRjX2NoZWNrKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gIH0KPiA+ID4gIAo+ID4g PiArc3RhdGljIGJvb2wgZHJtX2F0b21pY19hc3luY19jaGVjayhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4g PiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ID4gKwlzdHJ1Y3QgZHJt X2NydGNfY29tbWl0ICpjb21taXQ7Cj4gPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqX19wbGFuZSwg KnBsYW5lID0gTlVMTDsKPiA+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpfX3BsYW5lX3N0 YXRlLCAqcGxhbmVfc3RhdGUgPSBOVUxMOwo+ID4gPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf aGVscGVyX2Z1bmNzICpmdW5jczsKPiA+ID4gKwlpbnQgaSwgaiwgbl9wbGFuZXMgPSAwOwo+ID4g PiArCj4gPiA+ICsJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNf c3RhdGUsIGkpIHsKPiA+ID4gKwkJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNy dGNfc3RhdGUpKQo+ID4gPiArCQkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4g PiArCWZvcl9lYWNoX25ld19wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgX19wbGFuZSwgX19wbGFuZV9z dGF0ZSwgaSkgewo+ID4gPiArCQluX3BsYW5lcysrOwo+ID4gPiArCQlwbGFuZSA9IF9fcGxhbmU7 Cj4gPiA+ICsJCXBsYW5lX3N0YXRlID0gX19wbGFuZV9zdGF0ZTsKPiA+ID4gKwl9Cj4gPiA+ICsK PiA+ID4gKwkvKiBGSVhNRTogd2Ugc3VwcG9ydCBvbmx5IHNpbmdsZSBwbGFuZSB1cGRhdGVzIGZv ciBub3cgKi8KPiA+ID4gKwlpZiAoIXBsYW5lIHx8IG5fcGxhbmVzICE9IDEpCj4gPiA+ICsJCXJl dHVybiBmYWxzZTsKPiA+ID4gKwo+ID4gPiArCWlmICghcGxhbmVfc3RhdGUtPmNydGMpCj4gPiA+ ICsJCXJldHVybiBmYWxzZTsKPiA+ID4gKwo+ID4gPiArCWZ1bmNzID0gcGxhbmUtPmhlbHBlcl9w cml2YXRlOwo+ID4gPiArCWlmICghZnVuY3MtPmF0b21pY19hc3luY191cGRhdGUpCj4gPiA+ICsJ CXJldHVybiBmYWxzZTsKPiA+ID4gKwo+ID4gPiArCWlmIChwbGFuZV9zdGF0ZS0+ZmVuY2UpCj4g PiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ID4gKwo+ID4gCj4gPiBDb3VsZCB5b3UgYWRkIGEgY29t bWVudCBoZXJlIGxpa2U6Cj4gPiAKPiA+IC8qIERvbid0IGRvIGFuIGFzeW5jIHVwZGF0ZSBpZiB0 aGVyZSBpcyBhbiBvdXRzdGFuZGluZyBjb21taXQgbW9kaWZ5aW5nCj4gPiAgKiB0aGUgcGxhbmUu ICBUaGlzIHByZXZlbnRzIG91ciBhc3luYyB1cGRhdGUncyBjaGFuZ2VzIGZyb20gZ2V0dGluZwo+ ID4gICogb3ZlcnJpZGRlbiBieSBhIHByZXZpb3VzIHN5bmNocm9ub3VzIHVwZGF0ZSdzIHN0YXRl Lgo+ID4gICovCj4gPiAKPiA+IChhc3N1bWluZyBJIHVuZGVyc3RhbmQgaXRzIGludGVudCBjb3Jy ZWN0bHkpCj4gPiAKPiA+IEkgZG9uJ3QgdW5kZXJzdGFuZCBLTVMgbG9ja2luZyBlbm91Z2ggdG8g c2F5IGlmIHRoaXMgbG9vcCBpcyBhY3R1YWxseQo+ID4gc2FmZWx5IGd1YXJhbnRlZWluZyB0aGF0 LiAgSWYgeW91J3JlIGNvbnZpbmNlZCBvZiB0aGF0LCB0aGVuIHdpdGggbXkKPiA+IGxpdHRsZSBj bGVhbnVwcyB0aGlzIHBhdGNoIHdpbGwgYmU6Cj4gCj4gSSdtIGdvaW5nIHRvIGNoZWNrIHRoZSBs b2NraW5nIGFnYWluIGp1c3QgdG8gbWFrZSBzdXJlLgo+IAo+ID4gCj4gPiBBY2tlZC1ieTogRXJp YyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KPiA+IAo+ID4gPiArCWZvcl9lYWNoX25ld19jcnRj X2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gPiA+ICsJCWlmIChwbGFu ZS0+Y3J0YyAhPSBjcnRjKQo+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ICsKPiA+ID4gKwkJc3Bp bl9sb2NrKCZjcnRjLT5jb21taXRfbG9jayk7Cj4gPiA+ICsJCWNvbW1pdCA9IGxpc3RfZmlyc3Rf ZW50cnlfb3JfbnVsbCgmY3J0Yy0+Y29tbWl0X2xpc3QsCj4gPiA+ICsJCQkJCQkgIHN0cnVjdCBk cm1fY3J0Y19jb21taXQsCj4gPiA+ICsJCQkJCQkgIGNvbW1pdF9lbnRyeSk7Cj4gPiA+ICsJCWlm ICghY29tbWl0KSB7Cj4gPiA+ICsJCQlzcGluX3VubG9jaygmY3J0Yy0+Y29tbWl0X2xvY2spOwo+ ID4gPiArCQkJY29udGludWU7Cj4gPiA+ICsJCX0KPiA+ID4gKwkJc3Bpbl91bmxvY2soJmNydGMt PmNvbW1pdF9sb2NrKTsKPiA+ID4gKwo+ID4gPiArCQlpZiAoIWNydGMtPnN0YXRlLT5zdGF0ZSkK PiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWZvcl9lYWNoX3BsYW5lX2luX3N0 YXRlKGNydGMtPnN0YXRlLT5zdGF0ZSwgX19wbGFuZSwKPiA+ID4gKwkJCQkJX19wbGFuZV9zdGF0 ZSwgaikgewo+ID4gPiArCQkJaWYgKF9fcGxhbmUgPT0gcGxhbmUpCj4gPiA+ICsJCQkJcmV0dXJu IGZhbHNlOwo+ID4gPiArCQl9Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcmV0dXJuICFmdW5j cy0+YXRvbWljX2FzeW5jX2NoZWNrKHBsYW5lLCBwbGFuZV9zdGF0ZSk7Cj4gPiA+ICt9Cj4gPiA+ ICsKPiA+ID4gIHN0YXRpYyB2b2lkIGRybV9hdG9taWNfY3J0Y19wcmludF9zdGF0ZShzdHJ1Y3Qg ZHJtX3ByaW50ZXIgKnAsCj4gPiA+ICAJCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUpCj4gPiA+ICB7Cj4gPiA+IEBAIC0xNTkxLDYgKzE2NTMsOSBAQCBpbnQgZHJtX2F0b21pY19j aGVja19vbmx5KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gIAkJfQo+ID4g PiAgCX0KPiA+ID4gIAo+ID4gPiArCWlmIChzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRhdGUpCj4g PiA+ICsJCXN0YXRlLT5hc3luY191cGRhdGUgPSBkcm1fYXRvbWljX2FzeW5jX2NoZWNrKHN0YXRl KTsKPiA+ID4gKwo+ID4gPiAgCXJldHVybiByZXQ7Cj4gPiA+ICB9Cj4gPiA+ICBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfY2hlY2tfb25seSk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gPiA+IGluZGV4IDVhM2M5YzAuLmE4ZWZkZmUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+IEBAIC0xMjM1LDYgKzEyMzUsMzAgQEAgc3Rh dGljIHZvaWQgY29tbWl0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gPiAgfQo+ ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gKyAqIGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1p dCAtIGNvbW1pdCBzdGF0ZSBhc3luY2hyb25vdXNseQo+ID4gPiArICoKPiA+ID4gKyAqIFRoaXMg ZnVuY3Rpb24gY29tbWl0cyBhIHN0YXRlIGFzeW5jaHJvbm91c2x5LCBpLmUuLCBub3QgdmJsYW5r Cj4gPiA+ICsgKiBzeW5jaHJvbml6ZWQuIEl0IHNob3VsZCBiZSB1c2VkIG9uIGEgc3RhdGUgb25s eSB3aGVuCj4gPiA+ICsgKiBkcm1fYXRvbWljX2FzeW5jX2NoZWNrKCkgc3VjY2VlZHMuIEFzeW5j IGNvbW1pdHMgYXJlIG5vdCBzdXBwb3NlZCB0byBzd2FwCj4gPiA+ICsgKiB0aGUgc3RhdGVzIGxp a2Ugbm9ybWFsIHN5bmMgY29tbWl0cywgYnV0IGp1c3QgZG8gaW4tcGxhY2UgY2hhbmdlcyBvbiB0 aGUKPiA+ID4gKyAqIGN1cnJlbnQgc3RhdGUuCj4gPiA+ICsgKi8KPiA+ID4gK3ZvaWQgZHJtX2F0 b21pY19oZWxwZXJfYXN5bmNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICsJ CQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gK3sKPiA+ID4gKwlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZTsKPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAq ZnVuY3M7Cj4gPiA+ICsJaW50IGk7Cj4gPiA+ICsKPiA+ID4gKwlmb3JfZWFjaF9uZXdfcGxhbmVf aW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ID4gPiArCQlmdW5jcyA9 IHBsYW5lLT5oZWxwZXJfcHJpdmF0ZTsKPiA+ID4gKwkJZnVuY3MtPmF0b21pY19hc3luY191cGRh dGUocGxhbmUsIHBsYW5lX3N0YXRlKTsKPiA+ID4gKwl9Cj4gPiA+ICt9Cj4gPiA+ICtFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1pdCk7Cj4gPiA+ICsKPiA+ID4gKy8q Kgo+ID4gPiAgICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0IC0gY29tbWl0IHZhbGlkYXRlZCBz dGF0ZSBvYmplY3QKPiA+ID4gICAqIEBkZXY6IERSTSBkZXZpY2UKPiA+ID4gICAqIEBzdGF0ZTog dGhlIGRyaXZlciBzdGF0ZSBvYmplY3QKPiA+ID4gQEAgLTEyNTgsNiArMTI4MiwxNyBAQCBpbnQg ZHJtX2F0b21pY19oZWxwZXJfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICB7 Cj4gPiA+ICAJaW50IHJldDsKPiA+ID4gIAo+ID4gPiArCWlmIChzdGF0ZS0+YXN5bmNfdXBkYXRl KSB7Cj4gPiA+ICsJCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKGRldiwg c3RhdGUpOwo+ID4gPiArCQlpZiAocmV0KQo+ID4gPiArCQkJcmV0dXJuIHJldDsKPiA+ID4gKwo+ ID4gPiArCQlkcm1fYXRvbWljX2hlbHBlcl9hc3luY19jb21taXQoZGV2LCBzdGF0ZSk7Cj4gPiA+ ICsJCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+ID4gPiAr Cj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAgCXJldCA9IGRybV9h dG9taWNfaGVscGVyX3NldHVwX2NvbW1pdChzdGF0ZSwgbm9uYmxvY2spOwo+ID4gPiAgCWlmIChy ZXQpCj4gPiA+ICAJCXJldHVybiByZXQ7Cj4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPiA+ID4gaW5kZXggNzg4ZGFm Ny4uNzBjYTI3OSAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4g PiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAo+ID4gPiBAQCAtMTYwLDYgKzE2MCw3 IEBAIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7Cj4gPiA+ICAgKiBAZGV2OiBwYXJl bnQgRFJNIGRldmljZQo+ID4gPiAgICogQGFsbG93X21vZGVzZXQ6IGFsbG93IGZ1bGwgbW9kZXNl dAo+ID4gPiAgICogQGxlZ2FjeV9jdXJzb3JfdXBkYXRlOiBoaW50IHRvIGVuZm9yY2UgbGVnYWN5 IGN1cnNvciBJT0NUTCBzZW1hbnRpY3MKPiA+ID4gKyAqIEBhc3luY191cGRhdGU6IGhpbnQgZm9y IGFzeW5jaHJvbm91cyBwbGFuZSB1cGRhdGUKPiA+ID4gICAqIEBwbGFuZXM6IHBvaW50ZXIgdG8g YXJyYXkgb2Ygc3RydWN0dXJlcyB3aXRoIHBlci1wbGFuZSBkYXRhCj4gPiA+ICAgKiBAY3J0Y3M6 IHBvaW50ZXIgdG8gYXJyYXkgb2YgQ1JUQyBwb2ludGVycwo+ID4gPiAgICogQG51bV9jb25uZWN0 b3I6IHNpemUgb2YgdGhlIEBjb25uZWN0b3JzIGFuZCBAY29ubmVjdG9yX3N0YXRlcyBhcnJheXMK PiA+ID4gQEAgLTE3Miw2ICsxNzMsNyBAQCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSB7Cj4gPiA+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiA+ID4gIAlib29sIGFsbG93X21vZGVzZXQgOiAx Owo+ID4gPiAgCWJvb2wgbGVnYWN5X2N1cnNvcl91cGRhdGUgOiAxOwo+ID4gPiArCWJvb2wgYXN5 bmNfdXBkYXRlIDogMTsKPiA+ID4gIAlzdHJ1Y3QgX19kcm1fcGxhbmVzX3N0YXRlICpwbGFuZXM7 Cj4gPiA+ICAJc3RydWN0IF9fZHJtX2NydGNzX3N0YXRlICpjcnRjczsKPiA+ID4gIAlpbnQgbnVt X2Nvbm5lY3RvcjsKPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gPiA+IGluZGV4IGYwYTg2 NzguLjg1NzFiNTEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4gPiBA QCAtNDQsNiArNDQsOCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gPiA+ICBpbnQgZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJCQkgICAgIHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ID4gIAkJCSAgICAgYm9vbCBub25ibG9jayk7Cj4gPiA+ ICt2b2lkIGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4gPiArCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4g PiAgCj4gPiA+ICBpbnQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gPiA+ICAJCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSwKPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFi bGVzLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gPiA+IGlu ZGV4IGMwMWMzMjguLjc5NjRhNzggMTAwNjQ0Cj4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9t b2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVz ZXRfaGVscGVyX3Z0YWJsZXMuaAo+ID4gPiBAQCAtMTA0OCw2ICsxMDQ4LDU0IEBAIHN0cnVjdCBk cm1fcGxhbmVfaGVscGVyX2Z1bmNzIHsKPiA+ID4gIAkgKi8KPiA+ID4gIAl2b2lkICgqYXRvbWlj X2Rpc2FibGUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiAgCQkJICAgICAgIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSk7Cj4gPiA+ICsKPiA+ID4gKwkvKioKPiA+ID4g KwkgKiBAYXRvbWljX2FzeW5jX2NoZWNrOgo+ID4gPiArCSAqCj4gPiA+ICsJICogRHJpdmVycyBz aG91bGQgc2V0IHRoaXMgZnVuY3Rpb24gcG9pbnRlciB0byBjaGVjayBpZiB0aGUgcGxhbmUgc3Rh dGUKPiA+ID4gKwkgKiBjYW4gYmUgdXBkYXRlZCBpbiBhIGFzeW5jIGZhc2hpb24uIEhlcmUgYXN5 bmMgbWVhbnMgIm5vdCB2YmxhbmsKPiA+ID4gKwkgKiBzeW5jaHJvbml6ZWQiLgo+ID4gPiArCSAq Cj4gPiA+ICsJICogVGhpcyBob29rIGlzIGNhbGxlZCBieSBkcm1fYXRvbWljX2FzeW5jX2NoZWNr KCkgdG8gZXN0YWJsaXNoIGlmIGEKPiA+ID4gKwkgKiBnaXZlbiB1cGRhdGUgY2FuIGJlIGNvbW1p dHRlZCBhc3luY2hyb25vdXNseSwgdGhhdCBpcywgaWYgaXQgY2FuCj4gPiA+ICsJICoganVtcCBh aGVhZCB0aGUgc3RhdGUgY3VycmVudGx5IHF1ZXVlZCBmb3IgdXBkYXRlLgo+ID4gPiArCSAqCj4g PiA+ICsJICogUkVUVVJOUzoKPiA+ID4gKwkgKgo+ID4gPiArCSAqIFJldHVybiAwIG9uIHN1Y2Nl c3MgYW5kIGFueSBlcnJvciByZXR1cm5lZCBpbmRpY2F0ZXMgdGhhdCB0aGUgdXBkYXRlCj4gPiA+ ICsJICogY2FuIG5vdCBiZSBhcHBsaWVkIGluIGFzeW5jaHJvbm91cyBtYW5uZXIuCj4gPiA+ICsJ ICovCj4gPiA+ICsJaW50ICgqYXRvbWljX2FzeW5jX2NoZWNrKShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiA+ID4gKwkJCQkgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKTsKPiA+ID4g Kwo+ID4gPiArCS8qKgo+ID4gPiArCSAqIEBhdG9taWNfYXN5bmNfdXBkYXRlOgo+ID4gPiArCSAq Cj4gPiA+ICsJICogRHJpdmVycyBzaG91bGQgc2V0IHRoaXMgZnVuY3Rpb24gcG9pbnRlciB0byBw ZXJmb3JtIGFzeW5jaHJvbm91cwo+ID4gPiArCSAqIHVwZGF0ZXMgb2YgcGxhbmVzLCB0aGF0IGlz LCBqdW1wIGFoZWFkIHRoZSBjdXJyZW50bHkgcXVldWVkCj4gPiAKPiA+ICJqdW1wIGFoZWFkIG9m IHRoZSIKPiA+IAo+ID4gPiArCSAqIHN0YXRlIGZvciBhbmQgdXBkYXRlIHRoZSBwbGFuZS4gSGVy ZSBhc3luYyBtZWFucyAibm90IHZibGFuawo+ID4gCj4gPiBzL2ZvciAvLwo+ID4gCj4gPiA+ICsJ ICogc3luY2hyb25pemVkIi4KPiA+ID4gKwkgKgo+ID4gPiArCSAqIFRoaXMgaG9vayBpcyBjYWxs ZWQgYnkgZHJtX2F0b21pY19oZWxwZXJfYXN5bmNfY29tbWl0KCkuCj4gPiA+ICsJICoKPiA+ID4g KwkgKiBBbiBhc3luYyB1cGRhdGUgd2lsbCBoYXBwZW4gb24gbGVnYWN5IGN1cnNvciB1cGRhdGVz Lgo+ID4gPiArCSAqCj4gPiA+ICsJICogTm90ZSB0aGF0IHVubGlrZSAmZHJtX3BsYW5lX2hlbHBl cl9mdW5jcy5hdG9taWNfdXBkYXRlIHRoaXMgaG9vawo+ID4gPiArCSAqIHRha2VzIHRoZSBuZXcg JmRybV9wbGFuZV9zdGF0ZSBhcyBwYXJhbWV0ZXIuIFdoZW4gZG9pbmcgYXN5bmNfdXBkYXRlCj4g PiA+ICsJICogZHJpdmVycyBzaG91bGRuJ3QgcmVwbGFjZSB0aGUgJmRybV9wbGFuZV9zdGF0ZSBi dXQgdXBkYXRlIHRoZQo+ID4gPiArCSAqIGN1cnJlbnQgb25lIHdpdGggdGhlIG5ldyBwbGFuZSBj b25maWd1cmF0aW9ucyBpbiB0aGUgbmV3Cj4gPiA+ICsJICogcGxhbmVfc3RhdGUuCj4gPiAKPiA+ IEFsc28gbWF5YmUgZG9jdW1lbnQgdGhhdCB0aGlzIHdvbid0IGJlIGNhbGxlZCBpZiB0aGVyZSBp cyBhbiBvdXRzdGFuZGluZwo+ID4gY29tbWl0IG1vZGlmeWluZyB0aGUgcGxhbmU/Cj4gPiAKPiA+ ID4gKwkgKgo+ID4gPiArCSAqIEZJWE1FOgo+ID4gPiArCSAqICAtIEl0IG9ubHkgd29ya3MgZm9y IHNpbmdsZSBwbGFuZSB1cGRhdGVzCj4gPiA+ICsJICogIC0gQXN5bmMgUGFnZWZsaXBzIGFyZSBu b3Qgc3VwcG9ydGVkIHlldAo+ID4gPiArCSAqICAtIFNvbWUgaG0gbWlnaHQgc3RpbGwgc2NhbiBv dXQgdGhlIG9sZCBidWZmZXIgdW50aWwgdGhlIG5leHQKPiA+IAo+ID4gIlNvbWUgaHciPwo+ID4g Cj4gPiA+ICsJICogIHZibGFuaywgaG93ZXZlciB3ZSBsZXQgZ28gb2YgdGhlIGZiIHJlZmVyZW5j ZXMgYXMgc29vbiBhcwo+ID4gPiArCSAqICB3ZSBydW4gdGhpcyBob29rLiBGb3Igbm93IGRyaXZl cnMgbXVzdCBpbXBsZW1lbnQgdGhlaXIgb3duIHdvcmtlcnMKPiA+ID4gKwkgKiAgZm9yIGRlZmVy aW5nIGlmIG5lZWRlZCwgdW50aWwgYSBjb21tb24gc29sdXRpb24gaXMgY3JlYXRlZC4KPiA+ID4g KwkgKi8KPiA+IAo+ID4gImRlZmVycmluZyIKPiA+IAo+ID4gPiArCXZvaWQgKCphdG9taWNfYXN5 bmNfdXBkYXRlKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gKwkJCQkgICAgc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3N0YXRlKTsKPiA+IAo+ID4gSXMgdGhlcmUgYSBzaW1wbGUg bGlzdCBvZiB3aGF0IHBhcnRzIG9mIGRybV9wbGFuZV9zdGF0ZSBtYXkgY2hhbmdlIGluCj4gPiB0 aGlzIGhvb2s/ICBJIG5vdGljZWQgdGhhdCB2YzQgd2Fzbid0IGNoZWNraW5nIHRoYXQgdGhlIGZv cm1hdCBkb2Vzbid0Cj4gPiBjaGFuZ2UsIGZvciBleGFtcGxlLiAgSSdtIGFsc28gbm90IHN1cmUg aWYgd2UncmUgZ3VhcmFudGVlZCB0aGF0IHRoZQo+ID4gcGxhbmUtaXMtZW5hYmxlZCBzdGF0ZSBp c24ndCBjaGFuZ2luZywgZWl0aGVyLgo+IAo+IEkgY2FuIGxvb2sgaW50byBidWlsZGluZyBzdWNo IGEgbGlzdC4gSSdsbCBkbyB0aGF0IGFuZCBzZW5kIGEgcHJvcG9zZWQKPiBvbmUgaGVyZS4KClRo ZSBsaXN0IG9mIHRoaW5ncyB0aGF0IG1heSBjaGFuZ2Ugb24gdGhpcyBob29rIHJlYWxseSBkZXBl bmRzIG9uIHRoZQpkcml2ZXIsIHNvIEkgYmVsaWV2ZSB3ZSBuZWVkIHRvIGltcHJvdmUgdGhlIHZj NCBhc3luYyBjaGVjayBiZWZvcmUKZW5hYmxpbmcgaXQgdGhyb3VnaCB0aGUgYXRvbWljIGlvY3Rs LgoKPiAKPiA+IAo+ID4gSWYgaXQncyAiZXZlcnl0aGluZyIsIHdlJ2xsIG5lZWQgdG8gaW1wcm92 ZSB0aGUgdmM0IGFzeW5jIGNoZWNrIGJlZm9yZQo+ID4gd2UgZXhwb3NlIHRoaXMgdW5kZXIgYW55 dGhpbmcgYnV0IHRoZSBjdXJzb3IgaW9jdGwuCj4gCj4gCj4gCUd1c3Rhdm8KPiAKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==