From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v5 07/19] media: vsp1: dl: Support one-shot entries in the display list Date: Wed, 6 Mar 2019 20:01:53 +0200 Message-ID: <20190306180153.GA28718@pendragon.ideasonboard.com> References: <20190221103212.28764-1-laurent.pinchart+renesas@ideasonboard.com> <20190221103212.28764-8-laurent.pinchart+renesas@ideasonboard.com> <20190222143004.cdp2lj4ic3r4ogw4@DESKTOP-E1NTVVP.localdomain> <20190222144629.GA5020@pendragon.ideasonboard.com> <20190222150621.kxno4v64itco6mta@DESKTOP-E1NTVVP.localdomain> <20190305231440.GO14928@pendragon.ideasonboard.com> <20190306142051.GO25147@e110455-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id A0BCF6E148 for ; Wed, 6 Mar 2019 18:02:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190306142051.GO25147@e110455-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: Laurent Pinchart , Kieran Bingham , "dri-devel@lists.freedesktop.org" , "james qian wang (Arm Technology China)" , nd List-Id: dri-devel@lists.freedesktop.org SGkgTGl2aXUsCgpPbiBXZWQsIE1hciAwNiwgMjAxOSBhdCAwMjoyMDo1MVBNICswMDAwLCBMaXZp dSBEdWRhdSB3cm90ZToKPiBPbiBXZWQsIE1hciAwNiwgMjAxOSBhdCAwMToxNDo0MEFNICswMjAw LCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4gT24gRnJpLCBGZWIgMjIsIDIwMTkgYXQgMDM6 MDY6MTlQTSArMDAwMCwgQnJpYW4gU3RhcmtleSB3cm90ZToKPiA+PiBPbiBGcmksIEZlYiAyMiwg MjAxOSBhdCAwNDo0NjoyOVBNICswMjAwLCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4+PiBP biBGcmksIEZlYiAyMiwgMjAxOSBhdCAwMjozMDowM1BNICswMDAwLCBCcmlhbiBTdGFya2V5IHdy b3RlOgo+ID4+Pj4gT24gVGh1LCBGZWIgMjEsIDIwMTkgYXQgMTI6MzI6MDBQTSArMDIwMCwgTGF1 cmVudCBQaW5jaGFydCB3cm90ZToKPiA+Pj4+PiBPbmUtc2hvdCBlbnRyaWVzIGFyZSB1c2VkIGFz IGFuIGFsdGVybmF0aXZlIHRvIGNvbW1pdHRpbmcgYSBjb21wbGV0ZSBuZXcKPiA+Pj4+PiBkaXNw bGF5IGxpc3Qgd2hlbiBhIGNvdXBsZSBvZiByZWdpc3RlcnMgbmVlZCB0byBiZSB3cml0dGVuIGZv ciBvbmUgZnJhbWUKPiA+Pj4+PiBhbmQgdGhlbiByZXNldCB0byBhbm90aGVyIHZhbHVlIGZvciBh bGwgc3Vic2VxdWVudCBmcmFtZXMuIFRoaXMgd2lsbCBiZQo+ID4+Pj4+IHVzZWQgdG8gaW1wbGVt ZW50IHdyaXRlYmFjayBzdXBwb3J0IHRoYXQgd2lsbCBuZWVkIHRvIGVuYWJsZSB3cml0ZWJhY2sK PiA+Pj4+PiBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgc2luZ2xlIGZyYW1lLgo+ID4+Pj4+IAo+ID4+ Pj4+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVu ZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+ID4+Pj4+IC0tLQo+ID4+Pj4+ICBkcml2ZXJzL21lZGlh L3BsYXRmb3JtL3ZzcDEvdnNwMV9kbC5jIHwgNzggKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gPj4+Pj4gIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RsLmggfCAgMyArKwo+ ID4+Pj4+ICAyIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKykKPiA+Pj4+PiAKPiA+Pj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuYyBiL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RsLmMKPiA+Pj4+PiBpbmRleCA4ODZiM2E2 OWQzMjkuLjdiNGQyNTJiZmRlNyAxMDA2NDQKPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3ZzcDEvdnNwMV9kbC5jCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS92c3AxL3ZzcDFfZGwuYwo+ID4+Pj4+IEBAIC0xMTUsNiArMTE1LDEyIEBAIHN0cnVjdCB2c3Ax X2RsX2JvZHkgewo+ID4+Pj4+ICAKPiA+Pj4+PiAgCXVuc2lnbmVkIGludCBudW1fZW50cmllczsK PiA+Pj4+PiAgCXVuc2lnbmVkIGludCBtYXhfZW50cmllczsKPiA+Pj4+PiArCj4gPj4+Pj4gKwl1 bnNpZ25lZCBpbnQgbnVtX3BhdGNoZXM7Cj4gPj4+Pj4gKwlzdHJ1Y3Qgewo+ID4+Pj4+ICsJCXN0 cnVjdCB2c3AxX2RsX2VudHJ5ICplbnRyeTsKPiA+Pj4+PiArCQl1MzIgZGF0YTsKPiA+Pj4+PiAr CX0gcGF0Y2hlc1syXTsKPiA+Pj4+PiAgfTsKPiA+Pj4+PiAgCj4gPj4+Pj4gIC8qKgo+ID4+Pj4+ IEBAIC0zNjEsNiArMzY3LDcgQEAgdm9pZCB2c3AxX2RsX2JvZHlfcHV0KHN0cnVjdCB2c3AxX2Rs X2JvZHkgKmRsYikKPiA+Pj4+PiAgCQlyZXR1cm47Cj4gPj4+Pj4gIAo+ID4+Pj4+ICAJZGxiLT5u dW1fZW50cmllcyA9IDA7Cj4gPj4+Pj4gKwlkbGItPm51bV9wYXRjaGVzID0gMDsKPiA+Pj4+PiAg Cj4gPj4+Pj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGxiLT5wb29sLT5sb2NrLCBmbGFncyk7Cj4g Pj4+Pj4gIAlsaXN0X2FkZF90YWlsKCZkbGItPmZyZWUsICZkbGItPnBvb2wtPmZyZWUpOwo+ID4+ Pj4+IEBAIC0zODgsNiArMzk1LDQ3IEBAIHZvaWQgdnNwMV9kbF9ib2R5X3dyaXRlKHN0cnVjdCB2 c3AxX2RsX2JvZHkgKmRsYiwgdTMyIHJlZywgdTMyIGRhdGEpCj4gPj4+Pj4gIAlkbGItPm51bV9l bnRyaWVzKys7Cj4gPj4+Pj4gIH0KPiA+Pj4+PiAgCj4gPj4+Pj4gKy8qKgo+ID4+Pj4+ICsgKiB2 c3AxX2RsX2JvZHlfd3JpdGVfb25lc2hvdCAtIFdyaXRlIGEgcmVnaXN0ZXIgdG8gYSBkaXNwbGF5 IGxpc3QgYm9keSBmb3IgYQo+ID4+Pj4+ICsgKglzaW5nbGUgZnJhbWUKPiA+Pj4+PiArICogQGRs YjogVGhlIGJvZHkKPiA+Pj4+PiArICogQHJlZzogVGhlIHJlZ2lzdGVyIGFkZHJlc3MKPiA+Pj4+ PiArICogQHZhbHVlOiBUaGUgcmVnaXN0ZXIgdmFsdWUKPiA+Pj4+PiArICogQHJlc2V0X3ZhbHVl OiBUaGUgdmFsdWUgdG8gcmVzZXQgdGhlIHJlZ2lzdGVyIHRvIGF0IHRoZSBuZXh0IHZibGFuawo+ ID4+Pj4+ICsgKgo+ID4+Pj4+ICsgKiBEaXNwbGF5IGxpc3RzIGluIGNvbnRpbnVvdXMgbW9kZSBh cmUgcmUtdXNlZCBieSB0aGUgaGFyZHdhcmUgZm9yIHN1Y2Nlc3NpdmUKPiA+Pj4+PiArICogZnJh bWVzIHVudGlsIGEgbmV3IGRpc3BsYXkgbGlzdCBpcyBjb21taXR0ZWQuIENoYW5naW5nIHRoZSBW U1AgY29uZmlndXJhdGlvbgo+ID4+Pj4+ICsgKiBub3JtYWxseSByZXF1aXJlcyBjcmVhdGluZyBh bmQgY29tbWl0dGluZyBhIG5ldyBkaXNwbGF5IGxpc3QuIFRoaXMgZnVuY3Rpb24KPiA+Pj4+PiAr ICogb2ZmZXJzIGFuIGFsdGVybmF0aXZlIHJhY2UtZnJlZSB3YXkgYnkgd3JpdGluZyBhIEB2YWx1 ZSB0byB0aGUgQHJlZ2lzdGVyIGluCj4gPj4+Pj4gKyAqIHRoZSBkaXNwbGF5IGxpc3QgYm9keSBm b3IgYSBzaW5nbGUgZnJhbWUsIHNwZWNpZnlpbmcgaW4gQHJlc2V0X3ZhbHVlIHRoZQo+ID4+Pj4+ ICsgKiB2YWx1ZSB0byByZXNldCB0aGUgcmVnaXN0ZXIgdG8gb25lIHZibGFuayBhZnRlciB0aGUg ZGlzcGxheSBsaXN0IGlzCj4gPj4+Pj4gKyAqIGNvbW1pdHRlZC4KPiA+Pj4+PiArICoKPiA+Pj4+ PiArICogVGhlIG1heGltdW0gbnVtYmVyIG9mIG9uZS1zaG90IGVudHJpZXMgaXMgbGltaXRlZCB0 byAyIHBlciBkaXNwbGF5IGxpc3QgYm9keSwKPiA+Pj4+PiArICogYW5kIG9uZS1zaG90IGVudHJp ZXMgYXJlIGNvdW50ZWQgaW4gdGhlIHRvdGFsIG51bWJlciBvZiBlbnRyaWVzIHNwZWNpZmllZAo+ ID4+Pj4+ICsgKiB3aGVuIHRoZSBib2R5IGlzIGFsbG9jYXRlZCBieSB2c3AxX2RsX2JvZHlfYWxs b2MoKS4KPiA+Pj4+PiArICovCj4gPj4+Pj4gK3ZvaWQgdnNwMV9kbF9ib2R5X3dyaXRlX29uZXNo b3Qoc3RydWN0IHZzcDFfZGxfYm9keSAqZGxiLCB1MzIgcmVnLCB1MzIgdmFsdWUsCj4gPj4+Pj4g KwkJCQl1MzIgcmVzZXRfdmFsdWUpCj4gPj4+Pj4gK3sKPiA+Pj4+PiArCWlmIChXQVJOX09OQ0Uo ZGxiLT5udW1fZW50cmllcyA+PSBkbGItPm1heF9lbnRyaWVzLAo+ID4+Pj4+ICsJCSAgICAgICJE TEIgc2l6ZSBleGNlZWRlZCAobWF4ICV1KSIsIGRsYi0+bWF4X2VudHJpZXMpKQo+ID4+Pj4+ICsJ CXJldHVybjsKPiA+Pj4+PiArCj4gPj4+Pj4gKwlpZiAoV0FSTl9PTkNFKGRsYi0+bnVtX3BhdGNo ZXMgPj0gQVJSQVlfU0laRShkbGItPnBhdGNoZXMpLAo+ID4+Pj4+ICsJCSAgICAgICJETEIgcGF0 Y2hlcyBzaXplIGV4Y2VlZGVkIChtYXggJXp1KSIsCj4gPj4+Pj4gKwkJICAgICAgQVJSQVlfU0la RShkbGItPnBhdGNoZXMpKSkKPiA+Pj4+PiArCQlyZXR1cm47Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsJ ZGxiLT5wYXRjaGVzW2RsYi0+bnVtX3BhdGNoZXNdLmVudHJ5ID0gJmRsYi0+ZW50cmllc1tkbGIt Pm51bV9lbnRyaWVzXTsKPiA+Pj4+PiArCWRsYi0+cGF0Y2hlc1tkbGItPm51bV9wYXRjaGVzXS5k YXRhID0gcmVzZXRfdmFsdWU7Cj4gPj4+Pj4gKwlkbGItPm51bV9wYXRjaGVzKys7Cj4gPj4+Pj4g Kwo+ID4+Pj4+ICsJZGxiLT5lbnRyaWVzW2RsYi0+bnVtX2VudHJpZXNdLmFkZHIgPSByZWc7Cj4g Pj4+Pj4gKwlkbGItPmVudHJpZXNbZGxiLT5udW1fZW50cmllc10uZGF0YSA9IHZhbHVlOwo+ID4+ Pj4+ICsJZGxiLT5udW1fZW50cmllcysrOwo+ID4+Pj4+ICt9Cj4gPj4+Pj4gKwo+ID4+Pj4+ICAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4+ICAgKiBEaXNwbGF5IExpc3QgRXh0ZW5kZWQg Q29tbWFuZCBNYW5hZ2VtZW50Cj4gPj4+Pj4gICAqLwo+ID4+Pj4+IEBAIC02NTIsNiArNzAwLDcg QEAgc3RhdGljIHZvaWQgX192c3AxX2RsX2xpc3RfcHV0KHN0cnVjdCB2c3AxX2RsX2xpc3QgKmRs KQo+ID4+Pj4+ICAJICogaGFzIGF0IGxlYXN0IG9uZSBib2R5LCB0aHVzIHdlIHJlaW5pdGlhbGlz ZSB0aGUgZW50cmllcyBsaXN0Lgo+ID4+Pj4+ICAJICovCj4gPj4+Pj4gIAlkbC0+Ym9keTAtPm51 bV9lbnRyaWVzID0gMDsKPiA+Pj4+PiArCWRsLT5ib2R5MC0+bnVtX3BhdGNoZXMgPSAwOwo+ID4+ Pj4+ICAKPiA+Pj4+PiAgCWxpc3RfYWRkX3RhaWwoJmRsLT5saXN0LCAmZGwtPmRsbS0+ZnJlZSk7 Cj4gPj4+Pj4gIH0KPiA+Pj4+PiBAQCAtOTMwLDYgKzk3OSwzNSBAQCB2b2lkIHZzcDFfZGxfbGlz dF9jb21taXQoc3RydWN0IHZzcDFfZGxfbGlzdCAqZGwsIHVuc2lnbmVkIGludCBkbF9mbGFncykK PiA+Pj4+PiAgICogRGlzcGxheSBMaXN0IE1hbmFnZXIKPiA+Pj4+PiAgICovCj4gPj4+Pj4gIAo+ ID4+Pj4+ICsvKioKPiA+Pj4+PiArICogdnNwMV9kbG1faXJxX2Rpc3BsYXlfc3RhcnQgLSBEaXNw bGF5IGxpc3QgaGFuZGxlciBmb3IgdGhlIGRpc3BsYXkgc3RhcnQKPiA+Pj4+PiArICoJaW50ZXJy dXB0Cj4gPj4+Pj4gKyAqIEBkbG06IHRoZSBkaXNwbGF5IGxpc3QgbWFuYWdlcgo+ID4+Pj4+ICsg Kgo+ID4+Pj4+ICsgKiBBcHBseSBhbGwgb25lLXNob3QgcGF0Y2hlcyByZWdpc3RlcmVkIGZvciB0 aGUgYWN0aXZlIGRpc3BsYXkgbGlzdC4KPiA+Pj4+PiArICovCj4gPj4+Pj4gK3ZvaWQgdnNwMV9k bG1faXJxX2Rpc3BsYXlfc3RhcnQoc3RydWN0IHZzcDFfZGxfbWFuYWdlciAqZGxtKQo+ID4+Pj4+ ICt7Cj4gPj4+Pj4gKwlzdHJ1Y3QgdnNwMV9kbF9ib2R5ICpkbGI7Cj4gPj4+Pj4gKwlzdHJ1Y3Qg dnNwMV9kbF9saXN0ICpkbDsKPiA+Pj4+PiArCXVuc2lnbmVkIGludCBpOwo+ID4+Pj4+ICsKPiA+ Pj4+PiArCXNwaW5fbG9jaygmZGxtLT5sb2NrKTsKPiA+Pj4+PiArCj4gPj4+Pj4gKwlkbCA9IGRs bS0+YWN0aXZlOwo+ID4+Pj4+ICsJaWYgKCFkbCkKPiA+Pj4+PiArCQlnb3RvIGRvbmU7Cj4gPj4+ Pj4gKwo+ID4+Pj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShkbGIsICZkbC0+Ym9kaWVzLCBsaXN0 KSB7Cj4gPj4+Pj4gKwkJZm9yIChpID0gMDsgaSA8IGRsYi0+bnVtX3BhdGNoZXM7ICsraSkKPiA+ Pj4+PiArCQkJZGxiLT5wYXRjaGVzW2ldLmVudHJ5LT5kYXRhID0gZGxiLT5wYXRjaGVzW2ldLmRh dGE7Cj4gPj4+Pj4gKwkJZGxiLT5udW1fcGF0Y2hlcyA9IDA7Cj4gPj4+Pj4gKwl9Cj4gPj4+Pj4g Kwo+ID4+Pj4+ICtkb25lOgo+ID4+Pj4+ICsJc3Bpbl91bmxvY2soJmRsbS0+bG9jayk7Cj4gPj4+ Pj4gK30KPiA+Pj4+PiArCj4gPj4+PiAKPiA+Pj4+IFdlJ3ZlIGdvdCBzb21lIEhXIHdoaWNoIGRv ZXNuJ3Qgc3VwcG9ydCBvbmUtc2hvdCB3cml0ZWJhY2ssIGFuZCB1c2UgYQo+ID4+Pj4gc2ltaWxh ciB0cmljayB0byB0cnkgYW5kIGRpc2FibGUgd3JpdGViYWNrIGltbWVkaWF0ZWx5IGFmdGVyIHRo ZSBmbGlwLgo+ID4+Pj4gCj4gPj4+PiBXZSByYW4gaW50byBpc3N1ZXMgd2hlcmUgdGhlICJzdGFy dCIgaW50ZXJydXB0IHdvdWxkbid0IHJ1biBpbiB0aW1lIHRvCj4gPj4+PiBtYWtlIHN1cmUgdGhl IHdyaXRlYmFjayBkaXNhYmxlIHdhcyBjb21taXR0ZWQgYmVmb3JlIHRoZSBuZXh0IGZyYW1lLgo+ ID4+Pj4gV2UgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgdGhlIGRpc2FibGUgcmVhbGx5 IGhhcHBlbmVkIGluIHRpbWUsCj4gPj4+PiBiZWZvcmUgd2UgcmVsZWFzZSB0aGUgb3V0cHV0IGJ1 ZmZlci4KPiA+Pj4+IAo+ID4+Pj4gTWlnaHQgeW91IGhhdmUgYSBzaW1pbGFyIHByb2JsZW0gaGVy ZT8KPiA+Pj4gCj4gPj4+IFdlIG1heSwgYnV0IHRoZXJlJ3Mgbm8gcHJvdmlzaW9uIGF0IHRoZSBo YXJkd2FyZSBsZXZlbCB0byBjaGVjayBpZiB0aGUKPiA+Pj4gY29uZmlndXJhdGlvbiB1cGRhdGVk IGhhcHBlbmVkIGluIHRpbWUuIEkgY291bGQgYWRkIHNvbWUgc2FmZXR5IGNoZWNrcwo+ID4+PiBi dXQgSSBiZWxpZXZlIHRoZXkgd291bGQgYmUgcmFjeSBpbiB0aGUgYmVzdCBjYXNlIDotKAo+ID4+ IAo+ID4+IFdlIG1hbmFnZWQgdG8gZmluZCAod2hhdCBJIGJlbGlldmUgdG8gYmUuLi4pIGEgbm9u LXJhY3kgd2F5LCBidXQgaXQKPiA+PiB3aWxsIG9mIGNvdXJzZSBkZXBlbmQgYSBsb3Qgb24gdGhl IEhXIGJlaGF2aW91ciwgc28gSSdsbCBsZWF2ZSBpdCB0bwo+ID4+IHlvdXIgYmVzdCBqdWRnZW1l bnQuCj4gPj4gCj4gPj4gV2UgYmFzaWNhbGx5IGhhdmUgYSAiY29uZmlndXJhdGlvbiBjb21taXR0 ZWQiIGludGVycnVwdCB3aGljaCB3ZSBjYW4KPiA+PiB1c2UgdG8gc2V0IGEgZmxhZyBpbmRpY2F0 aW5nIHdyaXRlYmFjayB3YXMgZGlzYWJsZWQuCj4gPiAKPiA+IFRoZSB3YXkgbXkgaGFyZHdhcmUg aXMgb3BlcmF0ZWQgaXMsIHJvdWdobHksIGFzIGZvbGxvd3M6Cj4gPiAKPiA+IC0gVGhlIGRyaXZl ciBwcmVwYXJlcyBhIGxpc3Qgb2YgdmFsdWVzIHRvIHdyaXRlIHRvIHJlZ2lzdGVycyBhbmQgc3Rv cmVzCj4gPiAgIHRoZW0gaW4gRE1BLWFibGUgbWVtb3J5LiBUaGlzIGRvZXNuJ3QgaW52b2x2ZSB0 aGUgaGFyZHdhcmUsIGFuZCBzbyBpcwo+ID4gICBjb21wbGV0ZWx5IGFzeW5jaHJvbm91cyB0byBo YXJkd2FyZSBvcGVyYXRpb24uCj4gPiAKPiA+IC0gVGhlIGRyaXZlciB0aGVuIHNldHMgYSByZWdp c3RlciB3aXRoIHRoZSBwb2ludGVyIHRvIHRoZSByZWdpc3RlcnMKPiA+ICAgbGlzdC4KPiA+IAo+ ID4gLSBBdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGZyYW1lLCB0aGUgaGFyZHdhcmUgcmVhZHMg dGhlIG1lbW9yeSBhZGRyZXNzCj4gPiAgIG9mIHRoZSByZWdpc3RlcnMgbGlzdCBhbmQgRE1BcyB2 YWx1ZXMgdG8gcmVnaXN0ZXIuIFRoaXMgb3BlcmF0aW9uIGlzCj4gPiAgIGZhc3QgYW5kIG9jY3Vy cyBmdWxseSBkdXJpbmcgdmVydGljYWwgYmxhbmtpbmcuCj4gPiAKPiA+IC0gVGhlIGhhcmR3YXJl IHRoZW4gd2FpdHMgZm9yIHRoZSBzdGFydCBvZiB0aGUgZnJhbWUsIGFuZCBiZWdpbnMKPiA+ICAg cHJvY2Vzc2luZyB0aGUgZnJhbWVidWZmZXJzIHRvIHNlbmQgdGhlIGZyYW1lIHRvIHRoZSBkaXNw bGF5Lgo+ID4gCj4gPiAtIElmIG5vIG5ldyByZWdpc3RlcnMgbGlzdCBpcyBwcm92aWRlZCBmb3Ig dGhlIG5leHQgZnJhbWUsIHRoZSBjdXJyZW50Cj4gPiAgIGxpc3QgaXMgcmV1c2VkLgo+IAo+IERv ZXMgdGhpcyBtZWFuIHRoZSBoYXJkd2FyZSBnb2VzIGJhY2sgdG8gc3RlcCAzIGFuZCByZS1yZWFk cyB0aGUgbWVtb3J5Cj4gdXNpbmcgRE1BPwoKVGhhdCdzIGNvcnJlY3QuIEF0IGZyYW1lIGVuZCB0 aGUgaGFyZHdhcmUgd2lsbCBhbHdheXMgcmVhZCBhbmQgYXBwbHkgYQpyZWdpc3RlcnMgbGlzdCwg ZWl0aGVyIGEgbmV3IG9uZSBvciB0aGUgb2xkIG9uZSBpZiBubyBuZXcgbGlzdCBpcwpwcm9ncmFt bWVkLgoKPiA+IFR3byBpbnRlcnJ1cHRzIGFyZSBwcm92aWRlZCwgb25lIGF0IHRoZSBzdGFydCBv ZiB0aGUgZnJhbWUgYW5kIG9uZSBhdAo+ID4gdGhlIGVuZCBvZiB0aGUgZnJhbWUuIFRoZSBkcml2 ZXIgdXNlcyB0aGUgZW5kIG9mIGZyYW1lIGludGVycnVwdCB0bwo+ID4gc2lnbmFsIHZlcnRpY2Fs IGJsYW5raW5nIGFuZCBwYWdlIGZsaXAgY29tcGxldGlvbiB0byBEUk0uCj4gPiAKPiA+IFRoZSBl bmQgb2YgZnJhbWUgaW50ZXJydXB0IGlzIGFsc28gdXNlZCB0byBzY2hlZHVsZSBhdG9taWMgY29t bWl0cy4gVGhlCj4gPiBoYXJkd2FyZSBxdWV1ZSBkZXB0aCBmb3IgYXRvbWljIGNvbW1pdHMgaXMg anVzdCBvbmUsIHNvIHRoZSBkcml2ZXIgaGFzCj4gPiB0byB3YWl0IHVudGlsIHRoZSBwcmV2aW91 cyBjb21taXQgaGFzIGJlZW4gcHJvY2Vzc2VkIGJlZm9yZSB3cml0aW5nIHRoZQo+ID4gbmV3IHJl Z2lzdGVycyBsaXN0IGFkZHJlc3MgdG8gdGhlIGhhcmR3YXJlLiBUbyBzb2x2ZSB0aGUgcmFjZSBi ZXR3ZWVuCj4gPiB0aGUgZW5kIG9mIGZyYW1lIGludGVycnVwdCBhbmQgdGhlIGFkZHJlc3Mgd3Jp dGUsIHRoZSBoYXJkd2FyZSBwcm92aWRlcwo+ID4gYSBzdGF0dXMgYml0IHRoYXQgaXMgc2V0IHRv IDEgd2hlbiB0aGUgYWRkcmVzcyBpcyB3cml0dGVuLCBhbmQgcmVzZXQgdG8KPiA+IDAgd2hlbiB0 aGUgaGFyZHdhcmUgc3RhcnRzIHByb2Nlc3NpbmcgdGhlIHJlZ2lzdGVycyBsaXN0Lgo+IAo+IEZv ciBteSB1bmRlcnN0YW5kaW5nLCB0aGUgZm9sbG93aW5nIHNpbXBsaWNhdGlvbiBpcyB0aGVuIHRy dWU6IHN0YXR1cyA9IDAKPiBtZWFucyBkcml2ZXIgaXMgYWxsb3dlZCB0byB1cGRhdGUgdGhlIHBv aW50ZXIgcmVnaXN0ZXIsIHN0YXR1cyA9IDEgbWVhbnMKPiBjdXJyZW50bHkgcHJvZ3JhbW1lZCBw b2ludGVyIGlzIHVzZWQgdG8gZmV0Y2ggdGhlIHJlZ2lzdGVyIHZhbHVlcywgcmlnaHQ/CgpBbG1v c3QuIHN0YXR1cyA9IDEgbWVhbnMgdGhhdCB0aGUgcG9pbnRlciBoYXMgYmVlbiBwcm9ncmFtbWVk IGJ5IHRoZQpDUFUsIGJ1dCBub3QgdGFrZW4gaW50byBhY2NvdW50IGJ5IHRoZSBoYXJkd2FyZSB5 ZXQuIHN0YXR1cyA9IDAgbWVhbnMKdGhhdCB0aGUgcG9pbnRlciBoYXNuJ3QgYmVlbiB3cml0dGVu IHRvIGJ5IHRoZSBDUFUgc2luY2UgdGhlIGxhc3QgdGltZQp0aGUgaGFyZHdhcmUgcmVhZCBpdC4K Cj4gV2hhdCBoYXBwZW5zIGlmIHlvdSB1cGRhdGUgdGhlIHBvaW50ZXIgd2hpbGUgc3RhdHVzID0g MT8gRE1BIHRyYW5zZmVyIGdldHMKPiBpbnRlcnJ1cHRlZCBhbmQgYSBuZXcgb25lIGlzIHNjaGVk dWxlZD8gRG9lcyB0aGUgRE1BIHRyYW5zZmVyIGdldCBjYW5jZWxsZWQ/CgpZb3Ugc2hvdWxkIG5v dCBkbyB0aGF0LCBhcyBpdCdzIHJhY3kuIFRoZSBoYXJkd2FyZSB3aWxsIHVzZSBlaXRoZXIgdGhl Cm9sZCB2YWx1ZSBvZiB0aGUgcG9pbnRlciBvciBuZXcgbmV3IG9uZSwgYmFzZWQgb24gdGhlIHRp bWluZ3Mgb2YgdGhlCnJlcHJvZ3JhbW1hdGlvbiwgYW5kIHlvdSBjYW4ndCB0ZWxsIHdoaWNoIG9u ZSBpcyB1c2VkLiBOb3RoaW5nIGNhbgpjYW5jZWwgdGhlIERNQSwgd2hlbiBpdCdzIHRpbWUgdG8g c3RhcnQgdGhlIERNQSB0aGUgaGFyZHdhcmUgd2lsbAp0cmFuc2ZlciB0aGUgdmFsdWUgb2YgdGhl IHBvaW50ZXIgdG8gYW4gaW50ZXJuYWwgcmVnaXN0ZXIgYW5kIHVzZSB0aGF0CmZvciBETUEuIFJl cHJvZ3JhbW1pbmcgdGhlIHBvaW50ZXIgZHVyaW5nIHRoZSBETUEgd2lsbCBub3QgYWZmZWN0IHRo ZQpETUEsIHRoZSBuZXcgdmFsdWUgd2lsbCBiZSB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBu ZXh0IERNQS4KCj4gPiBXZSB0aHVzIGhhdmUgdGhyZWUgc3RhdGVzIGZvciBhbiBhdG9taWMgY29t bWl0Ogo+ID4gCj4gPiAtIGFjdGl2ZSwgd2hlcmUgdGhlIGNvcnJlc3BvbmRpbmcgcmVnaXN0ZXJz IGxpc3QgYWRkcmVzcyBoYXMgYmVlbgo+ID4gICB3cml0dGVuIHRvIHRoZSBoYXJkd2FyZSwgYW5k IHByb2Nlc3NlZAo+ID4gCj4gPiAtIHF1ZXVlZCwgd2hlcmUgdGhlIGNvcnJlc3BvbmRpbmcgcmVn aXN0ZXJzIGxpc3QgYWRkcmVzcyBoYXMgYmVlbgo+ID4gICB3cml0dGVuIHRvIHRoZSBoYXJkd2Fy ZSBidXQgbm90IHByb2Nlc3NlZCB5ZXQKPiA+IAo+ID4gLSBwZW5kaW5nLCB3aGVyZSB0aGUgY29y cmVzcG9uZGluZyByZWdpc3RlcnMgbGlzdCBhZGRyZXNzIGhhc24ndCBiZWVuCj4gPiAgIHdyaXR0 ZW4gdG8gdGhlIGhhcmR3YXJlIHlldAo+ID4gCj4gPiBUaGUgc3RhdHVzIGJpdCBtZW50aW9uZWQg YWJvdmUgYWxsb3dzIHVzIHRvIHRlbGwgaWYgYSBsaXN0IGV4aXN0cyBpbiB0aGUKPiA+IHF1ZXVl ZCBzdGF0ZS4KPiA+IAo+ID4gQXQgZnJhbWUgZW5kIHRpbWUsIGlmIHRoZSBzdGF0dXMgYml0IGlz IHNldCwgd2UgaGF2ZSBwb3RlbnRpYWxseSBsb3N0Cj4gPiB0aGUgcmFjZSBiZXR3ZWVuIHdyaXRp bmcgdGhlIG5ldyByZWdpc3RlcnMgbGlzdCBhbmQgdGhlIGZyYW1lIGVuZAo+ID4gaW50ZXJydXB0 LCBzbyB3ZSB3YWl0IGZvciBvbmUgbW9yZSB2YmxhbmsuIE90aGVyd2lzZSwgaWYgYSBsaXN0IHdh cwo+ID4gcXVldWVkLCB3ZSBtb3ZlIGl0IHRvIHRoZSBhY3RpdmUgc3RhdGUsIGFuZCByZXRpcmUg dGhlIGFjdGl2ZSBsaXN0LiBJZiBhCj4gPiBsaXN0IHdhcyBwZW5kaW5nLCB3ZSB3cml0ZSBpdHMg YWRkcmVzcyB0byB0aGUgaGFyZHdhcmUsIGFuZCBtb3ZlIGl0IHRvCj4gPiB0aGUgcXVldWVkIHN0 YXRlLgo+ID4gCj4gPiBUbyBzY2hlZHVsZSB3cml0ZWJhY2sgSSBlbmRlZCB1cCB1c2luZyB0aGUg ZnJhbWUgc3RhcnQgaW50ZXJydXB0Lgo+ID4gV3JpdGViYWNrIGhhcyBhIHNwZWNpZmljIG5lZWQg aW4gdGhhdCBpdCByZXF1aXJlcyBlbmFibGluZyB0aGUgbWVtb3J5Cj4gPiB3cml0ZSBpbnRlcmZh Y2UgZm9yIGEgc2luZ2xlIGZyYW1lLCBhbmQgdGhhdCBpcyBub3Qgc29tZXRoaW5nIHRoZQo+ID4g aGFyZHdhcmUgc3VwcG9ydHMgZGlyZWN0bHkuIEkgY2FuJ3QgZWl0aGVyIHF1ZXVlIGEgbmV3IHJl Z2lzdGVycyBsaXN0Cj4gPiB3aXRoIHRoZSB3cml0ZSBpbnRlcmZhY2UgZGlzYWJsZWQgcmlnaHQg YWZ0ZXIgdGhlIGxpc3Qgd2l0aCB0aGUKPiA+IHdyaXRlYmFjayByZXF1ZXN0IGJlY2FtZSBhY3Rp dmUsIGFzIGFueSBhdG9taWMgY29tbWl0IHdvdWxkIHRoZW4gYmUKPiA+IGRlbGF5ZWQgYnkgYW4g ZXh0cmEgZnJhbWUuIEkgdGh1cyBlbmRlZCB1cCBtb2RpZnlpbmcgdGhlIHJlZ2lzdGVycyBsaXN0 Cj4gPiBpbiBwbGFjZSBhdCBmcmFtZSBzdGFydCB0aW1lLCB3aGljaCBpcyByaWdodCBhZnRlciB0 aGUgYWN0aXZlIHJlZ2lzdGVyCj4gPiBsaXN0IGhhcyBiZWVuIERNQSdlZCB0byBoYXJkd2FyZSBy ZWdpc3RlcnMuIFdlIGhhdmUgdGhlIGR1cmF0aW9uIG9mIGEKPiA+IHdob2xlIGZyYW1lIHRvIGRv IHNvLCBiZWZvcmUgdGhlIGhhcmR3YXJlIHRyYW5zZmVycyB0aGUgc2FtZSBsaXN0IGFnYWluCj4g PiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGZyYW1lLgo+IAo+IFllcywgdGhhdCBpcyBs aWtlIHRvIHdoYXQgd2UgZG8gZm9yIERQNTAwIGluIG1hbGktZHAsIHdoZXJlIHdlIGhhdmUgYQo+ IHNpbWlsYXIgc2l0dWF0aW9uLiBIVyB3aWxsIGNvbnRpbnVlIHRvIHN0cmVhbSB0byB0aGUgZ2l2 ZW4gYnVmZmVyIHVudGlsCj4gc3RvcHBlZCwgYnV0IHRoZSB3cml0ZWJhY2sgQVBJIGlzIG9uZS1z aG90IG1vZGUsIHNvIG9uIHZibGFuayAod2hlbiB3ZQo+IGtub3cgdGhlIHdyaXRlYmFjayB3aWxs IHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5ldyBmcmFtZSkgd2UKPiBwcm9ncmFtIHRo ZSBtZW13cml0ZSB0byBzdG9wLCBidXQgdGhhdCBvbmx5IHRha2VzIGVmZmVjdCB3aGVuIHdlIGFs c28KPiBwcm9ncmFtIHRoZSBHTyBiaXQgKENPTkZJR19WQUxJRCBpbiBvdXIgY2FzZSkuCj4gCj4g T25lIHByb2JsZW0gd2UgaGFkIHRvIHRha2UgY2FyZSBmb3IgRFA1MDAgd2FzIHdoZW4gdGhlIG5l eHQgY29tbWl0ICh0aGUKPiBxdWV1ZWQgb25lIGluIHlvdXIgY2FzZSkgYWxzbyBjb250YWlucyBh IHdyaXRlYmFjayBidWZmZXIuIEluIHRoYXQgY2FzZSwKPiB3ZSBkb24ndCBzdG9wIHRoZSB3cml0 ZWJhY2sgYnV0ICJyZS1zdGFydCIgaXQuCj4gCj4gPiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9u IHRoZXJlLCBhcyB0aGUgaW4tcGxhY2UgbW9kaWZpY2F0aW9uIG9mIHRoZQo+ID4gYWN0aXZlIGxp c3QgY291bGQgYmUgZG9uZSBhZnRlciB0aGUgZW5kIG9mIHRoZSBmcmFtZSBpZiB0aGUgaW50ZXJy dXB0Cj4gPiBsYXRlbmN5IGdldHMgdG9vIGxhcmdlLiBJIGRvbid0IHNlZSBob3cgSSBjb3VsZCBz b2x2ZSB0aGF0LCBhcyBJIGNvdWxkCj4gPiB3cml0ZSB0aGUgdmFsdWUgYWZ0ZXIgdGhlIGhhcmR3 YXJlIHN0YXJ0cyBwcm9jZXNzaW5nIHRoZSBhY3RpdmUgbGlzdCBhdAo+ID4gZnJhbWUgZW5kIHRp bWUsIGJ1dCBiZWZvcmUgdGhlIGludGVycnVwdCBpcyBub3RpZmllZC4KPiAKPiBJIHRoaW5rIHRo YXQgd291bGQgYmUgYSBiZXR0ZXIgaWRlYSBpZiB0aGUgSFcgZmluaXNoZXMgdG8gdHJhbnNmZXIK PiBiZWZvcmUgdGhlIGVuZCBvZiBmcmFtZSBpbnRlcnJ1cHQgaXMgc2lnbmFsbGVkLiBPdGhlcndp c2UgaWYgeW91cgo+IGludGVycnVwdCBoYW5kbGVyIGlzIHNjaGVkdWxlZCB0b28gZmFzdCwgeW91 IG1pZ2h0IG92ZXJ3cml0ZSB0aGUgYWN0aXZlCj4gZnJhbWUgdmFsdWVzPwoKVGhhdCBjYW4ndCBo YXBwZW4sIGFzIEkgcGF0Y2ggdGhlIGFjdGl2ZSByZWdpc3RlcnMgbGlzdCBpbi1wbGFjZSBpbiB0 aGUKZnJhbWUgc3RhcnQgaW50ZXJydXB0IGhhbmRsZXIsIGFuZCBmcmFtZSBzdGFydCBvY2N1cnMg YWZ0ZXIgdGhlIGhhcmR3YXJlCmZpbmlzaGVzIHRoZSBETUEgb2YgdGhlIHJlZ2lzdGVycyBsaXN0 LgoKPiA+Pj4gTm90ZSB0aGF0IHdlIGhhdmUgdGhlIGR1cmF0aW9uIG9mIGEgY29tcGxldGUgZnJh bWUgdG8gZGlzYWJsZSB3cml0ZWJhY2ssCj4gPj4+IGFzIHdlIHJlY2VpdmUgYW4gaW50ZXJydXB0 IHdoZW4gdGhlIGZyYW1lIHN0YXJ0cywgYW5kIGhhdmUgdW50aWwgdmJsYW5rCj4gPj4+IHRvIHVw ZGF0ZSB0aGUgY29uZmlndXJhdGlvbi4gSXQncyB0aHVzIHNsaWdodGx5IGJldHRlciB0aGFuIGhh dmluZyB0bwo+ID4+PiBkaXNhYmxlIHdyaXRlYmFjayBiZXR3ZWVuIHZibGFuayBhbmQgdGhlIHN0 YXJ0IG9mIHRoZSBuZXh0IGZyYW1lLgo+ID4+IAo+ID4+IFllYWguLi4gd2UgaGF2ZSBhIHdob2xl IGZyYW1lIHRvby4gSSdtIHN0cnVnZ2xpbmcgdG8gZmluZCBvdXIgd2lraQo+ID4+IHBhZ2Ugd2l0 aCB0aGUgZGF0YSwgYnV0IGFuZWNkb3RhbGx5IHRoZXJlJ3Mgc29tZSAob3V0LW9mLXRyZWUpIGRy aXZlcnMKPiA+PiB3aGljaCBrZWVwIGludGVycnVwdHMgbWFza2VkIGZvciBhIF9yZWFsbHkgbG9u Z18gdGltZS4gSXQncyBuaWNlIGlmCj4gPj4geW91IGRvbid0IGhhdmUgdG8gY2FyZSBhYm91dCB0 aG9zZSA6LSkKPiA+IAo+ID4gSSBvbmx5IHByb3ZpZGUgdHdvIG9wdGlvbnM6IG5vdCBteSBwcm9i bGVtLCBvciBnaXZlIG1lIHRoZSBzb3VyY2UgY29kZQo+ID4gYW5kIGRvY3VtZW50YXRpb24gYW5k IGxldCBtZSB1cHN0cmVhbSBhIGNsZWFuIHZlcnNpb24gb2YgdGhlIG91dC1vZi10cmVlCj4gPiBk cml2ZXJzIDotKQo+ID4gCj4gPj4+Pj4gIC8qKgo+ID4+Pj4+ICAgKiB2c3AxX2RsbV9pcnFfZnJh bWVfZW5kIC0gRGlzcGxheSBsaXN0IGhhbmRsZXIgZm9yIHRoZSBmcmFtZSBlbmQgaW50ZXJydXB0 Cj4gPj4+Pj4gICAqIEBkbG06IHRoZSBkaXNwbGF5IGxpc3QgbWFuYWdlcgo+ID4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kbC5oIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuaAo+ID4+Pj4+IGluZGV4IGUwZmRiMTQ1ZTZlZC4u Zjg0NTYwN2FiYzRjIDEwMDY0NAo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v dnNwMS92c3AxX2RsLmgKPiA+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEv dnNwMV9kbC5oCj4gPj4+Pj4gQEAgLTU0LDYgKzU0LDcgQEAgc3RydWN0IHZzcDFfZGxfbWFuYWdl ciAqdnNwMV9kbG1fY3JlYXRlKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSwKPiA+Pj4+PiAgCQkJ CQl1bnNpZ25lZCBpbnQgcHJlYWxsb2MpOwo+ID4+Pj4+ICB2b2lkIHZzcDFfZGxtX2Rlc3Ryb3ko c3RydWN0IHZzcDFfZGxfbWFuYWdlciAqZGxtKTsKPiA+Pj4+PiAgdm9pZCB2c3AxX2RsbV9yZXNl dChzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICpkbG0pOwo+ID4+Pj4+ICt2b2lkIHZzcDFfZGxtX2ly cV9kaXNwbGF5X3N0YXJ0KHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSk7Cj4gPj4+Pj4gIHVu c2lnbmVkIGludCB2c3AxX2RsbV9pcnFfZnJhbWVfZW5kKHN0cnVjdCB2c3AxX2RsX21hbmFnZXIg KmRsbSk7Cj4gPj4+Pj4gIHN0cnVjdCB2c3AxX2RsX2JvZHkgKnZzcDFfZGxtX2RsX2JvZHlfZ2V0 KHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSk7Cj4gPj4+Pj4gIAo+ID4+Pj4+IEBAIC03MSw2 ICs3Miw4IEBAIHN0cnVjdCB2c3AxX2RsX2JvZHkgKnZzcDFfZGxfYm9keV9nZXQoc3RydWN0IHZz cDFfZGxfYm9keV9wb29sICpwb29sKTsKPiA+Pj4+PiAgdm9pZCB2c3AxX2RsX2JvZHlfcHV0KHN0 cnVjdCB2c3AxX2RsX2JvZHkgKmRsYik7Cj4gPj4+Pj4gIAo+ID4+Pj4+ICB2b2lkIHZzcDFfZGxf Ym9keV93cml0ZShzdHJ1Y3QgdnNwMV9kbF9ib2R5ICpkbGIsIHUzMiByZWcsIHUzMiBkYXRhKTsK PiA+Pj4+PiArdm9pZCB2c3AxX2RsX2JvZHlfd3JpdGVfb25lc2hvdChzdHJ1Y3QgdnNwMV9kbF9i b2R5ICpkbGIsIHUzMiByZWcsIHUzMiB2YWx1ZSwKPiA+Pj4+PiArCQkJCXUzMiByZXNldF92YWx1 ZSk7Cj4gPj4+Pj4gIGludCB2c3AxX2RsX2xpc3RfYWRkX2JvZHkoc3RydWN0IHZzcDFfZGxfbGlz dCAqZGwsIHN0cnVjdCB2c3AxX2RsX2JvZHkgKmRsYik7Cj4gPj4+Pj4gIGludCB2c3AxX2RsX2xp c3RfYWRkX2NoYWluKHN0cnVjdCB2c3AxX2RsX2xpc3QgKmhlYWQsIHN0cnVjdCB2c3AxX2RsX2xp c3QgKmRsKTsKPiA+Pj4+PiAgCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs